« Avoid Order Dependencies between Object Methods | Main | Numb »

November 29, 2007

Theory P: Software Development is Probabilistic

In my head I’ve been struggling to write a blog post about how thinking of software development as a manufacturing process is wrong. The catalyst for getting some semblance of my thoughts down was reading Reg Braithwaite’s Which theory fits the evidence?

Have you seen a car ad that shows a factory floor and an efficient automated assembly line? That’s not like software development. Have you seen a car ad that shows a design studio with a clay mock-up? That’s like software development. The guy on the factory floor can easily know how long it takes to assemble an automobile. It’s much more difficult for the guy sculpting clay to predict how much work and how many revisions it will take to get to the final design.

Software development is an exploration. It’s learning about the problem domain, the customer’s needs, and how a solution can be realized with the available resources. Learning requires space and time for experimentation and failure.

Software manufacturing, at its least adorned, is a file copy operation.

It’s tempting to believe that with enough upfront planning, analysis, and specification any software project can be made predictable and problem-free. It’s a false notion. Time is always limited. Humans are fallible. Something will always be missed or misunderstood or not understood deeply enough or new information will come to light or business conditions will change. A development process must accept and adapt for unforeseen change or it’s broken.

TrackBack

TrackBack URL for this entry:
http://www.typepad.com/t/trackback/18301/23796442

Listed below are links to weblogs that reference Theory P: Software Development is Probabilistic:

Comments

Post a comment

Comments are moderated, and will not appear on this weblog until the author has approved them.

If you have a TypeKey or TypePad account, please Sign In

constructive nonconformist

Useful Books

*

  • Basecamp
    Basecamp project management and collaboration
  • Backpack
    Backpack: Get Organized and Collaborate
  • Technorati

Creative Commons

Blog powered by TypePad
Member since 02/2004