wood burning stoves*
The moose likes OO, Patterns, UML and Refactoring and the fly likes Iterative Development Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Engineering » OO, Patterns, UML and Refactoring
Bookmark "Iterative Development" Watch "Iterative Development" New topic
Author

Iterative Development

Iftikhar Arain
Ranch Hand

Joined: Jul 17, 2002
Posts: 95

Q. Iterative development is used for
a) Saving initial development time
b) Reducing complexity
c) For saving time
d) For Learning
which are the correct answers.


SCJP,SCWCD,IBM UML,FLEX & AIR,MCAD,MCSD, Adobe ACE
Ilja Preuss
author
Sheriff

Joined: Jul 11, 2001
Posts: 14112
IMO, at least a, b and d are correct. You could argue about c, I guess...


The soul is dyed the color of its thoughts. Think only on those things that are in line with your principles and can bear the light of day. The content of your character is your choice. Day by day, what you do is who you become. Your integrity is your destiny - it is the light that guides your way. - Heraclitus
sunil g nair
Greenhorn

Joined: Jun 03, 2002
Posts: 14
Q. Iterative development is used for
a) Saving initial development time
b) Reducing complexity
c) For saving time
d) For Learning
which are the correct answers.
I will say only B is right.
a is not because iterative development has its own overheads, they only pay off in the long run
c saving time is true but not the primary motive of iterative development and then it may not be true for less complex systems.
Vikrama Sanjeeva
Ranch Hand

Joined: Sep 02, 2001
Posts: 756
Hi,
Here is my opinioms, in higer priority first order,
NOTE:- While answering this question, I'll assume that, question is asked w.r.t Waterfall and other non-iterative planing process.
a) For saving time
Since high risk functionalities are targeted first and due continues feedback one is not bothered about end result. Hence no time wasting indication!
b) Reducing Complexity
I don't think it's primary advantage of iterative development. All popular softawre process posses this slogan of software engineering that is, Divide & Conquer. Therefore it's one of the advantages of iterative development too!
d:For Learning
It depends upon the devlopment team. However, in iterative devlopment chances of learning is much more than any non-iterative devlopment. Because iterative development is based on various iterations, in which each iteration is just like a mini project. Therefore one has apportunity to learn by analysis, design, coding, testing & debuging in each iteration.
a)Saving initial development time
I couldn't get it's meaning!


I ranked first to a) because Time is a factor whcih is much important then any other factors. Many software process says, one can reduce the number of use cases in an iteration if there is a danger of not completing iteration on time. Which we called dead line.

Bye,
Viki.


Count the flowers of your garden, NOT the leafs which falls away!
Prepare IBM Exam 340 by joining http://groups.yahoo.com/group/IBM340Exam/
Axel Janssen
Ranch Hand

Joined: Jan 08, 2001
Posts: 2164
b is strongest.
its very dificult to predict activities and ressource allocations in detail over a relatively long time span (waterfall model).
... and I personally have very bad experience with non-iterative test-all QA approaches, planed by overpaid wanna-be managers.
They simply don't find the bugs.
[ March 04, 2003: Message edited by: Axel Janssen ]
Iftikhar Arain
Ranch Hand

Joined: Jul 17, 2002
Posts: 95

Q. Iterative development is used for
a) Saving initial development time
b) Reducing complexity
c) For saving time
d) For Learning
a) Saving initial development time
I think this has no concern with Iterative development process.Because I think initial development time is depend on the the following.
1) Domain expert
2) OOAD expert
3) resources and so on
b) THIS IS 100% CORRECT
In waterfall life cycle we try to attempts to do all the requirements for the entire system before moving on, and most of the design before moving on.
Instead in Iterative development just because of iteration.We attempts to capture the requirements in iterations.So complexity reduces.
c)I think for saving time is not the quality of iterative development.
Let suppose in a small two month project where only one iteration is for development and just like a waterfall All requirements,All design, All Coding and testing.
So the time is same for iterative and waterfall.
Finally the time is depend on the SCOPE of the project.And its not possible that a big project can be developed by iterative development in very short time.
d) I think not only you are learning when you are involve in iterative development.All methods are learning processes.

Plz comment on the following answer.
Thanks.
Vikrama Sanjeeva
Ranch Hand

Joined: Sep 02, 2001
Posts: 756
Hi,
Originally posted by Iftikhar Arain:
So the time is same for iterative and waterfall.

No at all! 99% chances are there that time is not same for waterfall and iterative devlopment processes.
Waterfall's approach is something like this... final all rqeuirements before design. Final all design before implementaion. It's an approach which is usually used in developing buildings and roads, in which all the decisons are decided and done, before devloping road and building. There is no feedback based devlopment! The software engineers devloping software using waterfall process can never tell that there software will meet user's requiremnet or not! and usally, there software not matchs usre's requirement and thet have re-develop the whole or partial software which is really really time consuming effort! This time may be the half of the time they have spent to develop first time or may be equal time.
In contrast, process based on iterative development, can never tell that there requirement phase has finished and we will start desing phase....and now our deign phase is complete and will start implementing our design!. There is no such assumptions or decisions which is static. There development is purely feedback based development. And therefore, when they reaches to the end of devblopment they are not asking themselves that weather there software will meet the user's requirement or not. There is no such thing un-predictable result. However, they are ready to face changings, devlopment even after they handle user's product. But those changes and development are minor devlopments, which is surely very less than the half of there previous devlopment time.
In summar, peoples who realizes that time is money uses iterative devlopment to save there time.

Bye,
Viki.
[ March 06, 2003: Message edited by: Vikrama Sanjeeva ]
Ilja Preuss
author
Sheriff

Joined: Jul 11, 2001
Posts: 14112
Originally posted by Vikrama Sanjeeva:
Waterfall's approach is something like this...

At least that is how most people understood waterfall, and how it is known today. Interestingly, originally waterfall was in fact meant to be iterative...! :roll:
But I agree with the sentiment of your post: non-iterative development only is faster than iterative if you don't care about building the wrong product...
Ilja Preuss
author
Sheriff

Joined: Jul 11, 2001
Posts: 14112
Originally posted by Iftikhar Arain:
a) Saving initial development time

I am not totally clear what this is supposed to mean; but if it means the time until the product is used for the first time, iterative development certainly helps.

d) I think not only you are learning when you are involve in iterative development.All methods are learning processes.

The problem is that the most effective way to learn is by gettig massive feedback. Iterative Development both increases the amount of feedback and reduces time until you get feedback on many aspects of development: identification and communication of requirements, speed of development, applicability of architecture and design, quality of coding etc.
Vikrama Sanjeeva
Ranch Hand

Joined: Sep 02, 2001
Posts: 756
Hi,
Originally posted by Ilja Preuss:
Interestingly, originally waterfall was in fact meant to be iterative...! :roll:

Amazing I have never heard and learn that anywhere. It will be a great chance to update my knowledge if u provide some authentic resource claiming Waterfall as iterative proccess. By the way, as the name suggest Water Fall, then it's a notion of cascade, in which no iteration exist! once a drop of water has leaved it's current place and moves forword cannot come back to that place again, since no iteration allowed!
Bye,
Viki.
Vikrama Sanjeeva
Ranch Hand

Joined: Sep 02, 2001
Posts: 756
Hi,
Originally posted by Iftikhar Arain:
All methods are learning processes.

Yes all methods are learning processes. But the crux of matter is that how much tendency does the process has to teach you more?? Or in otherwords, what type of nature does a prcess has?? Is it offering you apportunity to learn??. When these types of questions raised, experience shows that iterative process has much nore tendency to teach instead of non-iterative. A simple example which is , iterative process are based on iterations, in which each iteration, analysis, design, coding, testing, de-bugging is done. Hence just like a mini-project. In contrast, in non-iterative development, there is no notion of mini-projects, means designing is not done more than once, similarly analysis is not done more than once and similarly implementation and testing. And thus one has very less chance to learn each area as each are is done for once and last! On otherhand, in iterative developments, one has chance to do design second or third time more better then previous one and has chance to learn from past designing experience.
Hope it clears,
Bye,
Viki.
Iftikhar Arain
Ranch Hand

Joined: Jul 17, 2002
Posts: 95

Originally posted by Vikrama Sanjeeva:
Hi,

Amazing I have never heard and learn that anywhere. It will be a great chance to update my knowledge if u provide some authentic resource claiming Waterfall as iterative proccess. By the way, as the name suggest Water Fall, then it's a notion of cascade, in which no iteration exist! once a drop of water has leaved it's current place and moves forword cannot come back to that place again, since no iteration allowed!
Bye,
Viki.

Dear Vikrama.
I am agree with u that waterfall is not like iterative development and iterative development is a time saving method.
But for a small project both are equal.
See in the larman book 2nd edition page no 594,
chapter 37, under the heading of "SOME PROBLEMS WITH THE WATERFALL LIFECYCLE".
Larman has written
"Within a certain time scale, doing some requirements before design, and some design bofore implementation, is inevitable and sensible. For a short two month project, a sequential lifecycle is workable.And a single iteration in iterative development is like a SHORT WATERFALL PROJECT."
Vikrama Sanjeeva
Ranch Hand

Joined: Sep 02, 2001
Posts: 756
Hi,
AS far as I have understand, Larman is not trying to say that for a short project(suppose 2 months), waterfall and iterative process are equal. Infact he is advicing that for short project, one can use waterfall in place of iterative process. And many students even after knwoing the importance of iterative development uses waterfall in there short limited semester project. Because there project is so small that they prefer to use waterfall. Put another way, lets say they prefer to use iterative development, but as there project length is so short that they complete whole project in one iteration. And this is what Larman is trying to say that, in iterative development, one iteration is just like a waterfall model.
In summary, one can say that, for a short project, even after using iterative development one actually uses waterfall, provided project is completed in one iteration.
Bye,
Viki.
Ilja Preuss
author
Sheriff

Joined: Jul 11, 2001
Posts: 14112
Originally posted by Vikrama Sanjeeva:
Amazing I have never heard and learn that anywhere. It will be a great chance to update my knowledge if u provide some authentic resource claiming Waterfall as iterative proccess.

This thread at comp.object.moderated is as authentic as I could find on the net - besides the original article, which you needed to pay for...
By the way, as the name suggest Water Fall, then it's a notion of cascade, in which no iteration exist! once a drop of water has leaved it's current place and moves forword cannot come back to that place again, since no iteration allowed!

As I think about it, the name "waterfall" probably was coined later, not by the original author...?
Vikrama Sanjeeva
Ranch Hand

Joined: Sep 02, 2001
Posts: 756
Hi,
By reading the post, it seems that waterfall was infact iterative. But un-fortunately my ACM account has just finished. Will soon read the orinal artice by Dr. Royse after updating my account.
Bye,
Viki.
Ilja Preuss
author
Sheriff

Joined: Jul 11, 2001
Posts: 14112
Originally posted by Vikrama Sanjeeva:
Will soon read the orinal artice by Dr. Royse after updating my account.

Cool! Please let us know what you find out!
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: Iterative Development
 
Similar Threads
A small request
Why Is Iterative Development Important
Difference Between Iterative Development and Incremental Development
coding and kung fu
Apply iterative and incremental processes. Development Process IBM:486(UML)