Questions and answers
- Waterfall development sounds as though it should work well – why doesn’t it?
Waterfall development would work well if we knew about every missing requirement, every change request from the users, every bad design decision, and every coding error at the start of the project. But humans have limited foresight, and it is impossible to know these things in advance. So, waterfall projects never work smoothly. Expensive changes crop up at a later stage of the project – just when you don’t have the time to address them.
- Can we do agile development without TDD?
Yes, although that way, we miss out on the advantages of TDD that we’ve covered in previous chapters. We also make our job harder. An important part of Agile development is always demonstrating the latest working code. Without TDD, we need to add a large manual test cycle into our process. This slows us down significantly.