Friday, November 05, 2010

Conversations with a doctor

Imagine this situation: A woman goes to her doctor and tells him that her leg hurts. She explains that she's a professional athlete and running and jumping became difficult just after she fell down some stairs.
The doctor gives her a thorough examination and is horrified to find that her leg is badly broken, has been for a few days and is likely to cause her really serious problems if it doesn't get fixed straight away.
The doctor explains that the bone needs to be set, the leg immobilised and a plaster put on the leg for anywhere between six to eight weeks.
In response, the woman gets up, hops around the room, grimacing a bit with pain, but saying all the time that she is fine and that there is no way she could possibly have a plaster as she was so busy with her job and a plaster would really get in the way on the hurdles track. She refuses treatment and in a week, dies of septicaemia brought about by a bone infection.

Of course, this is something that would be very unlikely to happen. A woman in this situation would be physically unable to walk with a broken femur and she would be grateful to the doctor for any help that he might be able to provide. Unfortunately, the relationship between the software architect and the client is often very similar to that of the lady and the doctor in the story you’ve just read.

As an architect, I have seen more than one example of this scenario. After being called in to consult on a job and after having advised the client of serious problems with the state of health of the software, the client decides that hopping around is easier than fixing the problem. One company in Surrey (in the UK) for which I explained that the problems in their architecture would end up costing them more in maintenance than they could afford in development, went bust because they were unable to continue due to maintenance costs and the haemorrhage of unhappy developers who quickly went to look for other jobs when the boss of the company put more and more pressure on them to deliver what was effectively impossible.

Sometimes the patient is simply not qualified to make a good diagnosis of their own illness. A company that has pressure to deliver product may believe that the status quo is more desirable than the risk of change. If you fall down stairs and you can’t walk anymore, go see a doctor and take his advice. If your software isn’t working, is costing you more to maintain than it does to upgrade, go see a good software architect and take his advice.


No comments: