“There are two words which don’t get much play in Linux
development projects: Requirements and Design. Not surprisingly, it
is the lack of these two things which causes most of the problems
in open-source software. Too many developers in the Linux space
start programming before they have a good idea of what their
project functions and capabilities are. In other words, they start
in the middle, not at the beginning.”
“An overwhelming tendency in the Linux world is to focus on the
act of programming as the sine qua non of the development process.
The discussion is always about the code: how to write it, how to
maintain it, when to release it, toolkits to build on, languages to
use. The various discussions almost never turn on issues like
top-level design, user requirements, and life-cycle
management.”
“There is an unspoken but clear belief among many in the Linux
development community that OSS development is fundamentally
different than closed-source or commercial software development.
There is a feeling that the rules are different, that Linux is
somehow exempted from traditional development pitfalls. This is
obviously not true, and it has led to an increasing spate of
problems in Linux and other free OSes.”