7 habits for creating highly effective Symfony bundles

This article is about writing Symfony bundles and is based on the 7 habits for highly effective people by Stephen R. Covey.

Habit 1: Be Proactive

Take initiative in life by realizing that your decisions (and how they align with life’s principles) are the primary determining factor for effectiveness in your life. Take responsibility for your choices and the consequences that follow.

If you choose Symfony2, follow the best practices and believes rigorously, also read everything you can about it (and join meetups). Choose Symfony DI, choose Symfony security, choose Doctrine, choose APC, choose Symfony coding guidelines, (like PSR-0, PSR-1 and PSR-2 standards) and most important: choose other people’s bundles. Choosing Symfony’s best practices can be hard sometimes, because Symfony leaves many choices open and dictates less choices than other frameworks do (e.g. Rails).

Habit 2: Begin with the End in Mind

Self-discover and clarify your deeply important character values and life goals. Envision the ideal characteristics for each of your various roles and relationships in life. Create a mission statement.

What do you want to achieve, set goals, choose technologies and strategies without limiting you to what is available. This seems like a contradiction with the previous one, but I strongly believe you should find a balance: Choose the Symfony solution or someone else’s bundle (maybe even do a pull request to add any missing functionality) if you can, but do create your own bundle if you need to, do not compromise before you even started. If you have a clear and unique goal, you can craft your bundle to fulfill it.

Habit 3: Put First Things First

Prioritize, plan, and execute your week’s tasks based on importance rather than urgency. Evaluate whether your efforts exemplify your desired character values, propel you toward goals, and enrich the roles and relationships that were elaborated in Habit 2.

Have the guts to refactor when you need to and believe me: sometimes you need to. Also, make sure you do not accept bug reports unless you really have to. Often enough these are just feature requests that have urgency, but no importance. Following SCRUM, which has the same concept (work in order of importance), is not sufficient to achieve this habit, but may help you and give you a way of measuring progress.

Habit 4: Think Win-Win

Genuinely strive for mutually beneficial solutions or agreements in your relationships. Value and respect people by understanding a “win” for all is ultimately a better long-term resolution than if only one person in the situation had gotten his way.

Bundles do not only compete with each other, they also complete each other. Ownership of bundles can drive competition, which motivates, but open source will allow people to copy solutions from each other, which makes sure no effort has ever to be in vain. Even if a bundle is less popular it does not mean it is less important. Maybe it provided important functionality that was merged into the more popular bundle and this makes the author an major contributor.

Habit 5: Seek First to Understand, Then to be Understood

Use empathic listening to be genuinely influenced by a person, which compels them to reciprocate the listening and take an open mind to being influenced by you. This creates an atmosphere of caring, and positive problem solving.

Do not write your own bundle or criticize other people’s bundles before the understand what the available bundles offer and actually do. After you did that try to contribute in a positive manner, not by criticizing in comments, but by being positive and providing pull requests. But also when being criticized on your bundle, be positive and try to understand what people are actually saying and what their needs are. Negative comments may hold valuable information.

Habit 6: Synergize

Combine the strengths of people through positive teamwork, so as to achieve goals no one person could have done alone.

We can not create bundles alone, so let others help you and do help other people. Whether it is by providing support, contributing code or reporting bugs. All roles matter and all efforts should be appreciated with a positive attitude. I do not pretend to know why the Open Source paradigm works, but I do know it is all about “synergy” and that with Open source we can achieve goals that no single person could have achieved alone.

Habit 7: Sharpen the Saw

Balance and renew your resources, energy, and health to create a sustainable, long-term, effective lifestyle. It primarily emphasizes exercise for physical renewal, prayer (meditation, yoga, etc.) and good reading for mental renewal. It also mentions service to society for spiritual renewal.

The most important advice I heard about this point is: to sharpen the saw, be humble and start sawing. The reason for this is that a lack of experience and the Dunning–Kruger effect will make you grossly overestimated your performance and ability. It will make you become a victim of the seductive and destructive Not-Invented-Here syndrome. Sharpen the saw is about continuous improvement and especially in IT it is important to keep learning new things, because the technology moves fast. So do not hesitate and start creating Symfony2 bundles right now!

Check out our open sourced Symfony bundles on Github!


Leave a Reply

Your email address will not be published. Required fields are marked *