SEPM Module 4
SEPM Module 4
CHAPTER 1
1.1 INTRODUCTION TO SOFTWARE PROJECT MANAGEMENT
1. Software Project Management is an art & Science of planning & leading software Projects
from ideas to reality.
2. A Software Project is the complete procedure of software development from requirement
gathering to testing and maintenance, carried out according to the execution
methodologies, in a specified period of time to achieve intended software product
3. Project management is the discipline of defining and achieving targets while optimizing
the new resources (time, money, people, materials, energy, space , etc.) over the course of
a project (a set of activities of finite duration).
4. Project management involves the planning, monitoring, and control of people, process, and
events that occur during software development.
Everyone manages, but the scope of each person’s management activities varies according his or
her role in the project.
Software needs to be managed because it is a complex undertaking with a long duration time.
Managers must focus on the fours P’s to be successful (people, product, process, and project).
A project plan is a document that defines the four P’s in such a way as to ensure a cost effective,
high quality software product.
The only way to be sure that a project plan worked correctly is by observing that a high-quality
product was delivered on time and under budget.
3
SOFTWARE ENGINEERING AND PROJECT MANGEMENT(21CS61)
4
SOFTWARE ENGINEERING AND PROJECT MANGEMENT(21CS61)
1. Complexity Management
o Software projects often involve intricate systems and interdependencies. Effective
management of this complexity ensures that the project remains coherent and
manageable.
2. Requirement Management
o Clear and precise requirement management is essential to ensure that the final
product meets user needs and expectations. Mismanagement here can lead to scope
creep and project failure.
3. Time and Budget Control
o Monitoring and controlling the project timeline and budget is vital. This includes
planning, estimating, and adhering to schedules and financial constraints to prevent
overruns.
4. Risk Management
o Identifying, assessing, and mitigating risks can prevent unforeseen issues from
derailing a project. This proactive approach helps in managing uncertainties
effectively.
5. Quality Assurance
o Ensuring that the project meets quality standards is crucial for user satisfaction and
reducing post-release defects. Continuous testing and validation are key practices.
o
6. Team Coordination
o Effective communication and coordination among team members are essential for
collaboration and timely problem-solving, ensuring that everyone is aligned with
project goals.
5
SOFTWARE ENGINEERING AND PROJECT MANGEMENT(21CS61)
7. Stakeholder Management
o Engaging and managing stakeholders helps in gaining their support and addressing
their concerns, which is critical for project acceptance and success.
8. Scope Management
o Defining and controlling what is included in the project prevents scope creep,
ensures that all necessary features are delivered, and avoids unnecessary work.
9. Process Improvement
o Continuously improving processes ensures that the project is using the most
efficient methods and practices, leading to better performance and outcomes.
10. Resource Allocation
o Efficient allocation and management of resources (human, financial, and material)
ensure that the project has what it needs to succeed without wastage.
Conclusion
Effective software project management is essential due to the inherent complexities and challenges
of software development. The key areas outlined require diligent attention and management to
6
SOFTWARE ENGINEERING AND PROJECT MANGEMENT(21CS61)
ensure project success. The statistics provided illustrate the high stakes involved and the
substantial impact that good project management can have on the success rates of software
projects. By focusing on these areas, businesses can significantly improve their chances of
delivering successful projects that meet deadlines, stay within budget, and satisfy quality
standards.
7
SOFTWARE ENGINEERING AND PROJECT MANGEMENT(21CS61)
8
SOFTWARE ENGINEERING AND PROJECT MANGEMENT(21CS61)
contractors.
• Thus, the project manager will not worry about estimating the effort needed to write
individual software components as long as the overall project is within budget and on
time. On the supplier side, there will need to be project managers who deal with the more
technical issues.
➢ Contract management is the process of managing the creation, execution, and analysis
of contracts to maximize operational and financial performance and minimize risk.
➢ It involves various activities from the initial request for a contract, through negotiation,
execution, compliance, and renewal. Effective contract management ensures that all
parties to a contract fulfill their obligations as efficiently as possible.
Example: Once the terms are finalized, the contract is reviewed by both parties' legal teams.
After approval, both the software company and the developer sign the contract.
4. Obligations and Performance:
Ensuring that all parties adhere to the terms and conditions agreed upon in the contract.
Monitoring performance and compliance.
Example: The developer starts working on the project, adhering to the deadlines and
deliverables specified in the contract. The software company provides the necessary resources
and makes payments as per the contract.
5. Modification and Renewal:
Making necessary amendments if any changes occur during the contract period. Reviewing
and renewing contracts as needed.
Example: Midway through the project, the software company requests additional features not
covered in the original contract. An amendment is made to include these new features and
adjust the payment terms accordingly. As the project nears completion, the company and
developer may negotiate a renewal for ongoing maintenance.
6. Closure:
Completing all contractual obligations, ensuring all parties have met their requirements, and
formally closing the contract.
Example: The developer finishes the project, and the software company conducts a final
review to ensure all deliverables meet the agreed-upon standards. Once confirmed, the
contract is closed, and a final payment is made.
1. Identifying Needs: XYZ Tech identifies a need for a mobile app to complement its
existing software suite.
2. Selecting a Vendor: XYZ Tech shortlists several development firms based in India,
10
SOFTWARE ENGINEERING AND PROJECT MANGEMENT(21CS61)
11
SOFTWARE ENGINEERING AND PROJECT MANGEMENT(21CS61)
system, are estimated. The study could be part of a strategic planning exercise examining and
prioritizing a range of potential software developments.
1.5.2 Planning:
If the feasibility study produces results which indicate that the prospective project appears
viable, planning of the project can take place. However, for a large project, we would not do all
our detailed planning right at the beginning. We would formulate an outline plan for the whole
project and a detailed one for the first stage. More detailed planning of the later stages would be
done as they approached. This is because we would have more detailed and accurate information
upon which to base our plans nearer to the start of the later stages.
1.5.3 Project Execution:
The project can now be executed. The execution of a project often contains design and
implementation subphases. The same is illustrated in Figure 1.2 which shows the typical
sequence of software development activities recommended in the international standard ISO
12207.
1.5.3.1 Requirements Analysis:
This starts with requirement elicitation or requirement gathering which establishes what
the users require of the system that the project is to implement. Some work along these lines
will almost certainly have been carried out when the project was evaluated, but now the
original information obtained needs to be updated and supplemented.
12
SOFTWARE ENGINEERING AND PROJECT MANGEMENT(21CS61)
1.5.3.2 Specification:
Detailed documentation of what the proposed system is to do.
1.5.3.3 Design:
A design has to be drawn up which meets the specification. This design will be in two
stages. One will be the external or user design concerned with the external appearance of the
application. The other produces the physical design which tackles the way that the data and
software procedures are to be structured internally.
➢ Architecture Design: This maps the requirements to the components of the system that is
to be built. At the system level, decisions will need to be made about which processes in
the new system will be carried out by the user and which can be computerized. This design
of the system architecture thus forms an input to the development of the software
requirements. A second architecture design process then takes place which maps the
software requirements to software components.
➢ Detailed Design: Each software component is made up of a number of software units that
can be separately coded and tested. The detailed design of these units is carried out
separately.
1.5.3.4 Coding:
This may refer to writing code in a procedural language or an object-oriented language or
could refer to the use of an application-builder. Even where software is not being built from
scratch, some modification to the base package could be required to meet the needs of the new
application.
Integration: The individual components are collected together and tested to see if they meet
the overall requirements. Integration could be at the level of software where different software
components are combined, or at the level of the system as a whole where the software and
other components of the system such as the hardware platforms and networks and the user
procedures are brought together.
Qualification Testing: The system, including the software components, has to be tested
carefully to ensure that all the requirements have been fulfilled.
13
SOFTWARE ENGINEERING AND PROJECT MANGEMENT(21CS61)
A plan for an activity must be based on some idea of a method of work. To take a simple
example, if you were asked to test some software, even though you do not know anything about
the software to be tested, you could assume that you would need to:
• Analyze the requirements for the software
• Devise and write test cases that will check that each requirement has been satisfied
• Create test scripts and expected results for each test case
• Compare the actual results and the expected results and identify discrepancies
While a method relates to a type of activity in general, a plan takes that method (and perhaps
others) and converts it to real activities, identifying for each activity:
• Its start and end dates
• Who will carry it out?
• What tools and materials will be used?
‘Materials’ in this context could include information, for example a requirements document. With
complex procedures, several methods may be deployed, in sequence or in parallel. The output from
one method might be the input to another. Groups of methods or techniques are often referred to
as methodologies.
14
SOFTWARE ENGINEERING AND PROJECT MANGEMENT(21CS61)
15
SOFTWARE ENGINEERING AND PROJECT MANGEMENT(21CS61)
In workplaces there are systems that staff have to use if they want to do something, such
as recording a sale. However, use of a system is increasingly voluntary, as in the case of
computer games. Here it is difficult to elicit precise requirements from potential users as we
could with a business system. What the game will do will thus depend much on the informed
ingenuity of the developers, along with techniques such as market surveys, focus groups and
prototype evaluation.
A traditional distinction has been between information systems which enable staff to carry
out office processes and embedded systems which control machines. A stock control system
would be an information system. An embedded, or process control, system might control the air
conditioning equipment in a building. Some systems may have elements of both where, for
example, the stock control system also controls an automated warehouse.
16
SOFTWARE ENGINEERING AND PROJECT MANGEMENT(21CS61)
1.8 STAKEHOLDERS
These are people who have a stake or interest in the project. It is important that they be
identified as early as possible, because you need to set up adequate communication channels with
them right from the start. The project leader also has to be aware that not everybody who is
involved with a project has the same motivation and objectives. The end-users might, for instance,
be concerned about the ease of use of the system while their managers might be interested in the
staff savings the new system will allow.
Boehm and Ross proposed a ‘Theory W’ of software project management where the
manager concentrates on creating the role and format situations where all parties benefit from a
project and therefore have an of communication interest in its success. (The 'W' stands for 'win-
win'.)
Stakeholders might be internal to the project team, external to the project team but in the
same organization, or totally external to the organization.
• Internal to the project team: This means that they will be under the direct managerial
control of the project leader.
• External to the project team but within the same organization: For example, the project
17
SOFTWARE ENGINEERING AND PROJECT MANGEMENT(21CS61)
leader might need the assistance of the information management group in order to add
some additional data types to a database or the assistance of the users to carry out systems
testing. Here the commitment of the people involved has to be negotiated.
• External to both the project team and the organization: External stakeholders may be
customers (or users) who will benefit from the system that the project implements or
contractors who will carry out work for the project. One feature of the relationship with
these people is that it is likely to be based on a legally binding contract.
Different types of Stakeholders may have different objectives and one of the jobs of the
successful project leader is to recognize these different interests and to be able to reconcile them.
It should therefore come as no surprise that the project leader needs to be a good communicator
and negotiator.
18
SOFTWARE ENGINEERING AND PROJECT MANGEMENT(21CS61)
developers it would be unreasonable as, though they can control development costs, any reduction
in operational staff costs depends not just on them but on the operational management after the
application has ‘gone live’. What would be appropriate would be to set a goal or sub-objective
for the software developers to keep development costs within a certain budget.
Thus, objectives will need be broken down into goals or sub-objectives. Here we say that
in order to achieve the objective we must achieve certain goals first. These goals are steps on the
way to achieving an objective, just as goals scored in a football match are steps towards the
objective of winning the match.
The mnemonic SMART is sometimes used to describe well defined objectives:
• Specific: Effective objectives are concrete and well defined. Vague aspirations such as
‘to improve customer relations’ are unsatisfactory. Objectives should be defined in such
a way that it is obvious to all whether the project has been successful or not.
• Measurable: Ideally there should be measures of effectiveness which tell us how
successful the project has been. For example, ‘to reduce customer complaints’ would be
more satisfactory as an objective than ‘to improve customer relations’. The measure can,
in some cases, be an answer to simple yes/no questions, e.g. ‘Can we install the new
software by 1 November 2011?’
• Achievable: It must be within the power of the individual or group to achieve the
objective.
• Relevant: The objective must be relevant to the true purpose of the project.
• Time constrained: There should be a defined point in time by which the objective
should have been achieved.
• Most projects need to have a justification or business case: the effort and expense of
pushing the project through must be seen to be worthwhile in terms of the benefits that
will eventually be felt.
• The quantification of benefits will often require the formulation of a business model which
explains how the new application can generate the claimed benefits.
19
SOFTWARE ENGINEERING AND PROJECT MANGEMENT(21CS61)
Any project plan must ensure that the business case is kept intact. For example:
• The development costs are not allowed to rise to a level which threatens to exceed the
value of benefits.
• The features of the system are not reduced to a level where the expected benefits cannot
be realized.
• The delivery date is not delayed so that there is an unacceptable loss benefit.
• Different stakeholders have different interests, some stakeholders in a project might see
it as a success while others do not.
• The project objectives are the targets that the project team is expected to achieve—They
are summarized as delivering:
➢ The agreed functionality
➢ To the required level of quality
➢ In time
➢ Within budget
• A project could meet these targets but the application, once delivered could fail to meet
the business case. A computer game could be delivered on time and within budget, but
might then not sell.
• In business terms, the project is a success if the value of benefits exceeds the costs.
• A project can be a success on delivery but then be a business failure, On the other hand,
a project could be late and over budget, but its deliverables could still, over time, generate
benefits that outweigh the initial expenditure.
• The possible gap between project and business concerns can be reduced by having a
broader view of projects that includes business issues.
• Technical learning will increase costs on the earlier projects, but later projects benefit
as the learnt technologies can be deployed more quickly cheaply and accurately.
• Customer relationships can also be built up over a number of projects. If a client has
trust in a supplier who has done satisfactory work in the past, they are more likely to use
that company again.
20
SOFTWARE ENGINEERING AND PROJECT MANGEMENT(21CS61)
1.12.1 MANAGEMENT:
Management involves following activities:
• Planning - deciding what is to be done;
• Organizing - making arrangements;
• Staffing - selecting the right people for the job etc.;
• Directing - giving instructions;
• Monitoring - checking on progress;
• Controlling - taking action to remedy hold-ups;
• Innovating - coming up with new solutions;
• Representing - liaising with clients, users, developer, suppliers and other
stakeholders.
Much of the project manager’s time is spent only in three activities , i.e. Project Planning ,
Monitoring and control. This time period during which these activities are carried out is indicated
in Fig 1.5.
It shows that project management is carried out over three well-defined stages or processes
irrespective of the methodology used.
In the Project initiation stage, an initial plan is made. As a project starts, the project is
monitored and controlled to process as planned. Initial plan is revised periodically to
accommodate additional details and constraints about the project as they become available.
Finally, the project is closed.
Initial project is undertaken immediately after the feasibility study phase and before starting the
requirement analysis and specification process.
Initial project planning involves estimating several characteristics of a project. Based on these
21
SOFTWARE ENGINEERING AND PROJECT MANGEMENT(21CS61)
22
SOFTWARE ENGINEERING AND PROJECT MANGEMENT(21CS61)
• In the above Fig, local mangers involve in data collection. Bare details such as “location X has
processed 2000 documents” may not be useful to higher management.
• Data processing is required to transform this raw data into useful information. This might be
in such forms as “Percentage of records Processed”, average documents per day per person”,
and estimated completion date”.
• In this example , the project management might examine the “estimated completion date” for
completing data transfer for each branch. They are comparing actual performance with overall
project objectives.
• They might find that one or two branches will fail to complete the transfer of details in time.
• It can be seen that a project plan is dynamic and will need constant adjustment during the
execution of the project. A good plan provides a foundation for a good project, but is nothing
without intelligent execution.
1.13 PROJECT MANAGEMENT LIFE CYCLE
Software development life cycle denotes (SDLC) the stages through which a software is
developed. In contrast to SDLC, the project management life cycle typically starts well before the
software development activities start and continues for the entire duration of SDLC. (Fig 1.7)
In Project Management process, the project manager carries out project initiation, planning,
execution, monitoring, controlling and closing.
The different phases of the project management life cycle are shown in Fig: 1.8.
1. Project Initiation: The project initiation phase starts with project concept development.
During concept development the different characteristics of the software to be developed
23
SOFTWARE ENGINEERING AND PROJECT MANGEMENT(21CS61)
are thoroughly understood, which includes, the scope of the project, the project constraints,
the cost that would be incurred and the benefits that would accrue. Based on this
understanding, a feasibility study is undertaken to determine the project would be
financially and technically feasible.
Based on feasibility study, the business case is developed. Once the top management
agrees to the business case, the project manager is appointed, the project charter is
written and finally project team is formed. This sets the ground for the manager to start
the project planning phase.
W5HH Principle: Barry Boehm, summarized the questions that need to be asked and answered in
order to have an understanding of these project characteristics.
➢ Why is the software being built?
➢ What will be done?
➢ When will it be done?
➢ Who is responsible for a function?
➢ Where are they organizationally located?
➢ How will the job be done technically and managerially?
➢ How much of these each resource is needed.
2. Project Bidding: Once the top management is convinced by the business case, the project
charter is developed. For some categories of projects, it may be necessary to have formal
bidding process to select suitable vendor based on some cost-performance criteria. The
different types of bidding techniques are:
24
SOFTWARE ENGINEERING AND PROJECT MANGEMENT(21CS61)
3. Project Planning: An importance of the project initiation phase is the project charter.
During the project planning the project manger carries out several processes and creates
the following documents:
• Project plan: This document identifies the project the project tasks and a schedule
for the project tasks that assigns project resources and time frames to the tasks.
• Resource Plan: It lists the resources , manpower and equipment that would be
required to execute the project.
• Functional Plan: It documents the plan for manpower, equipment and other costs.
• Quality Plan: Plan of quality targets and control plans are included in this
document.
• Risk Plan: This document lists the identification of the potential risks, their
prioritization and a plan for the actions that would be taken to contain the different
risks.
4. Project Execution: In this phase the tasks are executed as per the project plan developed
during the planning phase. Quality of the deliverables is ensured through execution of
proper processes. Once all the deliverables are produced and accepted by the customer, the
project execution phase completes and the project closure phase starts.
5. Project Closure: Project closure involves completing the release of all the required
deliverables to the customer along with the necessary documentation. All the Project
resources are released and supply agreements with the vendors are terminated and all the
pending payments are completed. Finally, a postimplementation review is undertaken to
analyze the project performance and to list the lessons for use in future projects.
execution proceeded as per plan, Now, the projects are required to be completed over a
much shorter duration, and rapid application development and deployment are considered
key strategies.
Instead of making a long-term project completion plan, the project manger now plans all
incremental deliveries with evolving functionalities. This type of project management is
often called extreme project management. Extreme project management is highly
flexible approach that concentrates on human side of project management(e.g. managing
project stakeholders).
• Change Management: Earlier, when the requirements were signed off by the customer,
any changes to the requirements were rarely entertained. Customer suggestions are now
actively solicited and incorporated throughout the development process. To facilitate
customer feedback, incremental delivery models are popularly being used. Product
development is being carried out through a series of product versions implementing
increasingly greater functionalities. The Project manager plays a key role in product base
lining and version control. This has made change management a crucial responsibility of
the project manager. Change Management is also known as configuration management.
situation that may arise as the project progresses and may threaten the success of the
project. Risk Management involves identification of risks, assessment of the impacts ofvarious
risks, prioritization of the risks and preparation of risk-containment plans.
Case Study: Paul Duggan is the manager of a software development section. On Tuesday at 10.00
am he and his fellow section heads have a meeting with their group manager about the staffing
requirements for the coming year. Paul has already drafted document ‘bidding’ for staff’. This is
based on the work planned for his section for the next year. The document is discussed at the
meeting. At 2.00 pm Paul has a meeting with his senior staff about an important project his section
is undertaking. One of the software development staff has just had a road accident and will be in
hospital for some time. It is decided that the project can be kept on schedule by transferring
another team member from less urgent work to this project. A temporary replacement is to be
brought in to do the less urgent work, but this might take a week or so to arrange. Paul has to
phone both the personnel manager about getting a replacement and the user for whom the less
urgent work is being done explaining why it is likely to be delayed. Identify which of the eight
management responsibilities listed above Paul was responding to at different points during his
day.
Project Planning: In the project initiation stage, an initial plan is made. As the project start, the
project is monitored and controlled to proceed as per the plan. But, the initial plan is refined from
time to time to factor in additional details and constraints about the project become available.
Based on the details of Paul Duggan's day, we can map his activities to the eight management
responsibilities. The typical management responsibilities include:
1. Planning: Setting objectives and deciding on the actions needed to achieve them.
2. Organizing: Arranging tasks, people, and other resources to accomplish the work.
3. Staffing: Recruiting, selecting, training, and developing employees.
4. Directing: Leading, motivating, and communicating with employees.
5. Controlling: Monitoring and evaluating performance.
6. Coordinating: Ensuring all parts of the organization are working together towards
common goals.
7. Reporting: Keeping all stakeholders informed.
8. Budgeting: Planning and controlling financial resources.
27
SOFTWARE ENGINEERING AND PROJECT MANGEMENT(21CS61)
In summary:
28