Yesterday I released a new version of PHP Mode for GNU Emacs. It was the first time during my three years as the maintainer that I set a fixed release date. Previous versions were released across arbitrary gaps of time, so I wanted to set a hard date for version 1.12 and see how that went.
Let me go ahead and say that I believe setting a hard release date for the next version is worth repeating.
One of the most obvious benefits from setting a fixed date is that it gave me a clear deadline against which I could measure the severity of bug fixes, feature requests, and overall contributions. Having a concrete window of time forced me to think more carefully about estimating how long it would take to implement each particular change. That really helped me prioritize the tasks on my todo list. That is not to say that I completely ignored features that I did not think I would finish in time; I began work on some but only when I felt effort would not be better spent on changes with a strong chance of completion before the release date.
The fixed release date also helped me manage my work on PHP Mode with regard to the other projects I am working on. Something that has dragged out previous releases is that I would go through long stretches of not working on PHP Mode at all, instead spending time elsewhere. But after committing to release version 1.12 on the 1st of September I found myself making a more conscious effort to ensure that I spent some time on PHP Mode.
As the release date drew near I started feeling a mounting pressure, and that was a double-edged sword. On one hand I felt a lot of pressure to make sure that the new version would not have any serious bugs like the kinds that I have unfortunately allowed to slip into previous releases; that increased attention to detail with regard to bug checking was nice. But on the other hand, that same pressure affected my focus on other projects. PHP Mode is not the most important software project that I work on, simply in terms of the material rewards I get from it (which is nothing) versus other projects. I do not intend for that to sound like a complaint; I chose to maintain PHP Mode well aware of the fact that all my time and efforts were free contributions, in every sense of the word ‘free’. But when it came close to release the latest version of PHP Mode I found myself becoming concerned with that to the extent that it may have disrupted my workflow on other projects too much.
Overall I believe the idea to set a hard release date and stick to it was a good decision. I feel like it increased my focus on PHP Mode, which in turn hopefully increased the quality of my efforts. However, even though I intend to set another release date for the next version, I need to carefully evaluate how much that pressure near the end of the release affected my other work.