Innovation and failure go hand in hand, fearing failure stifles creativity and progress. If you’re not failing, you’re not going to innovate.
We have always read about testing should start early in the life cycle of development, here is some analysis why.
Irrespective of Waterfall Model or Agile, we usually fall in trap of bringing in Testing in our last phase, benefit in Agile methodology is you failing faster then waterfall projects but still not faster as you can.
Usual software development life cycle:
- Planning: requirements are expressed, relevant people are contacted, few meetings takes place. Then the decision is made that we are going to do this project
- Analysis & Design: BA does Analysis and designs are prepared.
- Code/Build:Now developers write the code and hand it over to QA, in waterfall model after months and in Agile mostly at end of iteration.
- Testing: Now it’s your turn: you can start testing.
But when it’s planned this way, mostly time to test gets shrunk from what it was initially planned, reason business do not want to move deadlines as they have already committed the date, which results in testing team investing more unplanned hours getting the build tested and get discovered defects fixed.
The earlier you find a bug, the cheaper it is to fix it.
If you are able to find the bug in the requirements gathering phase, fix is going to be of nearly of no cost versus if found in testing phase or post release, fixing them is 100 times expensive.
Conclusion: Start testing early & Collaborate
This is what you should do:
- Make testing part of each phase.
- Start test planning the moment the project starts.
- Start finding the bug the moment the requirements are defined.
- Keep on doing that during analysis and design phase.
- Make sure testing becomes part of the development process.
- And make sure all test preparation is done before you start final testing.
“I have not failed, I’ve just found 10,000 ways that won’t work” – Thomas Edison