We continue to study the OpenUP methodology and today we will consider the iteration life cycle.
Iterations in OpenUP support the team of developers to focus on delivering an ever-growing consumer value every few weeks by passing a fully tested assembly (an intermediate product) that can be demonstrated or passed on for evaluation and estimation to stakeholders. This creates a useful interest in creating a consumer value product for stakeholders, so that everything that is done brings the team closer to achieving the goal. Decision-making should be carried out more quickly, because time is not wasted on endless discussions. Iterative development is aimed at creating workable code, which reduces the risk of analytic paralysis. Frequent demonstrations of workable code are supported by feedback mechanisms, which, if necessary, allow corrections during the course of work.
Iteration planning, preliminary assessment and progress monitoring are done according to the elements of the work. The iteration plan is created by selecting high-priority work items. A dynamic preliminary estimate is used to understand how much of the elements of work can be included without fear into the time interval of the iteration; while the elements of the work are filtered to ensure that the selected elements of the work will allow the team to fulfill the tasks agreed with the stakeholders. The progress of execution is demonstrated by the successive execution of many small elements of work.
Intermediate product: Unfortunately, too few RUP users create fully tested assemblies at the end points of their iterations, so we wanted to make this requirement more explicit.
Elements of work: Using a single principle of prioritization, rather than compiling differently prioritized lists for different types of requirements, defects, requests for improvement, etc., makes life easier for developers.
Dynamic Preliminary Assessment: Teams that practice the principles of flexible development often perform a preliminary assessment than other teams. Many teams that do not practice flexible development methods do not. Work on methods of flexible development is subject to internal discipline.
Stable assemblies help to prevent the common problem that the teams at the end of each iteration do not create intermediate products that are of high enough quality to be used. Technology development based on test results facilitates this task, but this alone is often not enough.
Team members work more efficiently if they can influence on what and how they do, and not just work in an environment where they have to do what they are told. To motivate team members to do their job best, give them the opportunity to organize their work (and their respective responsibilities) and determine how best to carry them out. This will also help to organize teamwork among team members to ensure that certain qualifications are used to perform the relevant tasks. Self-organization affects many areas, including how the planning and distribution of responsibilities are carried out (by the whole team, not by its individual members), how the work is distributed (members of the team themselves propose their candidacies, and not appointed by the leader) and how the members of the collective see their role in the project (first, as members of the team, and secondly, as roles).
For self-organization, the following conditions must be met:
- “Transparency and responsibility are critical concepts for ensuring collective communication and identifying the best qualities in team members.Open discussion of the duties of team members in connection with the life cycle of the iteration and personal responsibility associated with microsteps guarantees timely detection of problems and deliberate allocation of specialists for their solution.
- “To help the team organize self-organization and remove obstacles to success, it is necessary to instruct.” It is assumed that the instructor will be the project manager, for this he will have to abandon the directive-controlling style of management in favor of the training style, although this was the main recommendation in the management books issued in the last two decades, but some project managers still have difficulties with the transition to this style. “
The interest of the team members can be compared with how the Toyota concern revolutionized the production of cars, providing, among other things, the production team with a defining place in determining how cars will be built. Collectives created cars and became collective owners of the final result. Each member of the team was asked to help improve the way the work is done.
Self-organization and the iteration life cycle are two methods that have not been reflected in today’s version of RUP. If you plan to implement RUP in an agile variant, you should consider adding these two techniques to the set of iterative RUP methods.