When I first set up my WordPress blog, I spent hours following online guides to download WordPress, upload it, and set up a database. I even FTP’ed every change right up to the live server, hoping that I didn’t mistype a question mark and cause the blog to go dark. However, WordPress has grown up since then and is now used by massive media companies like Tech Crunch, the New Yorker, and even Beyonce.
Despite its success, WordPress still has a terrible reputation among developers. The stereotype is that WordPress users are script kiddies who upload files via FTP, don’t use version control, and abandon every sane principle of software development. However, this is not a fair accusation. WordPress has grown up and now has a fully-fledged REST API. Users can install WordPress and dependencies from the command line using WP-CLI. Developers and theme designers are also growing up, treating WordPress projects like any serious software development project.
One of the most critical aspects of software development is issue tracking. Joel of Fog Creek Software famously wrote about 12 steps to better software, and one of those was an issue or bug tracker. He is right. It’s hard to remember all the various different feature requests and bugs in your head. It’s even harder to remember all the steps to reproducing bugs, what the user expected, and what they actually got.
Using an issue tracker such as Redmine means you have a standardized way of receiving this information. You need three things for every bug report: what steps did the user take that resulted in the bug, what did the user expect to see, and what did the user actually see? You need to be able to reproduce the bug because it’s really hard to fix a bug you can’t see in action. Second, you have to make sure the bug is, in fact, a bug or whether the user expected something your software doesn’t provide.
Issue trackers force you to assign an issue to one person at any given time, so you always know who currently owns a bug or task. At the same time, issues go through a workflow of different statuses such as “In Progress”, “QA/Testing” or “Ready for Deployment”. Most trackers will give you reports based on the current status of an issue, so you can see the current volume of work in progress and how much remains to be done. You can even create burndown charts, which are popularized in agile methodologies.
Tightly integrating git into your project management workflow will make your life a whole lot easier when things go wrong. Git gives you a rewind button on your code, and you can create multiple, parallel versions of your site. Every time you “commit” new code to your git repository, you’re creating a natural point to discuss the change to the codebase. In addition, it’s easier to discuss problems based on actual committed code rather than just vague ideas.
That’s where issue trackers shine because Redmine, for example, is tightly integrated with git or svn. You can quickly see who committed what against issues and then discuss those issues. An issue tracker will help you scale beyond just yourself. You’ll be sure that issues aren’t slipping through the cracks.
At Planio, the majority of our customers use our hosted Redmine for tracking software development projects, including WordPress projects. They track bugs, new features, and sprints in connection with version control. Redmine, like WordPress, is open source, so you get the advantage of not being locked into proprietary software. And like WordPress, you can outsource hosting to someone like us at Planio, or you can install it yourself if you prefer from Redmine.org.
In conclusion, using an issue tracker and tightly integrating git into your project management workflow will make your WordPress development process much easier. It will help you scale beyond just yourself and ensure that issues aren’t slipping through the cracks. Redmine is a great open-source option for issue tracking and project management, and it’s tightly integrated with git or svn.