An Organizational Constraint that Diminishes Software Quality

One of the biggest problems in software performance today occurs when the people who write software are different from the people who are required to solve the performance problems that their software causes. It works like this: Architects design a system and pass the specification off to the developers. The developers implement the specs the architects gave them, while the

One of the biggest problems in software performance today occurs when the people who write software are different from the people who are required to solve the performance problems that their software causes. It works like this:

  • Architects design a system and pass the specification off to the developers.
  • The developers implement the specs the architects gave them, while the architects move on to design another system.
  • When the developers are “done” with their phase, they pass the code off to the production operations team. The operators run the system the developers gave them, while the developers move on to write another system.

The process is an assembly line for software: architects specialize in architecture, developers specialize in development, and operators specialize in operating. It sounds like the principle of industrial efficiency taken to its logical conclusion in the software world.

Sound good? It sounds like how Henry Ford made a lot of money building cars… Isn’t that how they build roads and bridges? So why not?

To read why this approach doesn’t work for software visit my blog.