Lecture
It has already been noted that each software product has its own life cycle, in which the project of developing the next release enters as one of the phases. Similarly, each software development project has its own life cycle, which consists of four phases (Figure 12).
Figure 12. Life cycle and main products of the software project
At the project initiation phase, it is necessary to understand what we are going to do and why - to develop a project concept. The planning phase determines how we will do it. In the implementation phase, the materialization of our ideas takes place in the form of a documented and tested software product. And finally, during the completion phase, we must confirm that we have developed exactly the product that we conceived in the project concept, and also carry out an acceptance test (PSI) of the product for compliance with its properties, as previously defined.
As a rule, a rare project is carried out in accordance with the original plans; therefore, an important element of the completion phase is “feedback”: an analysis of the causes of discrepancies and the assimilation of lessons for the future. Remember that a control system without feedback cannot be stable.
In more detail about each phase of the project and their products will be discussed in subsequent lectures.
Completing the “bird's-eye view” project management review, it is necessary to mention one more peculiarity of the project as compared with the operational activity. If in operating activities resources are spent more or less evenly in time, in project management the expenditure of resources per unit of time has a pronounced bell-shaped distribution (Figure 13)
Figure 13. Resource allocation by project phases
A project often begins with an idea that appears in one person. Gradually, as the idea is formulated, analyzed and assessed, additional specialists are involved. More participants are required in the project planning phase. Peak resource consumption occurs during the implementation phase.
In modern software development models, implementation is based on a combination of iterative and incremental approaches.
Iteration implies that the requirements for the system and its architecture are not worked out once, but are gradually refined from iteration to iteration. This means that at each iteration there is a full cycle of development processes: specification of requirements, design, coding, testing and documentation.
The incrementality is that the result of each iteration is a software version that implements some of the functionality of the future software product and can be put into test or trial operation, as well as evaluated by the customer and future users. This means that after each iteration an increase in the required functionality occurs, and the unrealized functions of the future product remain less and less.
The combination of iteration and incrementality ensures the development efficiency and a significant reduction of risks during the project. We will talk about this later.
In the last phase, gradual release of the project team members takes place. It should be remembered that the project should have a clear ending in time, after which all the work on the project is closed, and resources cease to be spent on the project. There should be no "stuck" work.
findings
The project is a means of strategic development. The goal is a description of what we want to achieve. Strategy - a statement of how we are going to achieve these goals. Projects transform strategies into actions, and goals into reality.
Participants in a typical software development project can be divided into five groups of roles:
A software project has four factors that determine its success:
Project Life Cycle (Eng. Project Life Cycle ) - a sequence of project phases, based on the needs of project management.
As part of the methodology of the Project Management Institute (eng. Project Management Institute ) the project life cycle has 5 phases:
When modeling on the “waterfall” principle, work on a project moves linearly through a series of phases, such as:
The disadvantages of this approach are the accumulation of possible early errors by the end of the project and, as a result, the increased risk of project failure, the increase in the project cost.
Iterative approach (eng. Iteration - repetition) - the performance of work in parallel with the continuous analysis of the results obtained and the adjustment of the previous stages of work. The project with this approach in each phase of development passes a recurring cycle: Planning - Implementation - Verification - Evaluation (eng. Plan-do-check-act cycle ).
Benefits of an iterative approach:
An example implementation of an iterative approach is a software development methodology created by Rational Software.
In the model of Barry Boeme [ clarify ] , the dependence of the project efficiency on its value over time is considered. At each turn of the spiral, the next version of the product is created, the project requirements are specified, its quality is determined, and the next turn is planned.
Incremental construction: splitting a large amount of design work into a sequence of smaller components.
Comments
To leave a comment
software project management
Terms: software project management