I Do; you do; our customers do; Period
Well we all know the answer, but is it really what we believe in? The more important question is how do we choose to deliver quality when we can not measure it?
A few months back, I was sitting in a meeting where the conversation went something like
Business Person: So we need 24000 hours to deliver the scope of the release?
IT Person: Yes. But this does not include the hours needed to fix defects that we will have in the application at the end of development lifecycle.
Business Person: So how many defects we had in last release – I assume about 700?
IT Person: Yeah.
Business Person: So I can expect 2000 in this release? How much time do you need to fix one defect?
IT Person: About 16 hours per defect
I will let you do the math, but what made me fell out of my chair was the fact that everyone in the room was accepting the fact that even before we were developing the application we would have 66% of the time spent in fixing defects. Not even once did anyone asked, how can we ensure that we do not have so many defects in the application. Now even once did anyone asked if we already have Unit testing how come we still have these many number of defects.
Well, this is not the first time I heard this conversation and I am sure not the last time. But, I wonder how do people reach Architects, Project Managers, Program Managers and Directors IT if they have these discussions.
I did not say anything in the meeting, because I was supposed to sit there and listen which is another sad story. I could not even say anything to my IT team once the meeting was over; I was just not supposed to. Maybe, if someone who was in that meeting reads this and can co-relate I would be in a big shit of trouble; but I am going to risk it – do not know why.
I am someone who can not start writing a piece of code without having a unit test before it (Test Driven Development). But, then the projects I have been working lately do not even automated unit testing let along TDD. Their unit testing is done because they have to compliant with the Quality Process and at times it is done with a set of people who never coded it. The unit testing team works like a QA team but is withing the realms of the development team itself. And then there are times when Unit testing happens in parallel to System Testing.
This is a rant, where I hope I can pass a message around importance of testing.
- Baking Test Driven Development into Agile Software Development (devx.com)
- Automated Unit Tests (alkpms.wordpress.com)
- Principles of Test Driven Development (TDD) (wangyunbo.wordpress.com)
- Unit tests are overrated (devlicio.us)