Software release is like body building
June 29, 2007
If your are trying to make muscle gains, you eat more and do heavy lifting. But during this phase you are gaining fat as well. When bodybuilders prepare for the competition, they try to lose body fat to achieve better muscle definition. This “cutting” phase starts 3-4 months before competition. More tips and tricks from the guy I meet in the office daily (in German).
In a software project you have the requirement to develop new features while keeping the holy green build. This requirements are often contradictory in a bigger project (with 200 developers for example, like one I am currently working for).
If even only every second developer is working on some feature and committing only couple of lines a day, it destabilizes the whole system a lot. If the wish is to have a deliverable product from the mainline at any time, then you have no chance.
So you end up creating rigorous committing policy drastically reducing the development speed or stopping the development completely by proclaiming different sorts of code freeze.
I think you can not address this two requirements in a bigger project simultaneously despite all this agile propaganda. If you are going to make a release (to participate to a bodybuilder competition), you should prepare for this event. You should make a source code branch and concentrate on stabilizing - no new features, no refactoring, only needed bug fixing. On the development branch you make you vibrant development, reorganizing the code having your “off-season” in the bodybuilders language.