CONTRIBUTING TO WORDPRESS MAKES YOU A BETTER DEVELOPER
By michael | May 24th, 2010
I have been a passive member of the WordPress developer community for about two years now. Understandably, my familiarity with WordPress and my efficiently in developing for that platform have both increased with time.
My first real tipping point in efficient development came with a better understanding of how the wp-content folder interacts with the rest of the core files. This was ground breaking for me and it almost immediately ‘powered up’ my WordPress related development.
Over the past several months I have been experiencing a second surge in both my level of understanding and my efficiency in WordPress development. This is directly related to my involvement in the WordPress 3.0 development cycle. I wanted to quickly share four aspects of this process that have helped me increase efficiency in my overall WordPress development. It’s my hope that this encourages you to jump in and contribute as well.
Familiarity with new tools and technologies
WordPress.org manages their code base in a web application named Trac. Trac is an opensource software that integrates SVN and ticket based bug reporting. You can view the WordPress installation for the core files here: http://core.trac.wordpress.org. Although I had a basic understanding of what Trac was and knew where it existed online, my interactions with it were in the single digit range (and less than 1).
It is impossible to seriously contribute to WordPress core as a developer without diving into Trac. It was intimidating for me to do so at first, but has proven well worth the learning curve it took to become comfortable with the process of creating tickets, creating patches, and submitting them for review and possible inclusion into WordPress.
- Taking the time to understand how the WordPress community uses Trac in our development process has increased my efficiency in the following ways:
- Comments in the individual tickets help me understand why specific changes were made in the code.
- Milestones help me to better judge what features and bug fixes will be included in future releases.
- The ability to browse existing tickets and submitted patches help me to determine legitimate bugs and discover possible solutions.
- The ability to navigate revisions in an intelligent GUI using the power of Annotate helps me track down unresolved bugs more quickly.
Although I was already familiar with SVN due to the plugin repository and other non-WordPress related projects, contributing to WP core has substationaly increased the frequency at which I find myself using it. Increased use inevitably leads to increased knowledge and efficiency with any tool.
A better awareness of WordPress community
Possibly the greatest benefit I have gleaned from my involvement in contributing to WordPress is a greater awareness of who the WordPress community includes. Prior to contributing to comments and patches on Trac and finding a suitable IRC client, I didn’t know who Andrew Nacin, Ptah Dunbar, Austin Matzko even existed… let alone understand their contributions to WordPress. These are only a few names that immediately come to my mind… several more exist.
Its funny how you think you know ‘who’ a community is because you’re following a couple mailing lists or a couple of opinionated talkers on Twitter. Getting plugged into the development process has opened me up to a whole new world of very intelligent individuals that I continue to learn from by listening in on their conversations. My coding has become more efficient due to the little tidbits of information I skim off of their public discussions every day.
Familiarity with More of the Core Functionality
Troubleshooting your own code inevitably leads you to a greater understanding of the code surrounding it and supporting it… troubleshooting somebody else’s code multiplies this effect several times over. I’m pretty familiar with the WordPress core files, but diving into Trac and hunting down bugs that can only be reproduced by a remote set of users have taken me to places in the codebase that I never would have found otherwise. I can’t tell you the number of times I’ve been hunting down a specific bug and ran across an amazing function that I was previously unaware existed. Finding all these hidden jewels and obtaining a better understanding of how different functions work within WordPress has largely increased my development on a day to day basis.
I’m pretty anal about the way my code looks. I try to document as much as possible while I develop it. Additionally, all my code is formatted the same way to increase comprehension if I have to dive back into a file months or years after initially creating it. With this being said, I still have several habits that are less than productive in the long run… my guess is that you’re just as lazy.
WordPress has a guide sheet dictating what coding standards should be followed when contributing to the core software. Many of these standards are nothing more than the lead developers collaborative opinions. The standards are not ‘right’ or ‘wrong’ in any global or authoritative manner… rather, they’re simply the way that WordPress has determined to standardize its code base.
This has been helpful to me because it has encouraged me to clean up some less than standard areas in my own code. Once you work on a couple large patches it becomes natural to start applying those standards to your own work. Again, I’m not suggesting that you have to accept these standards as rule in your personal development… but I am reporting that once I got past the basic control issues I had with not doing things the way I previously did them, adopting many of the WordPress coding standards has actually increased my overall efficiency… a result that I am always happy to discover.
Conclusion and Resources
When I first ventured into the world of WordPress Trac it was with a very utilitarian purpose… I had a problem and I needed it fixed. Two months later, I’m still there and its extremely addictive. Contributing to WordPress core has introduced me to new technologies, new friends, and it continues to increase my efficiency in day to day development. If you’re a WordPress developer and you’ve yet to jump into core contribution, I would highly encourage you to start today. Here are some resources to get you started: