0% found this document useful (0 votes)
4 views61 pages

L4 - Software Project Management - 063014

Uploaded by

palihak783
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
4 views61 pages

L4 - Software Project Management - 063014

Uploaded by

palihak783
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 61

Chapter - 4

Software Project Management


Introduction

• Software project management is an activity crucial to the


success of software projects.
• Software products are more complex entities in which defects
are mostly discovered during development.
• Software changes are limited to changes in programs and the
volume of change depends on understanding requirements of
customers and developers.
• In the current scenario, people working on a project to develop
software are geographically distributed; hence, proper
coordination and communication management is required
among them.
Goal of SPM

• Development of quality software is the primary objective of


software project management.
• The goal of software project management is to enable a group
of people to work efficiently on a project, using a systematic
process, in order to produce a quality software product.
• Software project management uses a more established and
specialized approach as compared to general project
management.
Project Management Essentials

People Process

Software
project
management

Product Project

Figure 4.1: Software project management essentials


Project

• A project is a temporary endeavor with defined starting and


ending deadlines, roles and responsibilities, conditions,
budgets and plans, undertaken to accomplish aim and
objectives.
• Each project has a unique purpose even if there are multiple
projects in a single domain.
• Projects are basically temporary in nature due to their
flexibility to change.
• Uncertainties are involved in a software project.
• Requires resources (hardware, software, and human
resources), typically from different areas.
People

• People (or stakeholders) in a project are those who are either


involved in or are affected by the project.
• Each person in the project has certain roles and responsibilities
according to their skill sets.
• They should be motivated, trained, rewarded, deployed, and
retained as and when required to improve their capabilities.
• Poor management sometimes leads to project failures.
People Involved in Project

• Senior Managers
• Project Managers
• Programmers
• Support Staff
• Customers
• End Users
• Project Sponsors
• Competitors
• Suppliers
Process

• A software process describes the characteristics and


organization of activities in order to produce software.
• The general activities of software processes include
– Definition
– Development
– Implementation
• The selection of an appropriate software process model
according to the project is a challenge for the project manager.
• Process models ultimately affect the product quality.
Product

• A product is the final outcome of a project.


• It is produced with an effective project management process.
• The project manager must determine the requirements and the
expected outcomes at the beginning of the project.
• Project scope of the product must be clearly defined, which
helps us to produce a quality product.
• Project scope is refined into discrete functional units and the
development schedule is planned for each functional units.
• The quality of the product also depends on the process being
used for product development.
What is Project Management?

• Effective project management has a direct impact on the project


success and organizational growth.
• Good project management produces a quality product, provides
sufficient communication across the team, reduces risks, and
defines strategic objectives and goals. Project management is
necessary to find the pitfalls and create outlets to avoid the
unintended consequences of the project.
• Project management is the application of knowledge, skills,
tools, and techniques for performing project activities in order to
satisfy the expectations of the stakeholders from a project.
• Project management is necessary to find the pitfalls and create
outlets to avoid the unintended consequences of the project.
• Software project management is the key to successful delivery of
software projects as per customers’ expectations.
Project Management Knowledge Areas
• The knowledge areas are the competencies of the process,
practice, tools, and techniques that the project managers must
have for managing the projects.
• The main knowledge areas for project management are:
– Scope
– Time
– Cost
– Quality
– People
– Communications
– Risk,
– Procurement
– Project Integration Management
Project Management Knowledge Areas

• Each of these knowledge areas has some processes for its


execution in order to achieve an effective project management
program.
• Project management skills include:
– General Management
– Human Resource Management
– Procurement Management
– Communication Management
– Risk Management.
• Project management tools and techniques assist in carrying out
the activities of project managers.
Project Failures
• Inability to clearly understand customer needs
• Lack of user involvement
• Unrealistic expectations
• Lack of top management support
• Incomplete requirements and specifications
• Lack of resources (hardware, software, and people)
• Lack of good planning
• Technical incompetence
• Changing business needs and requirements
• Changes are managed poorly
• Lack of best practices
• The chosen technology changes
• Ill-defined responsibility of team members
• Lack of communication among team members
Project Success
• Strong support from the top management
• A sound methodology for the project
• Tactical and technical leadership by competent people
• User involvement in each activity
• Experienced project manager
• Clearly defined business goals
• Clearly defined project scope
• Feedback mechanism
• Sufficient resource allocation
• Adequate communication channels
• Troubleshooting capabilities
• Reliable estimates
• Clearly specified deadlines
• Parties sticking to the commitment
Project Management Team

• The people who work together on a project are referred to as a


team.
• A team is a cohesive group of one or more related roles and/or
subordinate teams that collaborate to perform a cohesive set of
tasks.
• Teamwork refers to a group of people working together in
order to achieve a common goal.
• Organizations must develop a culture of team building.
• A project management team typically consists of project
manager, configuration manager, metrics analyst, process
engineer, quality engineer, scheduler, technical leader and so
on.
• The team performs the overall (administrative) management
and risk management for a single project.
Team Structures

• A team structure could consist of a number of teams, each with


a team leader.
• Each team and its members have an identified expertise or
skill that is needed to complete the tasks.
• Usually, the team is headed by the project manager.
• There are three types of team structure:
– Chief Programmer Team Structure
– Hierarchical Team Structure
– Egoless Team Structure
Chief Programmer Team Structure

• Chief programmer team structure Consists of :


– A Chief Programmer,
– Programmers,
– Backup Programmers
– A Programming Librarian
• It is a centralized automatic structure in which all information
passes through the chief programmer.
• The chief programmer breaks down the task into small tasks
and assigns them to the programmers and team members.
• After the completion of each task, he verifies and integrates
the work products.
Chief Programmer Team Structure

Chief programmer

Librarian Back-up
programmer
Programmers
(a) Structure (b) Communication path

Figure 4.2: Chief programmer team structure


Hierarchical Team Structure
• Hierarchical Team Structure Consists of:
– Programmers
– Database Manager
– Network Administrators
– Testers and so on
• The project manager is responsible for handling the project
activities.
• There will be senior programmers or project leaders who
report to the project manager.
• The senior programmers or project leaders will then be
responsible to the project team members.
• The project manager will coordinate with the project leaders to
solve the problems relating to the project.
Hierarchical Team Structure

Project
manager

Senior
programmers

Junior programmers

(a) Structure (b) Communication path

Figure 4.3: Hierarchical team structure


Egoless Team Structure

• The egoless team structure is also known as the democratic


team structure.
• It does not enforce any formal team hierarchy
• The manager provides the administrative leadership.
• Leadership rotates among different team members at different
times, which becomes the responsibility of the individual with
the abilities that are currently needed.
• The democratic organization structure leads to higher morale
and job satisfaction.
• Consequently, it suffers from less manpower turnover.
• People are in different knowledge areas and have different
experience levels.
• Here, everybody can communicate with everybody.
Egoless Team Structure

(a) Structure (b) Communication path

Figure 4.4: Egoless team structure


Project Organization

• There are several methods for allocating tasks


to a team in an organization.
• Typical structures are
– Project Format,
– Functional Format
– Matrix Format
Project Format

• The project development staff members are divided based on


the project for which they work.
• Each project has its own team and all the necessary resources.
• The project team is assigned to start and finish the project.
• It will be responsible for planning, requirement analysis,
design, development, testing, deployment, and maintenance.
• The project manager has the decision-making authority. The
longevity of the team depends on the project duration.
Project Format

Top management

Project Project Project


team 1 team 2 ... team n

Figure 4.5: Project format


Functional Format

• Teams are made on the basis of functional competency to


which they belong.
• Different teams perform different tasks of the project and the
work products pass from team to team till the completion of
the project.
• For example, requirement analysis will be performed by the
requirement team, design by the design team, and so on.
Functional Format

Top management

Functional groups Project progress

Planning Project team 1

Analysis Project team 2

Design
.
Coding .
Testing .

Deployment

Maintenance Project team n

Figure 4.6: Functional format


Matrix Format

• It is a multidimensional structure which takes the best of the


project format and the functional format.
• The functional structure is designed for each project and it
then proceeds in the project format.
• Each development project is assigned to a project manager.
• The project manager participates in most of the activities of
product development.
• People with similar specialization are pooled for work
assignments.
• Each specialist may have to work under several managers to
perform his job.
Matrix Format
Top management

Analysis Design Coding Testing Maintenance

Product Sub Sub Sub Sub Sub


manager 1 projects projects projects projects projects

Product
manager 2

Product
manager n

Figure 4.7: Matrix format


Project Manager

• Is the person who has the overall responsibility for the


successful planning, execution, monitoring, control, and
closure of a project.
• The project manager is responsible for making decisions,
handling risks, and minimizing uncertainty in product
development.
• Project managers use project management software to
organize their tasks and workforce.
• Project manager is the one who tackles all the project-related
issues at both development and customer site.
• During project management, project manager coordinates and
communicates with upper-level managers and lower-level
engineers working on the project.
Project Manager’s Activities
• Defining project scope, goals, and deliverables that support the business goals
• Project planning and sequencing
• Planning resources and budget
• Identifying and resolving the issues and conflicts within the project team
• Developing schedules, project timelines, and milestones
• Time and cost estimation
• Developing and delivering proposals, documentation, and presentations
• Identifying and resolving risks
• Monitoring and reporting progress reports
• Team leadership to coach, mentor, motivate, and supervise the stakeholders
• Strategic planning and influencing
• Business relationships for project success
• Performing scalability, interoperability, and portability analysis
• Controlling quality and defining parameters to achieve a quality product
• Conducting project postmortems and preparing a recommendations report in order to identify the
successful and unsuccessful project elements
• Developing best practices and tools for project execution and management
• Managing the client relationship
Project Manager’s Roles and Skills

• Role • Skills
– Leader – Personal Skills
– Manager – Technical Skills
– Facilitator – Managerial Skills
– Mentor – Adoptive Skills
Project Life Cycle
• As software development life cycle is meant for product
development process, the project life cycle is designated for project
management process.
• The project management process concentrates on planning and
managing a series of activities that need to be accomplished within a
specific time and a budget.
• A project life cycle or project management process is a collection of
project phases which are necessary for accomplishing project
objectives or goals.
• The Project Management Book of Knowledge (PMBOK), there are
five phases in project life cycle; namely, initiating, planning,
executing, monitoring and controlling, and closing.
• These phases are called process groups.
• Each of the five project management process groups is characterized
by the completion of a certain task in the project.
Project Life Cycle

Project
Project success initiation Project
and review
definition

Project Project
closing planning

Verified plan Project life cycle


and Detailed
deliverables planning
Track and
review progress
Project
Project
monitoring
Work the plan execution
and control
Project Initiation
• Project is initiated by defining its purpose and scope, the justification for
initiating it, and the solution to be implemented.
• Once the project is confirmed, a project team is formally introduced that
will work on the client's project.
• A project plan is developed and presented in a document called project
charter that defines the critical aspects of the project.
• This project plan focuses on the identification of stakeholders,
assumptions, feasibility report, contingencies, and risks.
• Business objectives are set with minor and major milestones and success
criteria for the project.
• A project manager (PM) is assigned to monitor and supervise the project.
• A team leader (TL) is appointed under the PM, who is a fully dedicated to
the project development.
• The TL is responsible for the day to day activities and timeline keeping of
the project, for technical supervision, and for providing guidance to his
team members.
Project Planning
• The planning phase is considered the most important phase in the
project life cycle.
• A more detailed project plan with resource requirements, financial
issues, quality parameters, and acceptance criteria is defined.
• This phase minimizes the time, cost, confusion, and rework during
the execution of the project.
• It defines the project activities to be performed, the products that
will be produced, and how these activities will be carried out and
managed.
• This phase also defines the major tasks.
• During planning, the major activities are more accurate cost
and schedule estimates, identifying milestones, finalizing
project sponsor, project staffing, quality control plan, risk
management plan, and so on.
Project Execution

• In this phase, the deliverables are physically built and


presented to the customer for acceptance.
• Project management processes are undertaken to monitor and
control the construction of deliverables in the project.
• These processes include time, cost, quality, change, risks
issues, suppliers, customers, and communication management.
• Once all the deliverables have been produced and the
customer has accepted the final solution, the project is ready
for closure.
• The executing process coordinates people and other resources
to execute the project plan and produces the product, services,
or results of the project or any phase.
Monitoring and control

• It includes measuring and monitoring progress on a regular


basis to ensure that the project team and its activities are
moving in the right direction to achieve the project objectives.
• In general, earned value method is used to assess the progress,
which tells the project manager how far ahead or behind
schedule, and above or below cost, the project is relative to its
planned schedule and cost at that point in time.
• Corrective actions can be taken when project teams do not
perform and progress against the plan.
• This process monitors and controls the time, cost, quality,
change, risks issues, suppliers, customers, and communication
management.
• Once all the deliverables have been produced and the
customer has accepted the final solution, the project is ready
for closure.
Project Closure

• The closing process is performed after the development of a


product.
• The project closure phase puts emphasis on releasing the final
deliverables to the customer, handing over the project
documentation to the business, terminating supplier contracts,
releasing project resources, and communicating the closure of
the project for all stakeholders.
• The organization records the lessons learned in the project,
which will help the future project teams.
• This phase is also called postmortem analysis.
Project v/s Product Life Cycle
• Project life cycle and product life cycle both are separate
processes used in every organization.
• Project is executed to produce a product and product is the
outcome of a project.
• The product life cycle starts with a business plan with several
ideas or features to be incorporated in the software product.
• Software product is then developed and installed in customer
site for operation.
• During its operational life, it goes through maintenance
activities and finally it is reengineered on modern platform.
• The project life cycle goes through a series of phases to
develop the product.
• Project life cycle defines the tasks to be accomplished in each
phase and a team is responsible for each phase defined.
Project v/s Product Life Cycle

Product Operation and


Concep development maintenance Retiremen
t t Product life
cycle

Initiating Plannin Executing Closing


g Project life cycle

Task

Control Development
process
Progress and monitoring

Figure 4.9: Relationship between project life cycle and product life cycle
Software Configuration Management
• Software configuration management is concerned with
identification, tracking, and change of control of software
configuration.
• Software configuration management (SCM) or configuration
management (CM) is the discipline of identifying the configuration
of a system at any time for the purpose of systematically controlling
changes to the configuration throughout the system life cycle.
• The purpose of CM is to establish and maintain the integrity of a
software product throughout software the development life cycle.
• The CM process improves product visibility, product protection,
product control, customer confidence, and team communication.
• A systematic CM process reduces rework, confusions, and project
risks
Software Configuration Management
• The project management process provides a systematic CM
plan and monitors the status of the SCM process.
• The configuration management officer (CMO) implements and
maintains the CM process according to the CM plan.
• The CMO coordinates, supports, and performs the CM
activities and reports to the project manager.
• The Configuration Control Board (CCB) approves and
disapproves the changes to be performed in the product.
• The CCB consists of technical and administrative
representatives for configuration planning and execution.
• The approved changes are performed through the development
process.
Software Configuration Management

Configuration Planning data Project


management management
process process
CM plan
Status reports and audits
results
Work products, Approved change
change requests requests, controlled work
products
Product development process

Figure 4.10: Software configuration management process


Software Configuration Management
•The CM process consists of the following four
activities
– Configuration identification
– Configuration change control
– Configuration version control
– Configuration auditing

Configuration Configuration Configuration Configuration


identification change control version control audits

Figure 4.11: Configuration management activities


Configuration Identification

• A software configuration item (SCI) or configuration item (CI)


is a work product that is designated for configuration
management.
• The work products in SCI may include plans, process
descriptions, requirements, design data and models, product
specifications, source codes, compilers, product data files, etc.
• The status of the CIs at a given point in time is called baseline.
• Each new baseline is the sum total of an older baseline plus a
series of approved changes done on the CI.
• A baseline together with all approved changes to the baseline
represents the current configuration.
Configuration Change Control
• The activities of change control (CC) are to identify what changes to
make, the authority for approving changes, and support for the
implementation of those changes.
• A change request (CR) for changes to software configuration items
may be originated by anyone at any point in the software life cycle
and may include a suggested solution and requested priority.
• The CRs are usually recorded on the software change request (SCR)
form.
• Once an SCR is received, a technical evaluation is performed to
determine the extent of modifications that would be necessary
should the change request be accepted.
• An established authority, Configuration Control Board (CCB), will
evaluate the technical and managerial aspects of the change request
and accept, modify, reject, or defer the proposed change.
Configuration version control

• The configuration version control records and reports the


information needed for effective management of the software
configuration.
• Version control is the book-keeping process of each release for
CIs.
• There are various automated tools such as source code control
system (SCCS), revision control system (RCS), etc., which are
used for version management.
• Version management involves tracking what is there in each
version of software and the changes that lead to this version.
– It keeps a record of all the changes made to the previous baseline to
reach the new baseline, known as deltas. Each delta is a list of
changed lines.
• A software release is a version of a software that is delivered to
customer for use.
Configuration version control
Features Pre-release Release 1

1 V1.0 V1.1 V1.2 V1.3


V1.3

Version 1
Release 2

2 V2.1 V2.2 V2.3


V2.3

Version 2
Release 3

2 V2.2 V2.3
V2.3

Version 3

Delta

Figure 4.12 Example Configuration version control and release


Configuration Auditing
• Configuration auditing determines the extent to which an item
satisfies the required functionalities.
• Configuration audit is performed to evaluate the conformance
of software products and processes to applicable regulations,
standards, guidelines, plans, and procedures.
• Auditing is performed according to a well-defined process
consisting of various auditor roles and responsibilities.
• Expertise of people is required and some automated tools also
support the planning and conduct of an audit process.
Risk Management

• Risk is an unfavorable situation that may lead to an


undesirable outcome.
• Potential problems or losses are also called risks. Risk may
include product estimation, business issues, customer, process,
technology, development environment, and project planning.
• Risk management is a proactive approach for minimizing the
uncertainty and potential problems associated with a project
by providing insights to support informed decision making.
• It is an ongoing activity from the initiation to the retirement of
a software product.
Risk Management

• Software risk management is necessary for the


following reasons:
– To reduce the rework caused by missing, erroneous, or
ambiguous requirements, design, or code, which typically
consumes 40–50% of the total cost of software development
– To avoid software project disasters, including overrun of
budgets and schedules, defect-ridden software products, and
operational failures
– To stimulate a win-win software solution where the
customer receives the product they need and the vendor
makes the profits they expect.
– To keep provision for the detection and prevention
mechanisms of risks.
Risk Categories
• Risks basically threaten the project, product, and hence the
business.
• There are basically three categories of risk occurrence:
– Project Risks
– Products Risks
– Business Risks
Risk Management Activities

• Some risks have great effect and some risks


may be tolerated.
• Risks must be analyzed to find their potential
and remedial actions.
• The risk management process includes the
following activities:
– Risk Identification
– Risk Analysis and evaluation
– Risk Planning
– Risk Monitoring and Control
Risk Management Activities

Risk Risk analysis Risk Risk


identification and planning monitoring
evaluation and control

Potential risks Risk Risk Risk


influences resolution assessment
plan

Figure 4.11: Risk Management Process


Risk Identification

• Potential risks are identified with their consequences,


effects, sources, root causes, and categories.
• The output of this activity is a list of project-specific
risks that have the potential of compromising the
project's success.
• There are various types of risks that may arise.
– Requirements Risks
– Technology Risks
– Organizational Risks
– Tools Risks
– Human Resources Risks
– Estimation Risks and so on.
Risk Identification Techniques

• Brainstorming is a preferred technique because of its flexibility


and capability of generating a wide and diverse range of risks.
• Risk identification is performed on the basis of historical data,
theoretical analysis, empirical data and analysis, informed
opinions of the project team and other experts, and the
concerns of stakeholders.
• Other techniques are:
– Interviewing
– Reporting
– Decomposition
– Assumption analysis
– Critical Path Analysis
– Utilization of Risk Taxonomies
Risk Analysis and Evaluation

• Each risk is analyzed independently by examining the


identified risk and assessing its impact, probability, risk
exposure, and seriousness.
• The list of risks is then grouped and prioritized/ranked based
on the results of risk analysis.
• Risk prioritization helps in resource allocation and
management.
– RE = Probability (UO) x Loss (UO), where RE is risk
exposure and UO is unexpected outcome.
Examples of Risks and their analysis

Risk Effect Probability Impact


Project and
Unrealistic schedule and budget estimates High Serious
business
Project and
Shortage of budget due to organizational financial crisis Low Catastrophic
business
Non-conformance to meet requirements Business Low Catastrophic
Experienced and skilled staff turnover before project completion Project High Catastrophic
Lack of required training for staff Project Moderate Tolerable
Project and
Gold plating by staff Low Tolerable
product
Difficulty in recruiting experienced or required skilled staff Project High Serious
Project and
Organizational changes at management level Moderate Serious
business
Technology changed during development Business Moderate Serious
Inability to integrate or underperformance of software tools Product High Tolerable
Lack of sufficient reuse than anticipated Project High Serious
Product and
Repairing reusable components before reuse Low Serious
project
Product and
Customer requirements changed High Serious
project
Insufficient code generated by code generation tolls as anticipated Product Moderate Negligible
Size of software underestimated Project High Tolerable
Underperformance of database system Product Moderate Serious
Competitive product is launched before system is developed Business High Serious
Risk Planning

• Once the risks are identified and prioritized, an appropriate


risk management plan is developed for modifying the risks.
• General risk management strategies are
– Risk Avoidance
– Risk Minimization
– Risk Acceptance
– Risk Transfer
Risk Monitoring and Control

• Risk monitoring and control ensures new risks are detected


and managed.
• Risk action plans are implemented to reduce the impact of
risks.
• Policies and standards compliances are regularly carried out
and the standard performance is reviewed to identify the
opportunities for improvement.
• The monitoring process provides assurance that appropriate
controls have been taken for the organization’s activities and
that the procedures are in place.
• If needed, changes are made in the organizational environment
to cope with risks.

You might also like