By Howard Osborne
For any outsider, a visit to a software development house can feel like a trip to the funfair*. Games to try your luck at in the breakout areas, Nerf guns strewn across desks, sickly sweets and bright flashing USB-powered contraptions that should never have left Maplin.
And most of all, that slight sense of excitement when entering their world followed, sadly all too often, the disappointment at the end when expectations aren’t met.
But in this funfair, where does the performance tester fit in?
They should be in a tent by themselves, with flowing robes and a crystal ball. For they have the power to tell your fortune. And as with any seer, they can speak in riddles – offering up reams of data and charts and vague summaries that leave you feeling that something has happened but you don’t know exactly what it is. So how do you make sure you get the most from your forecast?
This requires work by you.
Make sure the tester understands what you want to know and has something tangible to work with – a bit like showing the fortune-teller your hands so they can see if you have time for gardening or bite your nails.
- Who will be using you application?
- What will be the pattern of use? Will everyone do the same thing at 16:00 on the last Friday of the month? When do your process heavy tasks run?
- What are your sales forecasts? How reliable are they?
- How is the information your users consume and add to likely to grow?
There will need to be work done on creating a realistic environment. That doesn’t just mean hardware, but data.
For a new application data will need to be generated from scratch. But for an existing application, there is usually production data which provides a good starting point, although it may need to be anonymised first.
Think about how that data has changed. What did it look like six months or a year ago? How can you make your data look like it will in a year’s time?
Fortunately, there is help at hand. The scripts that the performance tester will need to write to test the application may well provide the means to grow and age your data. Planning will be needed and implications understood. But if followed carefully, you may end up with a modelling tool which doesn’t just alert you to current and near future issues but drive your development and design process.
Just think about a situation where you are planning to move to a different technology. Maybe what you have is creaking a little and you are looking around for a new solution. There will probably be more than one approach, but which do you take?
By being able to model different designs, you can avoid expensive mistakes and in the process you’ll have a ready-made regression test set.
So next time you want to see into the future, pay a visit to the performance tester, but come prepared.
*present companies I am working with are excluded.