Alex has been doing software development since 1990. His current passion is how to bring soft back into software. He firmly believes that our industry has reached the level of sophistication where this lofty goal (i.e. bringing soft back into software) is fully achievable. One of the amazing ways to accomplish that is to adopt the 'fail fast' approach by crafting a measurable goal/test and then iterating until the test passes. Following that, send the sniffing police dog to check the cargo (i.e. use mutation testing), and if the dog does not detect any illicit material, your code is optimally structured. Which means it is now back to being soft, maleable, pliable. Which means you have improved the flexibility of the business operations.
Alex is presently consulting at WorkSafeBC, an organization dedicated to ethical treatment of safe work environments in support of employees and employers in the province of British Columbia. Alex is responsible for leading and ensuring prudent software engineering practices at the organizational level.
To read more of Alex's writing on technology, visit his blog: http://digitalexprt.com/blog.html
Authored Comments
Not sure I understand your reasoning here. Why is waterfall the best for you? What is waterfall solving for you that agile couldn't solve?
Duration of the project/activity is not the factor that differentiates waterfall from agile. You are right -- you can have agile projects that last for years, and you can have a waterfall project that lasts only half a day.
What differentiates waterfall from agile is two factors:
1. Big upfront plan/design
2. Gated phases
In waterfall, we do not attempt to build anything until we first get a hold of a completed detailed blueprint. We call those blueprints 'requirement documents'. The delivery of a requirement document signals the end of conversation. Those documents get frozen, and only once that phase has reached its completion, do we move into the building phase.
Building phase is also gated; it must reach its completion and only then do we move into the next phase -- testing. And so on.
Agile is the exact opposite. No one in agile is waiting on the big upfront plan/design. Specifying requirements happens in parallel with building, testing, and so on.
You can see that there is a huge insurmountable difference between waterfall and agile.