Making Good Software

A blog by Alberto G (Alberto Gutierrez)

Written by Alberto G

April 20th, 2009 at 1:36 pm

Software Developer = Craftsman + Private Investigator

with one comment

In the software development industry is common to find a feeling of uncertainty regarding the reason behind so many software projects failing. One approach taken to find answers to this question is to compare ourselves with other successful industries to apply the same lessons learned and best practices from them. We mostly have been compared with strong engineering industries, we have even imported from them some terminology like “Architects” or some very waterfall oriented methodologies.

It is now a recent and every time more followed opinion that coding is a similar activity to that performed for the craftsmen…. but! The definition it’s not complete, the craftsmanship would just cover the coding part of the software development process, missing something from the picture…. The private investigator!!!

Let’s check the main characteristics of the private investigator job.

  • It’s impossible to provide an accurate estimate of how much and how long is going to take the investigation.
  • The customer doesn’t really know what the investigation is about, they just have a feeling of something wrong or they need to fix a problem.
  • A few clues are provided at the beginning, most of the clues are to be discovered or refined during the investigation.
  • Some clues are misleading.
  • No matter how good the clues are if they don’t lead to a final verdict.
  • Even if a final verdict is being decided, if it’s not the verdict expected by the customer, he is not going to be happy.
  • Most time the verdict has to still be validated by a judge.

If you still doubt about the similarities, find below again the previous points with a few changes.

  • It’s impossible to provide an accurate estimate of how much and how long is going to take the Software development.
  • The customer doesn’t really know what has to be developed, they just have a feeling of something wrong or they need to fix a problem.
  • A few requirements are provided at the beginning, most of the requirements are to be discovered or refined during the software development process.
  • Some requirements are misleading.
  • No matter how good the requirements are if they don’t lead to a shippable product.
  • Even if a shippable product is released, if it’s not the product expected by the customer, he is not going to be happy.
  • Most time the product has to still be validated by the users.

You can actually even take similarities between famous PIs and different software developer stereotypes.

  1. The James Bond developer: Excellent developer, good job, no mistakes, knows when to use the force and when to be diplomatic.
  2. The Jason Bourne developer: Good developer, gets the job done, not very careful sometimes leaves a mess behind that needs to be fixed.
  3. The Columbo developer: Not brilliant, get his job done.
  4. The Agent 86 (Maxwell Smart) developer: A bit more skilled than The Pink Panther, still needs some help.
  5. The Inspector Jacques Clouseau (The pink panther) developer: Useless, most of the times someone else will solve the problems for him.

[polldaddy poll=1555394]

One Response to 'Software Developer = Craftsman + Private Investigator'

Subscribe to comments with RSS or TrackBack to 'Software Developer = Craftsman + Private Investigator'.

  1. […] Requirements change. Main point of Agile, all the inputs change during the software development process, actually most of them are yet to be discovered. […]

Leave a Reply