Saturday, January 30, 2010

Software Development Math

First, let me apologize for the previous blog post. I was in a disturbed state about a number of things, and that last post was all over the map. Sadly, my friend did pass away and the thought of his wife and young daughter continuing on without him is painful. We have no choice but to bear it.

-----

Have you seen the old joke circulating around the Internet called something like "The Math of Love"? It has some very funny observations about life illustrated in the form of equations. For example:

  • smart man + dumb woman = pregnancy
  • dumb man + smart woman = affair
  • smart man + smart woman = romance
  • dumb man + dumb woman = marriage
In the same spirit, here are some equations about software development that I've come across. I preface by offering that these are entirely my opinion and could be wrong. But if you find yourself laughing at even one of them, then I can't be too far from the truth.

Developers
  • good requirements + good developer = good application
  • bad requirements + good developer = challenged application + massive production support
  • good requirements + bad developer = bad application + massive production support
  • bad requirements + bad developer = bad application + massive production support
  • developer that never has to support own work + always awarded projects = overtime for everyone else
  • developer lacking business knowledge + software project = unhappy user
  • humble developer + user interaction = forged relationship
  • arrogant developer + user interaction = missed opportunity + missed gaps + unhappy user
  • arrogant developer + never has to support own work + aversion to learning = charlatan
  • developer + aversion to learning = outsourced

Project Management

  • good project (on time and on budget) - good requirements = happy managers + unhappy users
  • rushed project = overtime
  • bad requirements = overtime
  • poor project manager = overtime
  • managers that think software development is easy = overtime for everyone except the managers
  • unpaid overtime = happy manager + unhappy everyone else
  • project manager + technical decisions = unhappy developer
  • business analyst lacking business knowledge = bad application
  • business analyst that fails to challenge requestor = scope creep + overtime + unhappy user
  • executives that can't hack the truth = overtime
  • overtime + bad requirements + bad developers = BUSINESS AS USUAL