Wednesday 14 May 2008

Non-predictable performance problems

Some aspects of performance are predictable. Study a horse-racing form guide and it will give you historical information that gives you some clue about how fast a race the horse is likely to ride. However, it's no guaruntee that your chosen bet will win the race - there are many other non-predictable aspects to performance that have some influence. Here, I'll list a few; and leave this topic to more scrutiny in further posts:

1) there's nothing as unpredictable as a person. Whether they're customers; staff; suppliers or jockeys; a person can behave completely erratically without a moment's warning. When assessing performance of systems where people are involved; statistical analysis of interaction patterns is very important.

2) bugs; gremlins or glitches. These quality deficiencies of imperfect systems will certainly affect performance, and since they are a consequence of design and creation - but thereafter hidden - then they will only become apparent when they choose to manifest themselves. Secure yourself with solid engineering processes; and test your systems before deploying!

3) acts of the Almighty. Often referred to in insurance contracts, 'Acts of God' can strike you when you're least expecting it - and blow performance completely out of the water. A flooding, lightening strike or simple UPS failure can all knock all or part of your system down; and cause service performance to degrade.

However; remember that many other aspects of performance are absolutely predictable. You may expect that performance for a system may degrade if you start adding more and more users. Consider the time spent queuing at the Post Office - you spend more time in the queue when more and more people arrive; this aspect of performance is predictable - provided you profile performance well enough. Consider these aspects as predictable:

1) performance degrades when load increases. Add more workload to your system, what happens? System will start to slow down. This degradation happens because throughput is nearing a capacity limit - and can be predicted.

2) performance improves when you upgrade your system. Add more or faster capacity to your system, you'll find it can take more workload - and often perform faster too. This can be predicted.

3) performance changes when you change your system. Whether you change your business processes; add new services; change to a new service provider or re-organise your underlying resources - performance can change, and can be predicted.

So predicting performance does have a place in a well-organised business; though due to non-predictable performance problems; predictions by themselves still don't give you all the answers you need.

No comments: