Hello, this is Amir Shehata with another quick tip on the LUTF.
Today I'd like to express my thoughts on the software process.
We all learnt the waterfall model at school. I don't know about you, but in practice it never is that clean.
It's a lot more iterative.
As we write the HLD, we find we need to role back and adjust the requirements. The Detailed design is often passed over in favour of going directly to implementation, which I can't really disagree with.
A compromise is to develop the HLD in enough details that we can jump directly into implementation.
In my experience what often happens is that the Test plan is left to the very end. When we get to it we sometimes discover a missing requirement or a missing element of the design.
Under deadlines what inevitably ends up happening is the documentation goes stale.
When the product is then maintained by another developer the documentation (if it exists at all) is sorely out of date making the developer's life hard. Sounds like a familiar story? It does to me.
A solution that definitely doesn't work is introducing more red-tape and documentation. It'll just make the developer's life even harder.
I contend that there exists no zero effort solution. Any solution will need adjusting the development workflow, which will appear like extra effort. The trick is to reduce the cost of the solution and maximize the benefit.
Before I get to my proposal, a disclaimer. I'm a strong proponent of formalized documentation, but I'm flexible on the form this formalized documentation looks like.
One of the big problems with maintaining a test plan is developers need to create a test plan document which is separate from the test scripts.
...