There seems to be little agreement in the software testing industry about how much of our work we should document. Stop and consider this for a moment. It’s not just the software testing industry that disagrees on this topic. It’s not just organisations, sectors in industry or individuals that disagree. Socrates and Plato, two great classical Greek philosophers, both disagreed about what they should write down.
Socrates had a complete aversion to writing any of his philosophical musings down. In fact he actively objected to writing anything down and encouraged others to avoid writing anything down too. His argument going along the lines of; text without teaching gives the illusion of learning and little else. In short he disliked the idea that you could know lots but understand very little.
Plato on the other hand argued that if we write nothing down, how do we impart our knowledge and wisdom on future generations? And with hindsight, if it wasn’t for Plato writing down a lot of what he was taught by Socrates, we’d have lost an immense body of work and understanding.
So these arguments for and against writing have been raging for centuries. And clearly these arguments go well beyond the software testing industry. For us though, there are some unique considerations. Some of those unique considerations include:
1. How much time do we have to document and write things down?
2. What legal requirements are imposed on us to document our work?
3. To what extent does writing help us as individuals with what we do?
4. What do our customers expect from us?
5. How else are we going to convey our thoughts and knowledge if we don’t write things down?
In some software testing environments I’ve worked in there just hasn’t been time to write much down. In some situations no amount of pushing back is going to get you the time you need either. So, as long as the team you’re working with understands that you can’t write much down, and they’re not demanding much in the way of documented tests anyway, then fine. In some environments though (e.g. air traffic control, medical, nuclear, etc) you have legal obligations to meet. So the requirement to document just about everything is built in from the start.
Another perspective to look at this from is what we demand from our counter parts in the development team. If I knew a coder was never writing comments in the code then it would suggest to me that the code may become difficult to maintain in the future. As a software tester I wouldn’t be happy about that. It’s likely to result in me finding bugs at a later stage that could have been avoided. Similarly if a development team has more than one developer I’d expect them to be using a source code control tool to help them collaborate and work effectively together. I’m a customer of the developers who write code. I expect them to write comments and use source code control tools. I expect this because I’ve seen the chaos the ensues when code isn’t controlled with source code control tools. Equally I assume that my customers expect me to write and manage my test cases with a test management tool. I may or may not think it’s necessary. If I’ve got a customer to deliver to, then I think it’s fair for them to demand this from me.
On a personal level I also know that when I write down test cases, and document software test plans, it helps me clarify my thinking. I come up with more test cases as a result, I’m clearer in my own head about what I need to do and I waste less time doing unnecessary tests. It might not work that way for everybody but I know writing things down helps me.
Finally there’s the ‘what happens if you get knocked down by a bus tomorrow’ scenario. If you don’t write anything down (or what your write is poorly written) then how do you expect another software tester to pick from where you left off. Maybe you convey that information regularly by talking to people; which is fine. If you don’t then you ought to be writing it down. That is unless you think what you do is so un-important that nobody else needs know about it.
In short I’m not advocating one approach over the other. I do think we need to stop every now and again and consider the questions above though. Every job, organisation and situation is different. It’s in our interest as professionals in the software testing industry to consider the best approach for what we are doing right now.
