Focusing on prevention rather than cure
February 17, 2005It’s a vicious cycle. Disorganisation, lack of (or unclear) best practices, lack of communication – for whatever reasons many projects find themselves looming towards their production deadline with a large list of major bugs and change requests to complete. So they get everyone involved, fixing bugs. The application goes to production or trial production with the showstoppers completed but a few of the developers are assigned to fix the rest while the next release begins. The project gets larger, so they decide to hire some more developers and the bug list grows. Before you know it, bug-fixing is a full-time job for some unlucky developers and so juniors are hired because they’re cheap and the idea is that they won’t get bored fixing bugs. And so the others on the team are left adding business value as quickly as possible. Practices such as code reviews, unit testing, etc. get thrown out of the window – if they ever existed in the first place. And suddenly the whole focus of the team is not on prevention (of bugs) but cure (fixing them).
It’s a very deep ditch to be in – the business want their value for money now, they don’t realise that letting the technical team take some time to clean house will save them money and get them more value in the long-term. But they’re already spending extra money on full-time testers and bug-fixers so why would they allow that?!
Though there may be many on the team who can make a difference, most of all I think it is the responsibility of management to recognise this misdirected focus and take the proper steps to try and pull the team out such as:
Of course it’s better not to dig the ditch in the first place. I have seen this situation many times and with a number of different project methodologies. I think what is important about methodologies is valuing the principles and using initiative to uphold them from Day 1 rather than following the practices, possibly blindly. I’m reminded of Bill Caputo’s recent blog on this. In my mind, methodologies consist of principles and practices: the principles being the values that the team should identify with and uphold (you can’t force values on people); the practices being the prescribed or suggested steps to take. You can follow the practices but if you don’t identify with the values and make adjustments to uphold them as necessary then you cannot expect everything to be rosy. Therefore, making sure that the whole team (business, developers, testers) value and appreciate the principles of the methodology from the start is the best prevention.







blondie
I’m staggered at the reliance some organizations have on testing teams. To me this suggests a clear disregard for the benefits developer testing bring, which from a business perspective is an easily accessible, automated, efficient and repeatable process that can provide as comprehensive coverage as the quality gauge suggests (a reference to the good ol’ days of brother Gibson’s project dashboard). There’s one other important aspect of developer tests that the management frequently overlook – no human element is necessary. To me, that’s a massive point. We all know humans are error prone – you can bank on testers not testing the same thing every time. It comes down to trust; I trust statistics above a head testers stating ‘Yes, we believe the system is ready for production’. I want to see “nothin’ but green” with execution times within performance boundaries, then I’ll make a decision.
Testers are still important, manual testing does play an important part in QA, but there should be much less of it than what I’ve seen, which at it’s worst has been a 3:2 ratio of developer to tester in an organization that seemingly valued testers above developers. Indeed, testers were working more frequently to the wee hours of the morning than developers – Madness! I say look at those principles you talk of, cull numbers down to say 5:1 and get those developers to pump out tests before coding!