The single most important role in a software project, be it Open or closed source is the role of the gatekeeper. This person, or group of persons oversees the general progression and development of code in the project. Their responsibility is to read through the code of all commits and review them for correctness before they are let into the source code baseline upon which further development happens.
There are many advantages in having a gatekeeper role in a software project. First and foremost, all code gets some review. Second, the gatekeeper can usually direct people to reuse existing code rather than write their own (At one time, the pine mail reader had several places in which file I/O operations happened for instance). Third, the gatekeeper can make sure that coding guidelines and structure is adhered to.
If you are serious about the development, the gatekeeper must have the power of vetoing everything. It doesn't matter if it is the final release theres at stake. If the GK says no, it ain't gonna happen. This is important to ensure the quality in the project. Also, the GK should not have roles beyond the role of reviewing software.
The best thing you can do for a software project is to get a model where people are willing to share their code patches with a mailing list so other people can chime in on the code. While the GK has the role of getting people to talk to each other and steer the project in general, getting other developers to work together is very important.
I've seen to many projects with cage-isolation in the sense that each developer has their area of responsibility. It works fine until someone quits. Also, the GK hat could walk around among the most experienced developers.
As a software vendor, you win if you can continue to improve the quality of your product and the skill of your creative software people. Constructive critique is a tremendous way to get this done.
I don't give much for the idea of "Agile" development in general, but wether you adopt it or not, the GK role is crucial anyway. In some kind of perverted way, leading Open Source projects can't be wrong -- and you will find that almost all of them employ a de-facto gatekeeper somewhere.
Add a comment