If you aren't doing incremental design, don’t you end up having to make changes to your software during the next release to take into account all of the feedback and requests for new features that you get from customers? Don’t you have to rework the software (including the design) anyway? Aren't you already doing incremental design on a macro scale anyway?
One of the points of incremental design is that design changes are inevitable and that you are better off writing your code in ways that make it more amenable to design changes. For instance, unit tests encourage the creation of mock objects and the use of mock objects encourage the creation of abstraction layers which as we all know are a good thing.
And let’s not forget that dirty little “major overhaul” secret. You show me some software developed without incremental design that hasn’t had a “major overhaul” and I’ll buy you dinner. So, if you agree that you are going to have to make changes to your design anyway, sometimes major changes, why wouldn’t you want to do incremental design?
1 comment:
In a little entrepreneurial startup, you end up trying lots of ideas, until you find the one that works. It's rare that you actually see the whole business before you start, unless you're just copying some other company.
Incremental design allows you to step gingerly in the waters, without committing too much. It's the only (sane) way to proceed. Just remember to toss it away if it doesn't work.
Post a Comment