What can a long-dead Prussian teach us about IT?

I originally wrote this for the Trust IV blog, but I thought it deserved a “republish” here…

As a performance tester, along with many people in the IT-world, I’m often asked to plan for different eventualities. I have to write test plans, software deployment plans or help to provide estimates for how long a piece of work will take.  For predictable, simple work, this is fairly easy and is the sort of thing that people learn in school maths lessons. e.g. “If it takes one man one hour to dig a hole, how long will it take two men to dig a similar hole?”

In the IT world it often isn’t as simple as that. To (mis)quote Donald Rumsfeld, things that catch us out are the “unknown unknowns, those things that we don’t know that we don’t know.” How can we be sure that the configuration of a particular server is the same as the last one where we performed a particular task?
How do we know that the test data that we’ve been given is a true representation of live data?
How can we be sure that the business requirements we’ve been given are correct?

With a whole host of unknowns we need to be prepared to change our plans at a moment’s notice.
This is where the “dead Prussian” comes in…..

This cHelmuth_von_Moltke_(1800-1891)hap is Helmut von Moltke the Elder; a Prussian army officer who died in Berlin in 1891. He was the chief of staff of the Prussian army and an excellent strategist. Rather than directing his armies with explicit commands, which ran the risk of becoming irrelevant quickly, he recognised that it made more sense to describe an overall strategic plan to his officers and rely on them to help him to achieve his objectives.


He recognised that military strategy was best described as a system of “options” since only the beginning of a military operation was plannable. He tasked his officers with calculating numerous possible outcomes and “what if?” scenarios. Only by preparing for multiple possibilities, could he be ensured of success.

His ethos is best described with the quote which is most commonly attributed to him:
“No plan of operations extends with certainty beyond the first encounter with the enemy’s main strength.”

Often abbreviated to:
“No plan survives contact with the enemy.”
I think that “Moltke” would have been at home in the IT world. He rejected a single detailed plan in favour of multiple “what if” plans and empowered his subordinates, trusting them to make the right decisions, despite the fact that he couldn’t always be in contact with them. Although the “military subject matter” of his famous quotes isn’t pertinent in IT, the theme remains relevant.

As I tester, I believe that these quotes are spot on:

  • No test plan survives first contact with application code.
  • No project plan extends with certainty beyond the first milestone.
  • There is no such thing as the “perfect test”, prepare for the unexpected.
  • If something can go wrong, it probably will….. be prepared for it.

Can you think of any other “Moltke-themed” quotations that are relevant to you?

Answers on a postcard….well perhaps in a Tweet to @TrustIV or @RichardBishop

Introduction to performance testing at the NWTG

I really enjoy the NWTG events in Manchester which arintro_nwtge great for the testing community in this area.  I’ve noticed that performance testing is “under represented” at these events (which frequently
have a functional-testing bias).  With this in mind, I tried to give an introduction to performance testing.

For those unable to attend, the slides are available on SlideShare.

….and a video of the presentation is available on YouTube.
(My son thinks that the number of “ums” and “erms” is hilarious. I’m hoping to reduce the number of these “linguistic fillers” for my next presentation)

The final slide includes links to the Trust IV LoadRunner download page as well as blogs that I have found helpful during my time as a tester.

If anybody wants to learn more, don’t hesitate to contact @RichardBishop or @TrustIV via Twitter.

Valid UK address data for testing

Mark Tomlinson (@Mtomlins) recently contacted me via Skype and asked me whether I had source of test data for valid UK addresses and postcodes. In the past I’ve used Brian Dunning’s sample data, and initially I recommended this to Mark. The data appears to be valid, but is actually made up of real first and last names, together with randomised street addresses which do not represent actual locations. This made me wonder what would be a good source of valid addresses for testing.

There are various options available to performance testers, including cuts of production data (suitably anonymised) or the Royal Mail address database. I did a couple of Google searches and stumbled across an excellent site run by Chris Bell, a developer who specialises in .NET, PHP and Google Maps integration.

Random Address Generator – from Chris Bell’s website

Chris has a random address generator on his website, you simply enter the number of addresses you require and decide whether you want them comma separated or not, then click a button to create the addresses. As the addresses are created by are plotted on a Google map which demonstrates that they are valid and once the list is complete, you can download it to a text file on your computer.

Chris has some other great code samples on his site including code which converts postcodes to latitude and longitude (and vice versa), lists UK phone dialling codes geographically and has sources of data such as postcodes by parliamentary constituency and even property sales.

PostCodes by Parliamentary Constituency
PostCodes by Parliamentary Constituency – from Chris Bell’s website

This is a fantastic source of data for any tester or even somebody who’s just a bit nosey and wants to know how much their neighbour’s house is worth!  😉