Subscribe by Email


Showing posts with label Iterative Planning. Show all posts
Showing posts with label Iterative Planning. Show all posts

Sunday, June 3, 2012

What is meant by project velocity?


The project velocity is one of the terms that you come across while discussing about the iteration planning and release planning! The project velocity has a got a very important and  not to be ignored part to play in these two mentioned planning processes but still most of us are not aware of its importance. 
This article is centred on the project velocity and has been discussed in detail. Like the normal physics velocity, the project velocity gives the speed of the development of a software project. 

In other words, the project velocity gives the amount of work being and efforts being spent on the software project. 

About Project Velocity


- The project is simply the summation of all the estimates of the user stories that were involved in the iteration. 
- For the release planning, you add up the estimates of the user stories and for the iteration planning the estimates of the programming tasks are added up. 
- But anyway, both the factors can employed for determining the project velocity in the case of the iteration planning. 
- In the iteration planning meeting, the number of the user stories chosen by the customer is same as it was in the previous iteration. 
- There is a rule that the project velocity of the consecutive iterations must not exceed their preceding iterations. 
- These programming tasks are nothing but a broken down or divided version of the user stories. 
- The development team is supposed to take up or sign up for only the same number of tasks that were present in the previous iteration. 
- Such an arrangement proves to be a great help to the developers when they stuck in a sticky situation and need to recover and clean up from it and thus getting the average for the estimates. 
- The project velocity is suppose to rise when the developers are allowed to question the customers for other user stories when they have already finished their work and tasks like cleaning up are also accomplished.

Please do not think that you will get the project velocity consistent throughout the development cycle! It is expected to follow through some ups and downs. 
- But if a dramatic change is observed in the project velocity, then it is an issue of concern. 
But there is no need to worry since all this can be kept in check by re- estimation and re- negotiation of the release plan. 
- It is not just in this case that the project velocity may change! 
- Even when the system is put under production for the maintenance tasks, again the project velocity is subjected to changes. 
- Division of the project velocity by the length of the iteration or the number of people involved. 
- Furthermore, the number of the people involved in the iteration is not an appropriate way for making comparisons between the productivity of two products. 
- This is so because each and every team has got its own different criteria for estimating the user stories and so we get some high estimation and some low estimation. 
- Important is to keep a track of the amount of work being done on the project so that a steady project velocity for the development can be maintained that can also be easily predicted.

The problem comes while making the first estimation! 
- At least for the following iterations you will have a clue that what project velocity is required. 
- If this measure is used properly you may be able to detect a major fault in your project much before the time at which you would have known with the help of the traditional development methods. 


Saturday, May 19, 2012

What is meant by risk-driven iterative planning?


So many approaches to iterative development and planning have been developed under the context of the agile software development process. Risk based iterative planning is one of such approaches and this is what that has been discussed in this article.

About Iterative Development


- The iterative development is based on the idea of carrying the development further step by step or incremental accomplishing one goal with each step.
- This is different from the normal approaches which take a momentary leap from the problem to the solution. 
- Such small development steps keep the development process on track and moreover it is much easier to test these small steps rather than testing the whole development process in one go.
- These steps are commonly known as the loops and are repeated throughout the development process.
- An iterative process may contain various loops depending on the complexity of the problem.
- Also depending up on the degree of the uncertainty of the problem and the situation, the looping can take various forms. 

What is Risk Based Iterative Planning


Below mentioned are the steps that are included in a typical risk based iterative planning:

1. Problem formulation: This step involves the defining of the following aspects:
(a) Time scope: the yearly programs are linked to their yearly budgets and other multiple time scopes are also defined.
(b)  Situation: the situation is defined and broken down in to smaller partial activities which are not interconnected with each other. A frame work corresponding to the budget of the problem is created.
(c)  Stake holders: the participation of the stake holders is identified and the decision maker is supposed to have full knowledge about the whole development process.
(d)  Risk: all the risks associated with the whole development process as well as the project are identified and the iterative plan is developed based on it.

     2. Information gathering: The information to be gathered regarding the project includes:
     (a) Strengths
     (b) Weaknesses
     (c) Opportunities
     (d) Threats
     (e)  Level of mobilization
     (f)  Stake holder identification
     (g) User response and so on.

     3. Vision Building: A vision is created for the development process which states how the goal can be achieved.
     4. Strategy Formation: A strategy or approach is defined to accomplish the purpose and the people involved are assigned different responsibilities and they are granted powers as per the contractual agreement.
     5. Implementation: To implement the plan power is granted to the participants and some times partnership is also formed.
     6. Evaluation of the development process: The development plan is evaluated based on certain factors like risk, reliability, stability and so on.

     

Always Remember about Risk Driven Iterative Planning


- Each iteration by itself is of no use! 
- It is only when all the iterations are put together that they become useful. 
- One point that you should always keep in your mind is that you should be as specific as possible while designing a risk based iterative plan. 
- Try to keep the length of the iterations as short as possible so that you can complete the iterative development in the allocated period of the time. 
- The most critical and difficult of the iterative planning is the generation of the tasks.
- The techniques you are using should have been stream lined to fit your time and cost budget. 
- You need to maintain a flow between all the iterations. 
- Remember that you may organize your development process in to iterations but that is not exactly what is called the agile development.
- The iterative planning is also called the sprint planning. 
- The iterative planning based up on the associated risks proves to be quite useful since it helps in avoiding many of the grave problems that can later hamper all the development efforts. 


Monday, April 30, 2012

What are basic practices of iterative development?


So many software development processes have come up with the specifications and benefits of their own. The iterative development is one such development strategy which has been identified as an agile software development process. 

The basic practices of the iterative development have been discussed here. But, before moving on to the approaches will have brief discussion regarding the iterative development.The iterative part forms the first half of the heart of the cyclic software development process with the other half being formed by the incremental development. 

The iterative development strategy was the resultant of the response to the weaknesses spotted in the water fall model of the software development and testing. Like any other cyclic software development process, the iterative development process also has its starting with an initial planning and ends up with deployment and it has so many cyclic interactions happening in between the ned points. 

The iterative development process forms an important and non neglect-able part of the following processes;
  1. Rational unified process or RUP
  2. Extreme programming or XP and
  3. Various other agile software development methods
The idea of a simple business process improvement has been implemented in the iterative development which has its flow like as shown below:

Plan à DO à Check à Act

What is meant by Iterative Development?

- Iterative development is itself an agile software development strategy which has its basic idea revolving around the use of the iterations in smaller intervals of time called the incremental.
- This agile software development strategy helps the testers and the developers to exercise their past experience of the learning in to the current testing scenario.
- With every new iteration, the design of the software system or application is modified and is incorporated with some new functionalities or features. 
- The procedure for the iterative development process consists of the following steps:
  1. The Initialization step
  2. The iteration step and
  3. Project control list
- The first step i.e., in the initialization step involves the building up of the foundation or the base version of the proposed software system or application.
- Actually, a base version is created so that the user can react with the software product and also to have a key sample of the problems of the software system or application and also possible solutions that are easy to understand and implement.
- The control list contains all the tasks that have to be performed in order to complete the software development process. 
- As the analyzation phase progresses, the project control is also revised timely and frequently as and when any change in the requirements is wanted.
- With every iteration, a task from the project control list is accomplished or redesigned. 
- The below mentioned are some of the goals of the iterative development process:
  1. Simplicity
  2. Straight forward
  3. Modular
  4. Redesigning supportive at that particular stage etc.
- Every iteration is analysed on the basis of the below mentioned factors:
  1. Structure of the iteration
  2. Modularity
  3. Usability
  4. Reliability
  5. Achievement of goals and
  6. Efficiency
Based on the results of the above factors, the project control list is modified accordingly.

Phases of Iterative Development

 The whole iterative development consists of the following 4 phases:
  1. Inception phase: It involves identification of the project scope, risks and both the functional as well the non functional requirements.
  2. Elaboration phase: It involves the delivery of a working architecture fulfilling all the requirements and mitigation of the top risks.
  3. Construction phase: It involves implementing the production ready code in to the architecture.
  4. Transition phase: It involves delivery of the project in to the production environment.


Saturday, April 21, 2012

What is meant by client-driven iterative planning?


Iterative planning is one of the important planning strategies categorized under the agile software development processes. Iterative and incremental cannot be neglected if we want a cost and time efficient software development plan. Iterative planning is a must! However so far only 3 types of iterative planning have been designed as mentioned below:

Types of Iterative Planning
1          -  Risk driven iterative planning
2          -  Client driven iterative planning and lastly
3                     - Time boxed iterative development planning

This article is focused up on the 2nd type i.e., the client driven iterative planning. But, before moving on to that we’ll discuss something about the iterative development so that understanding the concept of the client based iterative development becomes easy for you.

What is Iterative Planning?

- An iterative planning is required before starting of any iteration for the production of the plan of the programming tasks. 
- Each iteration may take up from 1 to 3 weeks depending up on the complexity of the program. 
- For every iteration some user stories are chosen that are most valuable to the customer.
- Iterative planning is an extremely important part of the below mentioned processes:
  1. Extreme programming
  2. Rational unified process and
  3. Many other agile software development frame works
- Any iterative planning, be it risk driven, client driven or time boxed iterative planning are based up on one agile principle which is to develop a software system or application through several small iterations or repeated cycles rather than drawing out the whole software system or application in just one development process. 
- Dividing down the development process in to small iterations give a chance to the developers to experience their learning of the development process in the past. 
- Firstly the sub set of the system requirements is implemented in a very simple way and later the evolving versions of the software system or application are enhanced making use of the iterations.
- This process of enhancing through the iterations continues till the whole software system or application has been implemented. 
- Every iteration seeks the modifications in the design and also the addition of new functionality.
- The following steps are 3 main important steps of any iterative planning be it risk driven, client driven or time boxed:
  1. The initialization step
  2. The iteration step and
  3. The project control list
- The first step deals with the creation of the base version of the software system or application so that it can be reviewed by the customers or the clients. 
- This base version acts as a sample for reviewing and feedback purposes. 
- The second step deals with the redesigning and implementation of tasks in order as they are mentioned in the project control list.
- The purpose of this project control list is to serve as a guide to the iteration development process. 
- This project control list is meant to be revised continually as in many of the cases the requirements of the software system or application keep on changing. 
- Certain guidelines have been stated for the implementation process called the implementation guidelines. 

About Client Driven Iterative Planning

- The basic difference between the client driven iterative planning and other types of planning is that the choice of features for the iterations are taken from the customers or more appropriately if we say from clients.

- These set of features is often decided by the clients based on how much valuable is that feature to them when it comes to business. 

- This development methodology allows the client to steer or drive the whole development as they want iteration by iteration requesting the features that are of the utmost importance to them. 

- The features for the next iteration are planned by the client “adaptively”. 


Facebook activity