You can be a hero, but do you want to?
Are you in one of those teams where testing starts late in the development cycle? Do your testers and developers work round the clock and spend late nights to finally get code to ship? Do you have those last minute moments of excitement and last minute heroisms?
A friend of mine, also a fellow tester was telling me about a project he had joint late in the development cycle which had a loose infrastructure for testing. How he and his team had to work late hours to ship the product out in time with minimum bugs. After pulling out such a feat successfully he felt like a hero, but also felt burnt out by the end of it.
This made me wonder. Do we really need heroes? Yes, we do. But its the Last-Minute heroes that we could do without.
Testing which starts late int he development cycle gives many bugs which might have been initailly small and simple to get entangled with some complicated ones and blow out of proportion. Now these bugs get difficult to fix. Now if you manage to identify them and fix them, invariably you will come out as a hero. But do you really need this kind of heroism?
Lets look at this from a different perspective. Lets talk about actual bugs. Cockroaches. Roaches to make it short. They can swarm up your place. I have seen this happen to a persons house. They were all over and finally he had to get the place bombed. But this could have been prevented. Getting a good vacuum cleaner, cleaning up the place regularly, using pest sprays when the first tiny roach made its appearance and maintaining hygenic conditions in and around his locality would never have seen them appear. This makes me draw a simple comparison between the vacuum-cleaners to people who bomb the house.
- Vacuum cleaners are not the ideal thing to watch for entertainment. Its boring to vacuum your house everyday. Watching house-bombers in action is entertaining.
- Vacuum cleaners come cheap. To get your house bombed would be expensive.
- Vacuum-Cleaners are not the ultimate solution. Pests do get in even after maintaining a clean environment. But hopefully you wont need to bomb your house as often.
- Using a vacuum cleaner requires you to do some amount of thought-processing. Where do you start? When do you start etc.
- Estimating the preventive job vacuum cleaners do can be difficult. You cant count the number of insects killed.
Now lets talk about your software team. On your last project did your developers work in reactive mode? Did you keep sending them back at the last moment to get things up and running? Did you find bugs late in the development cycle? Did you have a loose infrastructure and finally manage to burn your team out?
But what if your team took cheap measures like the vacuum cleaners to do the work beforehand and get bugs fixed before they could get entangled into a big mass of code? Yes, you have these cheap tools at hand:
- Automated testing tools. Yes, for the ones who are too lazy to get their own automation set up, there are cheap automation tools which would test code for glaringly suspicious constructs.
- Spec reading. Yup, reading through your spec could help identify ambiguities or spec bugs.
- Unit testing. Its getting famous!
- Code reviews. Like I might have mentioned before, I might give up unit testing, but I wont give up code reviews.
All of the above, mainly the last one, look like the most boring things to do. Its definitely not on anyones list of exciting things to do. But code reviews is something all of my team goes through. The fact that it could very well find 70-80% of your bugs makes it high priority!
You see what I am getting to. Most of these techniques would help you avoid those nail biting finishes. They cost much less, are much less exciting and require lot of planning.
Who doesnt want to be a hero? We all do. But I would'nt want to be one where it could be avoided. At least not when it comes to testing software.