Archive for January, 2005

Posted on 31 January 2005 under Management

The iron triangle of project management is a little bent. I just don’t think it works reliably for software. And remember, there’s nothing worse than a bent triangle when trying to manage a project.

What is the iron triangle? Its the rule of thumb that says that the resources, scope and duration of a project are linked and any change to one of these three aspects necessitates a compensatory change to at least one of the others. In short it says that you can’t ask for more stuff without adding more resources or accepting that it will take longer.

So, why doesn’t this always apply to software? Well the problem has to do with quality (which is generally treated as part of the project’s scope). There are three relevant types of quality:

  1. Code quality - how well structured is the code/architecture, etc;
  2. Process quality - how well suited to the relevant people and domain is the development process used on the project; and
  3. Business implementation quality - how well does the project meet the business need(s).

Given this, if you want something to be high quality then it will take longer or will require more resources than something of lesser quality. WRONG!!!

Consider a project with a high degree of code quality. This project will proceed more smoothly since fewer difficult to identify or isolate problems will occur. What about a project with high process quality? Again the project will be smoother since the process will be well suited to the task (and people) at hand.

The difficult quality type to demonstrate an inverse relationship with is “business implementation quality”. However, there is a neat out for me (phewww). Business implementation quality is derived from the other two types of quality - good code leads to good business outcomes and good processes lead to accurate modelling and requirements elicitation.

This means that we can place our hands on our hearts and say that an increase in scope (via quality) will reduce time and cost of software projects. Hence the bent triangle - it simply doesn’t work all the time for software.

P.S. Please note that I am explicitly not including quality in the ISO 9001, CMM, etc sense here. In my experience this stuff increases time and cost and adds little to scope.

Posted on 14 January 2005 under General, Management

Sometimes people are so used to artificial constraints that they come to see them as part of the natural order of things. Hang on while I try to illustrate this with a cat story/parable…

I once lived in a group house with a couple of other people (including my brother) and a cat called Camus (my brother had a Cure obsession at the time he named the cat). Unfortunately Camus was a needy cat in a household of people who weren’t home very much. So each day when I got home from work I made sure to give him some “quality time”.

One day I arrived home early. Camus was delighted - he didn’t have to wait as long as normal for some attention. I heard him coming before he got into the loungroom - patter…patter…flop…patter…patter…flop…patter…patter…flop… . This noise was accompanied by the normal extravagant purring he made when someone was around. Once he rounded the corner it was clear that he was moving a little strangely. As he got closer I worked out that one of his front paws was stuck in his collar. This made walking quite difficult for him and he compensated by taking a few quick steps before flopping onto his belly and then starting again. Despite his temporary handicap he was perfectly happy.

I’ve seem similar things happen in the workplace. Dodgey processes, too many bosses, not enough leaders, dictatorial attitudes, etc. Some of the time people are aware of the problems and can tell you. The rest of the time people know something is wrong but can’t quite put their fingers on it…until the constraint is lifted.

Have you guys seen this effect before? What’s your favourite war story? Are you suffering under an invisible constraint you haven’t been able to identify?

Posted on 13 January 2005 under General

Stop reading here if you are easily disgusted.
———————————————————

Consider a useful process. Why is the process useful? Probably because it helps to avoid some sort of cost or (better) to provide some benefit. In some cases a process, like making sure your parachute is properly strapped on, will help to avoid a disaster. To illustrate how a disaster can be avoided using process I experimented on myself.

Here’s how I did it:

  1. Yesterday I flagrantly ignored the kitchen paper replacement process that has been working at my house for years - “when the last sheet of paper is finished on the roll get a new roll out of the cupboard and put it in a convenient place in the kitchen”.
  2. This morning I paced around the house, in bare feet, talking to my friend Chris VL on the phone discussing the need for a coffee at the God’s Cafe this morning.
  3. I didn’t look where I was walking (due to animated conversation about the benefits of coffee) and I trod in cat vomit in the middle of the floor! Gross!
  4. After the initial revulsive concussions racking my body subsided I thought that it would be okay, I can just hop to the kitchen (a metre away) and wipe my foot with kitchen paper. No worries.
  5. I hopped to the kitchen, opened the draw where the paper is kept and, as you have already guessed, it wasn’t there. At this point I recalled my flagrant process violation and panicked.
  6. Military Grade Disaster!!!!!!

As you can see process can avoid disaster. Believe me.

« Previous entries