Chapter 1

Download as pdf or txt
Download as pdf or txt
You are on page 1of 37

Software Project Management

Chapter One
Introduction to Software Project Management
Sem. I – 2023

SITE-AAiT

1
Failures………
Reasons for Failure……
Software Project Management Fundamentals

Project
• Project is

• A specific plan of design


• A planned undertaking

• Large undertaking
• Generally, software project is defined as a unique endeavor undertaken with a purpose.

• A project has the following attributes:

• A project has a unique purpose

• A project is temporary

• A project is developed in increments

• A project requires resources


4
Software Project Management Fundamentals

Software Project vs. other types of projects


• Many of the techniques of general project management are applicable to software
project management (SPM).
• Software project management could be perceived as the process of making visible that
which is invisible.
• Invisibility- Progress is not immediately visible.
• Complexity- software products has more complexity than other engineered
artifacts.
• Flexibility-
Project the ease of which software can be changed.
Constraints
• A project has triple constraints:

• Scope – what work will be done?

• Time- how long will it take to complete?

• Cost - how much will it cost to complete? 5


Software Project Management Fundamentals

Project Management
• Project management is the application of knowledge, skills, tools and techniques to
project activities to meet requirements.
• A project management framework includes:

• Stakeholders- people involved


• Project management knowledge areas,

• Project management tools and techniques- assist in carrying out the work
• The knowledge area has 3 parts with 9 knowledge areas:

• Core Functions
• Scope, Time, Cost and Quality

• Supporting Functions

• Human resource, communication, risk and procurement management


6
Software Project Management Fundamentals

Core functions …
• Scope Management involves defining and managing all the work required to complete
the project successfully
• Time Management involves estimating how long it will take to complete the work,
developing an acceptable project schedule, and estimating timely completion of the
project
• Cost Management consists of estimating and managing the budget for the project
• Quality Management ensures that the project will satisfy the stated needs for which it
Supporting functions …
was undertaken

• Human resource management is concerned with making effective use of the people
involved with the project
• Communication Management involves generating, collecting disseminating, and
storing information
• Risk Management includes identifying, analyzing, and responding to risks.
7
Software Project Management Fundamentals

Integration management
• Project Integration Management involves coordinating all of the other project
management knowledge areas through out a project’s life cycle.
• Integration management involves seven processes.

• The first of these processes is the development of the project charter. The
project charter initiates the project. This document authorizes the project to get
underway. Project charters state the project objectives and name the project
manager. It is usually no more than one page long.
• The second process is the development of the preliminary scope statement.

• The third process in integration management is the development of the project


plan. The project plan includes the project charter, the definition of the project,
project objectives, the project budget, the project schedule, the resources required
for the project, the approach, management plans, and the initial risk assessment.
• The next process involved is the directing and monitoring of project execution.

• Change Management 8
Software Project Management Fundamentals

Project Portfolio
• Project portfolio involves organizing and managing projects and programs as a
portfolio of investments that contribute to the entire enterprise’s success.
• A program is a group of related projects managed in a coordinated way to obtain
benefits and control not available from managing them individually.
• The major difference between project management and portfolio are

• Project Management answers tactical goals such as:


• Are carrying out project well?
• Are projects on Time and Budget
• Portfolio Management answers strategic goals such as:

• Are working on the right projects?


• Do we have the right resources?
9
Software Project Management Fundamentals

Software Project Management


• SPM ensures the delivery of quality system on time within budget.

• SPM fundamentals consist of:


• Determining the size of the product
• Allocating resources appropriate for a product of that size
• Creating a plan for applying the resources, and
Project Management Processes
• Monitoring and Directing the resources.
• SPM has 5 processes/phases:
• Initiating: defining and authorizing a project
• Planning: devising workable plans such as SPMP, RMP, QAP
• Executing: coordinating people and other resources to carry out the various plans
• Controlling: regularly measuring and monitoring progress to ensure the project is10
Software Project Management Fundamentals

Project Management Processes …


• The processes are not isolated events
• The level of activity and length of each process varies for every project.
• Normally, execution takes more resources and time followed by planning.
• Controlling is done throughout the project and take less resource and time.
• Initiating andofclosing
Focuses Software Project
take the least amount of Management
resources and time

• SPM’s basic focuses – 4 Ps

1. People: It is not only critically important to select good team members, but also
manage the team effectively.
2. Product: Software product is defined and described in terms of context,
objective, functions and performance. The product requirements must be
communicated from customer to developer, partitioned (decomposed) into their
constituent parts, and positioned for work by the software team. 11
Software Project Management Fundamentals

Focuses of Software Project Management …


3. Process

• Software process is a framework for the tasks that are required to build
high-quality software.
• The framework includes:

• Framework activities with


• Task sets which in turn includes Tasks, Milestones, and Work
products.
• Umbrella activities include:
• SCM, RM, SQA

• The umbrella activities are independent of the framework activities and


occur throughout the process.
• The software process is applicable to all software projects regardless 12
of
size and complexity.
Software Project Management Fundamentals

Focuses of SPM-Process- Process Maturity


• In recent years, there has been a significant emphasis on “process maturity.”

• To determine an organization’s current state of process maturity, the Software


Engineering Institute (SEI) uses an assessment that results in a five point grading
scheme.
• The grading scheme determines compliance with a capability maturity model (CMM)
that defines key activities required at different levels of process maturity.
• The process maturity levels are defined in the following manner:

• Level 1: Initial
• The software process is characterized as ad hoc and occasionally even
chaotic.
• Few processes are defined, and success depends on individual effort.
• Level 2: Repeatable

• 13
The necessary process discipline is in place to repeat earlier successes on
Software Project Management Fundamentals

Focuses of SPM-Process- Process Maturity …


• Level 3: Defined

• The software process for both management and engineering activities is


documented, standardized, and integrated into an organization wide software
process.
• All projects use a documented and approved version of the organization's process
for developing and supporting software.
• This level includes all characteristics defined for level 2.

• Level 4: Managed
• Detailed measures of the software process and product quality are collected.
• Both the software process and products are quantitatively understood and
controlled using detailed measures.
• This level includes all characteristics defined for level 3.
• Level 5: Optimizing. 14
Software Project Management Fundamentals

Focuses of SPM-Process- Process Model


• The generic phases are common to all products. The issue is how these phases will be
executed. The execution is through a process. Thus, it is appropriate to choose the
process that fits your project. The process models include:
• Linear
• Phases: a number of dependent phases executed sequentially with no feedback
loops.
• Example: Standard Waterfall Model
• Characteristics:

• Requirements are clear and stable


• Goal and solution
Disadvantages of Linear
areModel
clear Advantage of Linear Model

• Complete solution is not released Complete


Change intolerant
until the final phase.
scheduling is possible
Requires detailed plan Resource requirements are known
15
Software Project Management Fundamentals

Focuses of SPM-Process- Process Model


• Incremental

• A number of dependent phases that are repeated sequentially with no feedback


loops.
• Example: Staged Delivery Waterfall Model; Feature-Driven Development
model (FDD)
• Characteristics:
• Clear goal, and Solution

• Requirement splits for development purposes and delivered in increments.

• Complete product evolves over time; each increment releases a partial of


known solution so that the customer can begin to realize business value
without having to wait for the complete solution. The first increment is often
a core product. That is, basic requirements are addressed, but many
supplementary features (some known, others unknown) remain
undelivered. 16
Software Project Management Fundamentals

Focuses of SPM-Process- Process Model


• Incremental …

• Advantages
• Accommodates some changes unlike linear
• The core product is used by the customer (or undergoes detailed review).

• As a result of use and/or evaluation, a plan is developed for the next


increment.
• The plan addresses the modification of the core product to better meet
the needs of the customer and the delivery of additional features and
functionality.
• This process is repeated following the delivery of each increment, until
the complete product is produced.
• Better use scarce resource – scarce resource can be scheduled to from
increment to increment 17
Software Project Management Fundamentals

Focuses of SPM-Process- Process Model


• Incremental …

• Disadvantages
• Requires detailed plan
• Defining each increment might be problematic: Each increment must be
sound from a technical as well as a business perspective.
• Application:
• Any concern that requirements may not be clear and complete

• Analysis Design Code Test Delivery of 1st increment


… … … … …
• Analysis Design Code Test Delivery of nth increment

18
Software Project Management Fundamentals

Focuses of SPM-Process- Process Model


• Iterative

• Phase: a number of phases that are repeated in groups with a feedback loops after
each group is completed. Iteration can be on requirements, design,
implementation, and others.
• Example:

• Evolutionary Development Waterfall Model


• SCRUM
• Rational Unified Process (RUP)
• Dynamic Systems Development Method (DSDM)

• Characteristics:
• Clear goal; not all of the solution is clearly defined

• Learn by doing or learn and discover.


19
Software Project Management Fundamentals

Focuses of SPM-Process- Process Model


• Iterative …

• Advantage
• Customer can review intermediate prototype.
• Accommodates changes between iterations.

• Adapts to changing business conditions.

• Due to business conditions, what the customer needs in the solution might
change and these changes can be built into the solution at succeeding
iterations.
• Disadvantage

• Requires more active customer involvement which is not easily obtained


• Complete solution cannot be specified from the outset which might be
difficult to convince the customer
20
Software Project Management Fundamentals

Focuses of SPM-Process- Process Model


• Evolutionary Development Waterfall Model (EDWM)

• EDWM handles those cases where the solution is known to a certain level of
detail.
• The final features that completely defines the solution are what are missing.
• Through a sequence of partial solutions the complete solution is discovered.

• The process involves a meaningful involvement of the customer.


• SCRUM

• A SCRUM involves the team as a unit moving the ball down field in what
would appear to be an ad hoc manner.
• Focus on delivering fully- tested, independent, valuable, small features.
• The SCRUM team - is self-directed, operates in successive one-month
iterations, holds team meetings, continuously demos the client, and adapts its21
Software Project Management Fundamentals

Focuses of SPM-Process- Process Model


• Iterative …

• Rational Unified Process (RUP)


• RUP adapts quite well to a process approach that is documentation-heavy or
documentation-light. No Single process is suitable for all Software Dev.
• The foundation of RUP lies in the library of reusable code, requirements,
designs, and so on.
• The essential phases of RUP are:

• Inception - Scope the system adequately, validate initial costing and


budgets and initial risk analysis.
• Elaboration – mitigate the key risk items identified by the analysis up
to the end of the phase.
• Construction- build the software system.
• Transition – Transit the system from development to production. 22
Software Project Management Fundamentals

Focuses of SPM-Process- Process Model


• The Spiral Model (More on Risk Analysis)

• Is evolutionary that couples the iterative nature of prototyping with the


controlled and systematic aspects of the linear sequential model.
• It provides the potential for rapid development of incremental versions of the
software.
• Using the spiral model, software is developed in a series of incremental releases.
• During early iterations, the incremental release might be a paper model or
prototype.
• During later iterations, increasingly more complete versions of the engineered
system are produced.
• The model has six task sets
• Customer Communication - tasks required to establish effective
communication between developer and customer.
23
Software Project Management Fundamentals

Focuses of SPM-Process- Process Model


• The Spiral Model .. Task sets …

• Engineering - tasks required to build one or more representations of the


application.
• Construction and Release - tasks required to construct, test, install, and provide
user support (e.g., documentation and training).
• Customer evaluation - tasks required to obtain customer feedback based on
evaluation of the software representations created during the engineering stage and
implemented during the installation stage.
• The spiral model has the following problems
• It may be difficult to convince customers (particularly in contract situations) that
the evolutionary approach is controllable.
• It demands considerable risk assessment expertise and relies on this expertise for
success. If a major risk is not uncovered and managed, problems will 24
undoubtedly occur.
Software Project Management Fundamentals

Focuses of SPM-Process- Process Model


• Prototyping

• Phases: Gather Reqts build test

• Requirement is unclear to all


• Disadvantage:

• The customer sees what appears to be a working version of the software,


unaware that in the rush to get it working no one has considered overall
software quality or long-term maintainability. When informed that the
product must be rebuilt so that high levels of quality can be maintained, the
customer demands that "a few fixes" be applied to make the prototype a
working product.
• The developer often makes implementation compromises in order to get a
prototype working quickly. An inappropriate operating system or
programming language may be used simply because it is available and
25
known; an inefficient algorithm may be implemented simply to demonstrate
Software Project Management Fundamentals
Focuses of SPM-Process- Process Model
• RAD(Rapid Application Development)

• Incremental software development process model that emphasizes an extremely


short development cycle.
• A “high-speed” adaptation of the linear sequential model in which rapid
development is achieved by using component-based construction.
• Requirement is clear and stable + Each major function can be addressed by a
separate RAD team
• Disadvantage:
• For large and also scalable projects, RAD requires sufficient number of
teams.
• RAD requires committed developers and customers to get a system
complete in a much abbreviated time frame. If commitment is lacking from
either constituency, RAD projects will fail.
• If a system cannot be properly modularized, the RAD approach may not
work. 26
Software Project Management Fundamentals

Focuses of SPM-Process- Process Model


• Component Based

• Emphasizes the design and construction of computer based systems using


reusable component. Requirement can be split mapped to existing
components.
• Concurrent Model
• The concurrent process model is often used as the paradigm for the development
of Client/server applications.
• A client/server system is composed of a set of functional components.
• When applied to client/server, the concurrent process model defines activities in
two dimensions: a system dimension and a component dimension.
• System level issues are addressed using three activities: Design, Assembly, and
Use.
27
Software Project Management Fundamentals

Focuses of SPM-Process- Process Model


• Concurrent Model

• Concurrency is achieved in two ways:


1. System and component activities occur simultaneously and can be modeled
using the state-oriented approach.
2. A typical client/server application is implemented with many components, each of
which can be designed and realized concurrently.
• In reality, the concurrent process model is applicable to all types of software
Focuses of SPM-Process- Process Technology
development and provides an accurate picture of the current state of a project.

• The process models discussed must be adapted for use by a software project team.

• To accomplish this, process technology tools have been developed to help software
organizations analyze their current process, organize work tasks, control and monitor
progress, and manage technical quality. 28
Software Project Management Fundamentals

Focuses of SPM- Project


4. Project …
• In order to manage a successful software project, we must understand what can go
wrong (so that problems can be avoided) and how to do it right.
• Ten signs that indicate that a project is in jeopardy:
1. Software people don’t understand their customer’s needs.
2. The product scope is poorly defined.
3. Changes are managed poorly.
4. The chosen technology changes.
5. Business needs change [or are ill-defined].
6. Deadlines are unrealistic.
7. Users are resistant.
8. Sponsorship is lost [or was never properly obtained].
9. The project team lacks people with appropriate skills.
10. Managers [and practitioners] avoid best practices and lessons learned.
29
Software Project Management Fundamentals

Focuses of SPM- Project - Software Project Team Organization


• Responsibilities: Customer

• Giving requirements and


requirement clarifications.
• Providing test data,
acceptance criteria, etc.
• Accepting deliverables
• Responsibilities-PM

• The PM plans and guides the


project by:
• Initiating the project
• Understanding the
project requirement
• Planning, estimation 30
Software Project Management Fundamentals

Focuses of SPM- Project - Software Project Team Organization

• Responsibilities-PM …

• Identifying the training needs, planning and executing them


• Moderating work products

• Reporting, monitoring, and reviewing status

• Resolving issues
• Maintaining action log

• Releasing deliverables

• Closing the project


• Responsibilities-Dev’pt Team

• Understanding system requirements

• Defining requirements 31
Software Project Management Fundamentals

Focuses of SPM- Project - Software Project Team Organization

• Responsibilities- Config. Mgt Team

• Controlling configuration library


• Enforcing change control

• Holding custody of change requests

• Making customer release


• Responsibilities-Risk Mgt Team

• Identifying potential risks

• Estimating the probability and impact of each risk


• Constructing a risk plan

• Responsibilities-SQA Team

• Upholding organizational policies 32


Software project management tasks

Project Management Tasks

• Project Initiation
• Project Planning
• Project Estimation
• Risk Management
• Configuration Management
Project Management Tasks -Initiation
• Project Monitoring and Control
• Purpose of project initiation
• To formally authorize a new project or allow continuation of an existing one
• To confirm that the assigned project is achievable with the specified framework
• Project Initiation- Activities
• Study customer’s request with care 33
Software project management tasks
Project Management Tasks -Initiation
• Activities …

• Find out constraints and opportunities


• Choose dev’pt strategy by considering alternatives

• Develop the initial project plan


• Build the team
• Organize the project kick-off

• Project Initiation- Kick-off


• Purpose of project kick-off:
• To create a team spirit right up front.

• To create an open environment where a fair exchange of technical issue is


encountered.
• To achieve a common understanding of project requirements 34
Software project management tasks

Project Management Tasks -Initiation


• Project Initiation- Kick-off

• Who should attend kick-off:

• Project manager
• Team members
• Senior management
• Customers
Project •Management
Suppliers Tasks -Planning
• Purpose• ofAny otherplanning:
project stakeholders

• To build appropriate software by making everyone in the project to understand and


agree on both why and how that software will be built before the work begins.
• Planning starts during project initiation stage
35
Software project management tasks
Project Management Tasks -Planning
• Planning specifies:

• What work will be done?


• How will it be done?

• How much will it cost?

• When will it be accomplished?


• What is the resource to do the work?

• What are the mechanisms of monitoring and controlling?

• How will the changes and risks be handled?


• Primary Planning steps include:

• Identifying project scope and objectives


• Identifying project organizational environment
36
• Analyzing project characteristics
Software project management tasks

Project Management Tasks -Planning

• Planning documents:

• Software Project Management Plan (SPMP)


• Risk Management Plan (RMP)

• Software Configuration Mgt Plan (SCMP)

• Software Quality Assurance Plan (SQAP)

37

You might also like