Two Approaches to RUP Iterative Development Planning

Excerpted from Lhttp://www.uml.org.cn/SoftWareProcess/200905315.asp The
content of this article includes: Preface
The characteristics of the iteration development method of the iteration plan The summary of the two planning methods References With the development of software technology , The change of customer needs is getting faster and faster, and the requirements for the delivery of application software projects are also more and more to keep up with the changes in the market. RUP is very suitable for such development scenarios and has become the most commonly used development mode in application software development. From a project management perspective, the development and management of iterative plans in the development of RUP is the key to ensuring successful project delivery. A good iterative development plan can effectively reduce project risks, improve team collaboration, and improve project development efficiency. Combining the practice of applying RUP iterative development in previous projects, the author summarizes two methods of developing iterative plans, and compares the applicability of the two, in order to provide reference for project managers who apply RUP. Foreword With the rapid development of technology and rapid changes in the market, the delivery of application software projects is increasingly faced with the problems of unclear requirements, tight delivery schedule, high project risk, larger project scale, difficulty in project team collaboration, and high customer participation. . In this case, the iterative development method of RUP has become the mainstream development mode of application software development projects, and can effectively solve these problems. But this article will not fully discuss the contribution of RUP and how to apply RUP throughout the software development process. Just from the perspective of project management and project planning to explore how to apply RUP's iterative method to develop project plans.










The author applies RUP in several projects to develop and manage software projects. In this article, the two development methods of RUP iteration plan will be described in combination with practice, which has practical reference significance for guiding project managers to tailor and apply RUP. This article will also share with readers how to apply RUP in real projects to develop iteration goals, how to develop iteration plans, and a template reference example that introduces two different iteration plans.

Features of Iterative Planning

Iterative development is the core idea of ​​RUP, but when you first start using RUP, you will find that so many parallel workflows bring great challenges and difficulties to project management. Therefore, using RUP to complete a project and developing an iterative plan is one of the main difficulties in implementation.

Features of iteration planning:

An iteration is a stage of the overall project plan. It
requires a clear delivery target (or a system that can be run)
with the participation of multiple clear roles. It
can be serial or parallel. It
reflects the characteristics of RUP architecture-driven and risk-focused.
Achieve rapid delivery and shorten the lead time of large projects
Improve customer engagement and project visibility
Factors considered in the development of iterative plans:

overall project plan
Project size and cycle
Requirements clarity and technical risk
Team maturity and size
Project stage , Different iteration planning methods can be used in different stages of the same project. Setting of
iteration goals As

mentioned above, iterative planning is one of the difficulties in implementing RUP, so setting iterative goals is the key to solving this difficulty.

The iterative goal of an application RUP development project is mainly the deliverables released after the iteration ends in the project development cycle. The iterative deliverables of RUP are usually runable systems, including requirements verification prototypes, architecture verification prototypes, functional verification prototypes, test systems, and final launch products.

Usually, in the early iteration of the project, the prototype system and prototype architecture are released. Functional requirements and bug fixes. Of course, for different project types, the setting of iterative goals is also different. For example, the development projects of system software products and application software development projects, new software product development and software system upgrade projects are very different. In addition, another important factor that affects the iterative goal is the maturity of the project's requirements and architecture, the degree of clarity of requirements, the proportion of individual requirements and common requirements, which are important factors affecting project risk and iterative development goals. In addition, the adopted architecture and technology are also one of the important factors. Therefore, the setting of iterative goals needs to combine and consider the overall goals of the project and the different architectural methodologies adopted, such as SOMA (Service-Oriented Modeling) of the IBM SO A project. and Architecture) Service-Oriented Modeling and Architecture.

In a nutshell, project scope or requirements, architecture and decisions, and overall project goals are important inputs for setting iteration goals. For example, the iterative goal of prototype iterative development can be defined as follows:

Develop architecture verification framework
Complete the realization of 2 key business use cases
Complete the verification and implementation of 3 key technologies in architectural decision-making The development method of
iterative planning The

development process model of RUP has an impact on project management and project management The plan puts forward higher requirements, and the quality of the iteration plan directly affects the realization of project goals, project risks and production efficiency. How to better balance and organize the numerous concurrent activities in the project and assign different project professional roles poses great challenges to project management.

According to the author's application and practice of RUP in many projects, two development methods of iterative plan are summarized. Of course, these two methods are not used independently and separately from each other. In different projects or different stages of the same project, they will be used interchangeably or even combined.

The following will introduce the content, difference and application of these two methods.

Time-Based Iterative

Planning Time-based iteration planning is also the primary method for developing overall project plans using RUP. According to the project cycle, it is divided into the initial phase of software development (Inception Phase), the refinement phase (Elaboration Phase), the construction phase (Construction Phase) and the production phase (Transition Phase). Generally speaking, these four stages serve as the main milestones of the project development life cycle, while the refined iteration stage serves as the secondary milestones of the project.

Iteration planning is to set up different development iterations in chronological order under each milestone to meet the requirements of the milestone and achieve the goal of the milestone. For example, there are usually 1-2 iteration cycles in the initial stage, and 2-4 iteration cycles in the refinement stage. Of course, the number of iteration cycles should be selected according to the type of project, the scale of the project and the characteristics of the project. Generally, for application software development projects with unclear requirements, there are often more iterations in the refinement phase, and fewer iterations in the product handover phase. For software system upgrade projects, there are often more iterations in the construction phase.

The iteration cycle (Duration) is also a factor to be considered in formulating the iterative goal. The iteration cycle is also a reasonable cycle based on the overall cycle length of the project. Generally 2 weeks to 2 months is a more reasonable choice. The length of the iteration cycle can be different in the same project, but in general experience, a relatively fixed setting is more suitable from the perspective of project management and the work of the project team, and can maintain a better project rhythm.

Determining the number of iterations and iteration period is often complementary to setting iteration goals. Taken together, after completing the iteration goals and cycles, project managers can develop the iteration plan for the project.

In an iterative plan based on the time axis, multiple work flows (Work Flows) are generally integrated into one plan, and there is a division of labor within the project team, but the obvious division of labor is not emphasized. This method is generally suitable for the early stage of the project and when there are fewer personnel. In the middle and late stages of a project, a planning approach centered on software engineering processes and roles is often incorporated. Under this approach, for an iterative development cycle, it is more like a small waterfall model. There is no overlap between each iteration (Overlap), it is executed serially. Specific examples are as follows:

Figure 1. Iterative plan with time as axis


Figure 2. Example of iteration plan with time as axis Iterative plan

with software engineering process or role as axis

When scale of the project is relatively large, the division of labor within the team is relatively clear In many cases, iterative development activities are organized in a plan that is often difficult to manage and monitor. At this time, the project generally adopts the software engineering process or development role as the axis to organize the iterative development plan.

According to the engineering process of RUP, the following types of activities will be in the project:

business modeling, requirements analysis, analysis and design, implementation development, testing, deployment, configuration and change management, project management, environment.

In theory, each software engineering process will correspond to a separate plan, and each software engineering process will define its own iteration cycle and number of iterations. Of course, this separate plan is only relatively independent. On the one hand, it should be consistent with the overall project integration plan, and on the other hand, it should also consider the dependencies with other software engineering process plans. One of the very important responsibilities of the project manager is to identify and manage these dependencies to ensure the smooth progress of project development.

For the above nine software engineering processes, it is not necessary to correspond to nine separate sub-plans. In general application software development projects, they are generally divided into the following separate plans according to the role of the team:

business requirements development plan
Software Design Plan
Software Development Plan
Test Plan
Management and Integration Plan
There may be more than one software development plan. For example, a project has the development of multiple subsystems, and the development team is relatively large. Generally, it will be divided into subsystem 1 development plan and subsystem 2 development plan, which are organized and implemented separately. In this case, there is overlap between each iteration plan, and the execution of project planning activities is carried out in parallel.

Specific examples are shown below:

Figure 3. Iterative planning with the software engineering process as the axis


Figure 4. Example of the iteration plan with the software engineering process as the axis

Summary of the two planning methods The

following table compares the two methods and summarizes the different methods in Applicability under different applicable scenarios, as the basis for project managers to choose and adopt:

Table 1. Comparison and summary of the
 
two methods Applicable
to scenarios Time-axis iteration planning workflow and role-axis iteration Planning
Suitable project size can be all or large projects
Suitable for small and large teams of project teams Suitable for small teams and large teams
Suitable for all project stages or mid-term projects in the early stage of the project
Depends on internal dependencies, serial execution causes dependencies between teams or between plans, parallel Execution Low to high difficulty in
management
To sum up, in a project, project managers and project managers often adopt different development methods of iterative plans according to the specific conditions of the project and the stage of the project. Even combine the two to formulate an iterative plan suitable for the project, thereby reducing project risk, providing project team collaboration capabilities, improving production efficiency, and achieving the goal of rapid delivery.

References

Learning
Check out "Agile RUP: Lessons from the real world" to learn from this best practice from the real world through this article's discussion of the agile unified process.
Check out "Introduction to IBM Rational Method Composer," which briefly introduces the capabilities and features of Rational Method Composer for tailoring and customizing the Rational Unified Process (RUP).
Visit the IBM Rational Method Composer and Rational Unified Process product track, the RMC and RUP technical reference resource for process developers and managers.
Get the free Rational Method Composer toolkit and learn about the best tools and practices for tailoring the Rational Unified Process (RUP).
Visit the UML Resource Center for primers, technical resources, and best practices on Unified Modeling Language (UML).
Visit the Rational zone on the IBM developerWorks China website for technical resources and best practices for IBM Rational Software Delivery Platform products.
Subscribe to Rational Edge Chinese Edition to get best practices in software development.
Get products and technologies
Download the latest trial version of IBM Rational Method Composer.
Download more free IBM Rational trial software and learn about the latest features in IBM Rational software.
Get more IBM trial software and become proficient with development tools and middleware products from DB2®, Lotus®, Tivoli®, and WebSphere® to develop your next project. These trial software can be downloaded directly from developerWorks for free.
Discussion
Attend Rational University to share Rational product best practices with IBM Rational experts.
Check out the developerWorks blog and join the developerWorks community.

Guess you like

Origin http://10.200.1.11:23101/article/api/json?id=327039854&siteId=291194637
Recommended