John Keklak's Coaching Comments

Friday, November 18, 2005

Some questions to ask your developers

Managers: Here are some questions you may want to ask your developers:

(a) How many test cases have you created in the course of your current project?

(b) Can you run these test cases each time you make a significant change?

(c) Do you have enough test cases to be pretty certain you will catch most things your next change will break?

(d) Can you run all these test cases in less than 30 seconds? Can you also get a comparison of this run to the previous run in less than 30 seconds?

(e) Can you run these test cases independently of other programmers' changes?


Sadly, most programmers I know won't give overwhelmingly positive responses to these questions. Most indicate they make their code changes while nearly "flying blind".

Curiously, the practice of having test suites as a development tool has been my failsafe security net. It has allowed me to successfully juggle three or four significant software development projects at a time. For one project, I have a test suite of over 500 test cases that I can run in 10 seconds, and compare with any other run in another 10 seconds.

It's not really the fault of programmers that they don't build test suites for their projects. Most companies don't consider building project test suites to be an important aspect of software development. I've even enountered managers who condescendingly sneer at such a waste of time ("It'll all come out in integration testing," they crow).

Curiously, these managers always seem to in crisis mode, rushing from one unexpected fire to the next.

Maybe they should be asking their programmers certain questions.