(@DeveloperVibes) Chapter
(@DeveloperVibes) Chapter
Chapter Includes :
• Introduction
• Software Project Planning
• Other Planning Activities
• Organisation of the Software Project Management Plan
(SPMP) Document
INTRODUCTION
Effective software project management is crucial for the success of any software
project. There are numerous instances of software projects ending up as failures not
for lack of competent technical professionals or resources but due to the use of faulty
software project management practices. Therefore, it is important to know the latest
techniques in the field of software project management. The main goal of software
project management is to enable a group of software engineers to work efficiently
towards successful completion of a project.
The Project Management Institute defines project management as; “The applications
of knowledge, skills, tools and techniques to project activities in order to meet or
exceed stakeholders’ needs and expectations from a project”. Project management is an
integrative endeavor - an action, or failure to take action, in one area will usually
affect other areas. The interactions may be straightforward and well understood, or
they may be subtle and uncertain. For example, a scope change will almost always
affect project costs, but it may not affect team morale or product quality. These
interactions often require trade-offs among project objectives -performance in one
area may be enhanced only by sacrificing performance in another. Successful project
management requires actively managing these interactions. Many techniques of gen-
eral project management are applicable to software project management, but Brooks
pointed out that the processes and products of software projects have certain char-
acteristics that make them different. One way of perceiving software project manage- 69
ment is to think of it as the process of making something visible, which is invisible.
Software ➤ Invisibility : when a physical artifact such as a road is being built, the progress
Engineering can actually be seen. With software, progress is not immediately visible.
➤ Complexity : Per dollar, pound or euro spent, software products contain
more complexity than other engineering artifacts.
NOTES
➤ Flexibility : The ease with which software can be changed is usually seen as
one of its strengths. However this means that when the software system
interfaces with a physical or organizational system, it is expected that the
software will change to accommodate other components when necessary,
rather than vice versa. This means the software systems are likely to be
subject to a high degree of change.
➤ Standard Process : In other engineering disciplines with a long history, the
processes are tried and tested. Our understanding of software processes has
developed significantly over the past few years. Hence, we still cannot predict
with complete certainty when a particular software process is likely to cause
developmental problems. Software project managers are responsible for plan-
ning and scheduling software development. They supervise the work to ensure
that it is carried out to the required standards and monitor progress to check
the development is on time and within budget.
can be used as the basis for acceptance testing of the delivered system. Qualitative
requirements such as :
➤ Accuracy shall be sufficient to support mission.
➤ System shall provide real-time response.
➤ System shall make efficient use of primary memory.
➤ System shall be 99 percent reliable.
are often meaningless and can result in misunderstandings and disagreements be-
tween developers and customers. It is difficult to quantify requirements in the plan-
ning phase because usually it is not clear what is needed to solve the problem, or
what can be achieved within the solution constraints. Nevertheless, every effort
should be made to formulate meaningful requirements, and to state the methods
that will be used to verify each requirement.
High-level goals and requirements can often be expressed in terms of quality at-
tributes that the system should posses. These high-level quality attributes can in turn
be expressed in terms of attributes that can be built into the work products. For
example, reliability can be expressed in terms of source-code accuracy, robustness,
completeness, and consistency. Each of these terms can be carefully defined in terms
of more specific attributes of the source code. For instance, accuracy can be defined
as the extent to which the results produced by the code are sufficiently precise to
satisfy their intended usage. This can be translated into specific requirements for any
particular problem. For example, “phase accuracy shall be 0.5 degrees” is an accuracy
requirement that can be used to assess the quality of software in a navigation system.
It is important that high-level acceptance criteria for the system be established
during the planning phase. Lack of clearly stated, quantified acceptance criteria can
lead to serious misunderstandings between customer and developer. Acceptance cri-
teria must be stated in terms that can be verified by well-defined methods such as
inspection, analysis, or tests to be performed on the resulting work products. Each
requirement should include the method that will be used to verify it.
Plans describe the mechanisms to be used in achieving goals and requirements. For
instance, the goal of delivering work products on time can be expressed in terms of
reaching each project milestone on time. A milestone is a significant event in the
software product life cycle; examples of milestones include completion of require-
ments analysis, completion of design, and integration and successful testing of all
system components.
In order to plan for reaching each milestone on schedule, questions such as the
following must be answered:
These procedures to be used are specified. These are used in requirements phase,
design phase and testing phase. During planning phase these activities should
be planned and adequate resources should be budgeted to permit successful Check Your Progress
quality assurance. 3. What are possible
constituents of com-
iii. Planning for independent verification and validation puting system?
4. What are feasibility
On some critical software projects, an independent organization may provide determining tech-
verification and validation of work products. Verification ensures that various niques?
work products are complete and consistent with respect to other products cus-
tomer needs. Validation is concerned with assessing the quality of the software 75
in its actual quality of software. Validation typically involves planning and
execution of test cases.
Software iv. Project Management Plan
Engineering
After project planning is complete, project managers document the results of the
planning phase in a Software Project Management Plan (SPMP) document
whose general structure is shown below. In addition to recording the software
NOTES
project plan in the SPMP document, project managers usually record a clear
statement of the goals and major decisions taken at this point. Any ambiguity
in the SPMP document may raise several questions in the minds of the team
members who join the group later. For instance, a project, rather than using a
graphical user interface, may implement a command language-based textual
user interface. This enables the software to run on low-cost terminals based on
explicit user request. However, this fact must be explicitly recorded in the SPMP
document. We list below the important items that the SPMP document should
discuss and a possible organization of the SPMP document.
➤ Project Estimates
(a) Historical Data Used
(b) Estimation Techniques Used
(c) Effort, Resource, Cost, and Project Duration Estimates
➤ Schedule
(a) Work Breakdown Structure
(b) Task Network Representation
(c) Gantt Chart Representation
(d) PERT Chart Representation
➤ Project Resources
76 (a) People
(b) Hardware and Software Software
(c) Special Resources Project Planning
➤ Staff Organization
NOTES
(a) Team Structure
(b) Management Reporting
SUMMARY
❑ Effective software project management is crucial for the success of any software
project.
❑ The applications of knowledge, skills, tools and techniques to project activities
in order to meet or exceed stakeholders’ needs and expectations from a project.
❑ Software project planning is an integral part of the software project management
activity. Once a project is found to be feasible, software project managers
undertake project planning.
❑ The planning process starts with an assessment of the constraints affecting the
project.
❑ The second step in planning a software project is to determine the appropriate-
ness of a computerized solution.
❑ A computing system consists of people subsystems, hardware subsystems, and
software subsystems plus the interconnections among subsystems. People sub-
systems include operators for, maintenance personnel, and end users. Hardware
subsystems include the computing hardware and peripheral devices.
❑ Software subsystems include the software to be developed plus existing software
that may be used “as is” or in modified form.
❑ A solution strategy is not a detailed solution plan, but rather a general statement
concerning the nature of possible solutions.
❑ Techniques for determining the feasibility of a solution strategy include case
studies, worst-case analysis, simulation, and construction of prototypes.
77
Software ANSWERS TO "CHECK YOUR PROGRESS"
Engineering
1. Effective software project management is crucial for the success of any software
project.
NOTES 2. The planning process starts with an assessment of the constraints affecting
the project.
3. A computing system consists of people subsystems, hardware subsystems,
and software subsystems plus the interconnections among subsystems. People
subsystems include operators for, maintenance personnel, and end users.
Hardware subsystems include the computing hardware and peripheral de-
vices.
4. Techniques for determining the feasibility of a solution strategy include case
studies, worst-case analysis, simulation, and construction of prototypes.
EXERCISE
78