Saturday, August 21, 2010

Software projects and Programmers

  1. Software projects cannot be accelerated by spending more time in the office or adding more people to projects.
  2. Although most software is made by teams, it is not a democratic activity. Usually, just one person is responsible for the design, and the rest of the team fills in the details.
  3. Continuous change leads to software rot, which erodes the conceptual integrity of the original design and could cause it become worthless before it is even completed..
  4. Great programmers spend very little of their time writing code – at least code that ends up in the final product. Great programmers are masters at recognizing and reusing common patterns. Good programmers are not afraid to refactor (rewrite) their code constantly to reach the ideal design.
  5. A bad programmer is not just unproductive – he will not only not get any work done, but create a lot of work and headaches for others to fix.
  6. Bad programmers write code which lacks non-redundancy, hierarchy, and patterns, and so is very difficult to refactor. Programmers who spend much of their time writing code are too lazy, too ignorant, or too arrogant to find existing solutions to old problems.