Categories

A sample text widget

Etiam pulvinar consectetur dolor sed malesuada. Ut convallis euismod dolor nec pretium. Nunc ut tristique massa.

Nam sodales mi vitae dolor ullamcorper et vulputate enim accumsan. Morbi orci magna, tincidunt vitae molestie nec, molestie at mi. Nulla nulla lorem, suscipit in posuere in, interdum non magna.

Details of Iterative Software Development

Iterative software development is based on developing a software system incrementally. This allows the people involved to learn from learnings of the previous steps. With each iteration, more subsets of the overall specification are developed, and clarity in specifications and design from previous iterations are plugged in. This way, the system moves towards being closer to the overall customer need, rather than trying to meet the initial need that was defined in the initial stages, at a time when the customer themselves did not have full clarity about the specifications. This clarity typically comes when the customer has had a chance to look at some designs and some prototypes.
Think of the need for an iterative system like this: Many activities are involved in developing a solution to a problem. These activities include the following: Understanding the problem, figure out what the requirements would be to build a good solution, make these into a design, and create a solution out of these requirements and design, make a solution and get the solution tested. This order is the normal order used in software projects and fits the needs most of the times. However, where do problems develop in such a route ? You try to use this solution for the overall project at one go, you take all the requirements, create a design and solution for all the problems and then do development and testing for the entire solution at one go; doing all these one after the other (you would understand this to be a typical Waterfall project).
Now, if we understand the need for an iterative system, we need to understand the procedure. The Procedure consists of a number of items, namely, the Initialization step, the Iteration step, and the Project Control List. The purpose of the initialization step is to make a base version of the system. When you look at the initial implementation, the goal is to result in a product that can have the users reacting to it. The end result is that there should be a subset of the requirements set / the user workflows (considered to be the problem that needs to be solved) and which results in a solution that can be understood easily and is also easy to implement. But, for guiding the iterative process, there is a need to create a project control list which has a list of all the tasks that need to be carried out. For example, this would include the new features that have to be built as well as a redesign of existing features and solutions. The control list is a dynamic list that needs to be reviewed on an ongoing basis due to the output of the analysis phase.
Or, to put it another way, The iterative development cycle is a spiral that passes repeatedly through four phases:
– Plan. As a part of this phase, the work that needs to be done in this phase is to get an understanding of the needs of the users, and also about how you will build a solution that will meet these needs.
– Implement. As a part of this phase, the work that needs to be done is to actually build a solution, the purpose of this solution (as the word solution suggests) being, to meet the requirements of the client as captured in the plan step above.
– Measure. Now you have built a solution, you have to get feedback from the users. There are a number of questions that need to be answered after the users have been evaluating the solution. Do the users take a lot of time to understand the solution you have build? Even after this understanding, how long does it actually take them to get their work done ? While using this solution, what are some of the problems that the users encounter ? And this evaluation needs to be done at different levels – does it take them more time to get their work done, or does it take more time but the quality of work has improved and is the need for such improvement required ?
– Learn. Now that you have done the plan, implement and measure stages, this is the phase where all the feedback from previous stages needs to be analyzed, need to determine which parts of the project are doing as per requirement, and which are the parts that are not doing so well. When there are parts that are not doing well, there can be multiple reasons for the same – these can be due to errors during the implementation stage, or these can be because there was a problem during the understanding of the client processes and the user workflows. And this feedback and steps derived from the analysis is what drive the transition back to the first phase, the Plan phase. Without this stage, there is no iterative planning.

Leave a Reply

You can use these HTML tags

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>