I am not sure if it is because testing is where the symptoms of many different problems are highlighted or if it is because testing is such a crucial part of IT development and support that fixing it is the most natural first step to fixing other areas.
Interestingly, I had a participant in a class recently who said to me “I think IT really began to go wrong when we started having testers”.
This sounded a bit controversial so we asked him what he meant. Apparently, when he first became a developer, he was taught that a core part of his job was to test extremely well to ensure he produced quality work. Now, he claims, there is a view that BA’s come up with requirements, developers cut code and then it is up to the testers to make sure that things work.
I don’t think that we started to go wrong when we brought in people to test – I think the integration issues and complexity of many systems means that developers only understand part of the system well and will struggle to test everything effectively without a specialist helping with this. So I think we started to go wrong when we started to think complexity was necessary in our systems.
But I do agree that we go wrong when we think that testing is part of someone else’s role.
In fact, I really enjoyed this link that Shane sent me on how a tester perceives Agile projects, where the tester is having to deal with a change in thinking away from the tester being the finder of defects:
So I now think that the essence of good development is going to come from the synthesis of the following two trends that I am starting to see:
- Better development will mean we will do less testing: – We will start to see good projects as ones where we are surprised to find bugs rather than ones where fixing bugs is a key part of our work. Thus testing after the developer is done will become a smaller component of projects since it will cease to provide much value; and
- Better testing will mean we will do less development: – By defining the problem properly and agreeing how to test our solution, we will eliminate much of the development work we currently see as necessary. Thus development will become the simple translation of well thought out testing into the code that the system will understand … and be only a small component of the project.
I might ponder this further while consuming some of the copious leftovers we have in our house after the Christmas feasting season. Maybe we should add a warranty period to Christmas and dispense with it on our projects. Instead, we should be able to assume that what we have built will work, since we wouldn’t have built it any other way.
Posted by James King