In-depth introduction to software development ---- (4) Planning iterative development

Source: Internet
Author: User

(Notes migrated from iteye many years ago)

After obtaining user requirements and writing them into user stories, and estimating the time required for each user story development through playing poker game. We get the time needed to develop all the user stories. In most cases, the customer's requirements for new software are quite urgent. Few projects are time-free. Successful software development is to develop the software required by the user at the specified time and budget. Therefore, we need to develop software based on our available time.

 

Calculate the actual available development time (in days ):

 

Each project has a clear deadline for customers to get what they need at that time. Therefore, our theoretical availability time is generally fixed, that is, from the project to the deadline specified by the customer. However, we didn't spend so much time on development, including weekends, holidays, and vacations for employees. In this way, we have to consider entering the computing field. In this way, every month's working days is 20. In addition, we also need to consider the efficiency of developers, including staff leave, illness, etc. We can use the development rate to represent (the value should be less than 1) 0.7 or 0.8 is a good start point. After an iterative development, we can adjust the value based on actual work conditions.

 

The following formula is used to calculate the actual available development time:

 

Actual available development time = available natural months × 20 × developers × development rate

 

 

Let the customer select the user sotries to be developed and arrange the priority:

 

After calculating the actual available development time, we can arrange the user stories we developed within the available time. And so on. Instead, the customer decides which user stories to develop. Only customers can truly know what they need and what they don't need. Generally, customers require more requirements than they actually need. At this time, we need to help users select what they really need, and we can also develop user stories within the available time.

 

Select and sort the user stories that must be implemented based on the priority and actual available time. These user stories will be used as the features to be developed in milestone 1.0. In this process, we need to tell the customer that the user stories not picked out are not discarded, but postponed to milestone2.0 or milestone3.0.

 

Milestone1.0 should only contain baseline functionality. If these functions are missing, the software cannot provide them. These functions are the minimum set of functions of the software.

 

 

Allocate the selected user stories to each iteration (also based on the priority ):

 

After obtaining all the user stories of milestone1.0, We need to divide them into several iterations. The iteration cycle should not be too long. We recommend that you use a shorter iteration. A short iteration cycle helps you identify and respond to changes and make adjustments in a timely manner without the expected time. At the same time, it is easy to get feedback from customers earlier in a shorter iteration cycle, making it easier to adjust the plan.

 

However, it is too short, because frequent plans and releases are not conducive to development. At the same time, the selection of iteration cycles is also related to the experience of developers and the characteristics of projects. Generally, a calendar month, that is, 20 working days, can be used as an iteration cycle.

 

User stories in milestone1.0 is allocated to each iteration cycle based on the workload that can be completed in each iteration. User stories with a higher priority should be developed first. In this way, we get several iteration development cycles.

 

 

 

Use big board to monitor the development process:

 

After obtaining the first iterative development, we can perform the first iterative development. Don't worry. We also need a tool to monitor our work efficiency and actual workload. This is the big board. Images of the big board that cannot be found (will be introduced in future articles ).

 

 

Notes:

 

1. The customer determines what to develop, what to develop, and what sequence to develop. Developers can only assist customers.

 

2. the more developers, the better. Based on the team members and project characteristics, when the number of developers reaches a certain level, adding more developers will not increase the development speed, but reduce the team's productivity. This is because the more people there are, the more overhead of communication and management.

 

3. Don't work overtime. Working Overtime can only make developers feel exhausted and reduce productivity, and affect their lives (except in some very special cases, such as before the product release ).

 

4. Maintain good communication with the customer and pay attention to the communication methods. The most important thing is "Be honest with customer ".

In-depth introduction to software development ---- (4) Planning iterative development

Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.