Advogato: 'Best Practices' for Open Source? Mar 25, 2001, 13 :46 UTC (2 Talkback[s]) (2733 reads) (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."