Sunday, December 11, 2005

The Fallacies of Design

The Fallacies of Design
While reading the various UML/Pattern/Architecture/OO/XP/TDD books and literature, I think most authors forget some of the basic maladies that plague software projects. Or perhaps because there are no solutions for the problems, it is best to ignore them. So far there have been very few insurmountable problems as regards to the technologies involved in projects that I have worked on. They have always been workarounds , tactical pathworks and other hacks. But there are the other issues which can derail a project.
So here are the various fallacies I have seen
  1. There is a best solution that solves your problems.

  2. Systems that you need to integrate/interact with can be changed to implement the best possible solution

  3. People within the project will cooperate with you. People outside the project will cooperate with you

  4. The People defining the requirements know what they want. Once a requirement is signed of by said rule, it wont change

  5. Budget is infinite, Time is infinite

  6. Managers can manage, Designers can design, Analysts can analyze and coders can code.

  7. The solution to any problem is a pattern/platform/approach/methodology

  8. If the test cases pass and code coverage is > x% then there wont be problems in the wild

  9. People will always tell the truth

  10. Murphys law does not apply to software.

None of these fallacies are technical. They aren’t meant to be. Its rarely the technology that derails a project.