Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Predictive vs Reactive software design [closed]

I know that for me I first got started following the waterfall method of project management and along with that I went with the predictive approach to software design. In this I mean we had huge packets of documentation, UML, database schemas, data dictionaries, workflows, activity diagrams, etc.

Having worked in software for over 10 years now I find it to be much more realistic to approach software design from a Reactive approach. I frequently follow a scrum approach to project management and with that very little heavy documentation is ever generated. We have very little workflow specification (though they still have there use). This is a much more dynamic approach to software creation. Of course along with it comes frequent refactoring as time goes on as we find out new features over time that had we planned for up front would have changed things dramatically.

The big difference for us is that the first approach takes longer, seems to fail more frequently in a software construction world, and isn't nearly as flexible. The second approach provides more flexibility, makes us aware of failure faster (so we can course correct faster), and provides some form of functionality at the end of every iteration.

Knowing both sides from experience, I still find many people that LOVE the waterfall approach over the agile approach for software development. I don't get it.

question: Why would someone use waterfall over some form of agile with all of the research backing agile? What are strong arguments for using waterfall over agile?

like image 477
Andrew Siemer Avatar asked Jul 29 '09 21:07

Andrew Siemer


2 Answers

When I started programming (with COBOL no less), waterfall was the "new" approach. Today, I'd tell you that I use a waterfallish agile methodology. For larger systems, I find a waterfall type start works best. Not creating huge documents (that's a waste of time IMO) but rather to take some steps like creating a UI prototype and/or use cases to get our heads around the business problem at hand. Once we are comfortable we have the problem scoped and we have a solid understanding, we move into an agile development mode.

To answer your question though, I think the big reason waterfall sticks around is many people don't like change. It's scary to change and moving from waterfall to agile is a big change.

like image 114
Jeff Siver Avatar answered Nov 06 '22 10:11

Jeff Siver


My boss tells me to.

I suspect many people have no choice and old bosses don't learn new tricks.

like image 21
Nifle Avatar answered Nov 06 '22 10:11

Nifle