aspose file tools*
The moose likes Agile and Other Processes and the fly likes Incremental vs Iterative Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Engineering » Agile and Other Processes
Bookmark "Incremental vs Iterative" Watch "Incremental vs Iterative" New topic
Author

Incremental vs Iterative

Pho Tek
Ranch Hand

Joined: Nov 05, 2000
Posts: 761

Greetings!
Are incremental dev and iterative dev
the same thing ? Does anyone have an
explanation on how to differentiate b/w
the two ?
Thanks
Pho


Regards,

Pho
Alistair Cockburn
Author
Ranch Hand

Joined: Feb 21, 2002
Posts: 43
Yes.
"Incremental" means "add onto".
"Iterative" means "alter".
In incremental development, you produce a piece of final, tested code that is a part of what is finally needed. Then you repeat and produce another piece of final, tested code. You "add onto" the existing chunk, grow it.
In iterative, you produce a best first guess at a piece of design or code, and you evaluate it. Then you go and improve it. (e.g UI design)
Most people do both at the same time, so they don't notice the difference. But if you get them mixed up you can mess up badly


Alistair Cockburn<br />acockburn@aol.com<br />Author of <a href="http://www.amazon.com/exec/obidos/ASIN/0201699699/ref=ase_electricporkchop" target="_blank" rel="nofollow">Agile Software Development</a>
Pho Tek
Ranch Hand

Joined: Nov 05, 2000
Posts: 761

Alistair,
I like your explanation. So increments are units of work that will be project managed. And each increment is developed iteratively.
Thanks
Pho
[ March 20, 2002: Message edited by: Pho Tek ]
Gerry Giese
Ranch Hand

Joined: Aug 02, 2001
Posts: 247
Pho, you said "So increments are units of work that will be project managed. And each increment is developed iteratively."
I wouldn't go so far as to say that. An increment could be widely varying in size, from a new method in a class all the way up to a multi-class subsystem, and therefore may or may not need to be 'project managed'.
Yes, each imcrement is likely developed iteratively, but as Alistair didn't quite clarify is that there is a difference between purposely developing incrementally/iteratively/both (ie, planning for it) and developing same randomly (subconsciously??) in an unplanned manner.
Any non-trivial project should attempt to take into account that both activities are likely to occur, and plan (ie, 'project manage', not 'micro-manage') accordingly. Sometimes it's tough to do, but if the team and it's leaders have some experience and the goals are well-defined, you can specify which increments of the system should be written in what order and approximately how many iterations you expect each increment and the whole system to go through.
You can also do an entire system without true 'increments' but using 'iterative' development - write a minimal system (prototype) and fix bugs/add features in each iteration, but for a large project you'd be loopy to not insert planned increments of functionality.
Does this help?


CJP (Certifiable Java Programmer), AMSE (Anti-Microsoft Software Engineer)
Author of Posts in the Saloon
shailesh sonavadekar
Ranch Hand

Joined: Oct 12, 2000
Posts: 1874
alistair , thanks for hanging around in ranch. i still have some questions to ask on agile.
alistair , thanks for giving the difference between iterative & incremental. but ,most of the texts on software engineering doesn't give this fine line or rather one can say they are treated as same. can you please elaborate more upon it ?
one more question. how waterfall & incremental differ then ? this article gives the details of martin fowler's approach for incremental. it looks similar to waterfall. I may be wrong. some insight on all these may be really great.
shailesh.
[ March 21, 2002: Message edited by: shailesh sonavadekar ]
Pho Tek
Ranch Hand

Joined: Nov 05, 2000
Posts: 761

I believe the difference b/w waterfall & incremental is that the construction phases are not exactly bite size chunks (increments) but a monolithic time period whereby working code is supposedly delivered at the end of the phase. I'm quite no one is writing software in this manner anymore. The prototyping approach is rather prevalent in most shops.
Pho
shailesh sonavadekar
Ranch Hand

Joined: Oct 12, 2000
Posts: 1874
pho , there are various aspects based upon which you select model. there are certain parameters becuase of which you go for prototype model. there are certain parameters which force you to select win - win model. in the same manner , there are certain situation in which the waterfall model is advantageous.
plus , the model itself has undergone change. please read book on " Software Project Management " by Walker Royce.
Alistair Cockburn
Author
Ranch Hand

Joined: Feb 21, 2002
Posts: 43
Originally posted by shailesh sonavadekar:
alistair , thanks for giving the difference between iterative & incremental. but ,most of the texts on software engineering doesn't give this fine line or rather one can say they are treated as same. can you please elaborate more upon it ?
[ March 21, 2002: Message edited by: shailesh sonavadekar ]

Indeed, most don't. I wrote this definition first in 1993, and repeated it in my Surviving OO Projects book in 1997. Martin Fowler told me I had "lost", and iteration was going to become the common word for both. I still keep the two separate because I periodically encounter project iterating without incrementing, and they inevitably fall into deep trouble.
The two, and their relation to waterfall are explained in my
VW-Staging article (which is a bit short, perhaps, but sets out the main points).
I think "increments are units of work that will be project managed. And each increment is developed iteratively" is a fine summary of the strategy.
I like to think of "An Increment" as being something that gets delivered to a real user, possibly every month, or three months. That definitely needs to be project managed.
XP uses what I call "nano-increments", function add in a 15-minute to 4-hour session, tested, and then checked in. Those don't get delivered to the user, of course. The "iterations" in XP are hidden - they just happen all the time, part of business-as-usual. In most organizations, both increments and iterations are larger and need to be scheduled / managed.
Use of incremental development is a critical success factor in most projects, and easier to manage than iterative. Iterative development happens whether you like it or not - it is hard to "schedule", however.
Junilu Lacar
Bartender

Joined: Feb 26, 2001
Posts: 4462
    
    6

Originally posted by Alistair Cockburn:
Use of incremental development is a critical success factor in most projects, and easier to manage than iterative. Iterative development happens whether you like it or not - it is hard to "schedule", however.

My current project is with a mainframe shop accustomed to following "waterfall". They are testing the OO waters with Java but decided early on that they didn't want to do "Iterative" development because it would too much of a culture shock -- even though in reality they do it all the time. Some folks just can't get past what they see in MS Project :roll: .
Alistair, thanks for hanging around
BTW, I am re-reading your book now and the tip of my highlighter is getting raggedy. Thanks for sharing the articles in the appendix. I find it pretty amazing how simply being aware of the three stages of practice can change so many things
Junilu
Alistair Cockburn
Author
Ranch Hand

Joined: Feb 21, 2002
Posts: 43
Originally posted by Junilu Lacar:
Alistair, thanks for hanging around

I hang out where the conversation is good
Originally posted by Junilu Lacar:

BTW, I am re-reading your book now and the tip of my highlighter is getting raggedy. Thanks for sharing the articles in the appendix. I find it pretty amazing how simply being aware of the three stages of practice can change so many things

Perhaps most surprising to me is how many people have such strong reactions to that single part of the book. Originally, those three levels were at or near the back of the book - a casual colleague commented so strongly on it that I moved it to the front, where more people will see it.
At a personal level, I find this perhaps the most satisfying contribution of the book - because people listen to each other better than before, and with more empathy for the other's situation. This is an almost impossible desire to fulfill, so having something so simple as the three levels in the, and having that make such a big difference, is triply rewarding. (Thanks for mentioning it).
shailesh sonavadekar
Ranch Hand

Joined: Oct 12, 2000
Posts: 1874
alistair , thanks for replying. thanks also for saying , what I perceived about the s/w engineering books was correct.
i have read your book on " surviving oo projects ". I have read those definitions there. apart from that I have atleast 4 to 5 books on s/w engineering , which never had mentioned that definition.
what do you think the reason must be ?
do you see where waterfall still beneficial as development model ? steve maconnell & royce walker have mentioned that modified waterfall method still holds chance . what is your perception ?
[ March 25, 2002: Message edited by: shailesh sonavadekar ]
Alistair Cockburn
Author
Ranch Hand

Joined: Feb 21, 2002
Posts: 43
I have read those definitions there. apart from that I have atleast 4 to 5 books on s/w engineering , which never had mentioned that definition. . . . what do you think the reason must be ?
The reason for the confusion is that most writers (I recall reading many such in the early 1990s) interpret the word "iterative" as "repeating the waterfall cycle."
Note that this interpretation covers both of my definitions of incremental and iterative - in other words, it gives no advice.
I split those two apart along the lines of "repeat the development cycle on the same piece of code" (iterative) versus "repeat the development cycle on a new piece of code."

do you see where waterfall still beneficial as development model ? steve maconnell & royce walker have mentioned that modified waterfall method still holds chance . what is your perception ?
Rarely. Even incremental as a sequence of waterfall subprojects is almost always better.
(edited by moderator to fix quotes)
[ March 28, 2002: Message edited by: Junilu Lacar ]
shailesh sonavadekar
Ranch Hand

Joined: Oct 12, 2000
Posts: 1874
alistair thanks fro replying. it was really great discussion on really important topic in software engineering .
as per your reply , waterfall doesn't stand a chance ? ( i am interpreting that way , i may be wrong ) but , what about the projects whose wbs you can easily built & execute the project with great success ?
hope to see you in this forum.
 
It is sorta covered in the JavaRanch Style Guide.
 
subject: Incremental vs Iterative