Linux and the Unix Philosophy
1.1 The Not invented here syndrome
All too often software developers fall prey to the NIH syndrome. This occurs when a developer, in viewing a software solution written by another, believes that he or she could do a better job. Maybe he could do a better job, but he doesn't know the constraints that the other developer was operating under. The other may have been under time or budget pressure and chose to focus more on a particular part of the solution.
NIH syndrome is characterized by a decision to discard all of what the other developer accomplished with the intent of demonstrating a superior solution. Such an act of sheer egotism demonstrates little interest in preserving the best of another's work and using it as a springboard to newer heights. Not only is it self-serving, it wastes precious time on rewriting, time that would be better be spent elsewhere on providing other solutions. Even worse, the new solution is sometimes only marginally better or simply different, thereby exacerbating the problem.
Occasionally, the new solution is better because the developer has seen the work of the first and is able to improve upon it by borrowing what is good and discarding the rest. That is a case of enhancement and extension, not the NIH syndrome. The concept of borrowing from other developers is a well-established practice in the Linux world, something that can be done only when software source code is made available to everyone. In fact, enhancement and extension constitute one of the core concepts of the Unix philosophy.