Kim Moir had a good post on busting some build myths, and continuing the “MythBusters” analogy, I think we need to revisit a one of the myths. First let me say that I totally agree with Kim, that being in charge of a build is not something a Monkey should be doing. It takes just as much programming skill and knowledge to construct a build and maintain it as it does with any software system. If it was easy, we wouldn’t complain about it so much.
There is really only one item I think that should be revisited:
Nobody needs to understand how the build works, they just need to push a button.
While the busting of this myth is sound, I do agree that people should understand how to maintain the build. I believe strongly that all developers on the team should be able to maintain the build, add to it, and be able to do releases. Where I disagree is the implied implication is that Builds can never just be “push a button and it goes.” Depending on the build technology being used, this can be easy or hard, but it can be done. Eclipse builds should be as simple as cloning the project or releng project, and just running at the command line:
or if you are using maven:
mvn clean install
That is all they should have to do to build the complete project from source. This includes doing a release, deploying artifacts, creating a Product, etc. Yes it should be that simple to run. We don’t want to make our applications hard to use, as people will go elsewhere. Why should running a build be any different? So the goal should be that any developer, any community member, or any body period, should be able to build the complete product with one command. Doing this will make everybody’s lives easier. A push button build may also eliminate the initial bottle neck to a contributor being willing to enhance and maintain a build as well.