Advogato: 'Best Practices' for Open Source?Mar 25, 2001, 13:46 (2 Talkback[s])
(Other stories by Stephen Hindle)
"I've been thinking about project management methods & coding standards for use with Open Source Projects. Most programmers would agree that some form of management, and some standards are necessary. Its the which ones part we have problems with. Traditional 'best practices' need a little tweaking to fit with OSS development. So here's my attempt - I would love feedback & suggestions...."
"The main problems with traditional methods/methodologies stem from the fact that they were developed to support scarce resources. A result of this scarcity was that these resources were also expensive. Not only were programmer time, & machine time expensive, distribution was as well. The cost of distribution was not just limited to physically moving the code from one place to another, but often incurred additional expenses such as technicians to install the code. This made frequent releases of development code impractical. A side effect of this was that 'end user' input was often unavailable until the project was nearly completed. As software was so expensive to develop, it was paramount that it be maintainable otherwise there was no hope of recouping the cost of development. These conditions resulted in strict methods that required in-depth requirements docs up front. Users were forced to determine all their needs in advance, with little feedback as development progressed. Detailed specs & designs were produced from the requirements, along with detailed schedules. The entire process was documented heavily, with numerous 'sign-offs' meant to ensure everyone agreed on what needed to be done and how it was to be accomplished. Once implementation was begun, formal coding standards were used to increase code readability, maintainability and shorten the learning curve for new developers. While the methods could be 'heavy' in terms of startup cost, the anticipation was they would reduce the overall project cost & improve the quality of the resultant product."