Software Project Management

Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 26

Chapter 4

Software Project Management


A project is well-defined task, which is a collection of
several operations done in order to achieve a goal
The Aim of Project Management
To complete a project:
• On time, on budget, with required functionality
• To the satisfaction of the client
• Without exhausting the team
Responsibilities of a project manager
Managing People
 Act as project leader
 Managing human resources
 Create and maintain schedule
 Keep senior management informed etc.
 
Managing Project
 Defining and setting up project scope
 Managing project management activities
 Risk analysis at every phase
 Take necessary step to avoid or come out of problems
Project Management Activities
 Planning—formulating a scheme for doing a project.
 Organizing—Structuring the organizational entities
involved in a project and assigning them authority and
responsibilities.
 Staffing—Filling the positions in an organizational
structure and keeping them filled.
 Tracking—observing the progress of work and adjusting
work and plans accordingly.
 Leading—Directing and supporting people doing project work.
Project Planning
Software project planning is task, which is performed
before the production of software actually starts.
:- it is a set of multiple processes, which facilitates
software production.
 Estimation is calculation of the approximate cost, effort,
time or resources required to achieve some end.
 A schedule specifies the start and duration of work tasks.
 Tasks are allocated resources based on the schedule and
estimates.
 Risk analysis is an orderly process of identifying,
understanding, and assessing risks (any occurrence with
negative consequences).
 Policies, procedures, tools, and techniques are specified
to govern work.
Project Scheduling
Project Scheduling in a project refers to roadmap of all
activities to be done with specified order and within time
slot allotted to each activity.
NB: Some activities require fixed schedules. However,
some activities might take place earlier if overtime is used
or may be done later if a key person is sick or face any
other personal problem.
Cost Estimation
• Predicting the resources required for a software
development process
• Highly subjective and depends on experience
• Some of the questions that would be addressed in cost
estimation are:
• How much effort is required to complete an activity?
• How much calendar time is needed to complete an
activity?
• What is the total cost of an activity?
• Software Cost components are
• Hardware and software costs.
• Travel and training costs.
• Effort costs (the dominant factor in most projects)
• Others like building, heating, lighting...
Cost estimation Approaches
• There are two approaches for cost estimation
• Top-down : -
• Start at the system level and assess the overall system
functionality and how this is delivered through sub-
systems.
• Cost estimates are made on the basis of the logical
function rather than the components implementing
that function.
• Bottom-up :-
• Start at the component level and estimate the effort
required for each component.
• Usable when the architecture of the system is known
and components identified
• Accurate method if the system has been designed in
detail
• Bottom-up estimation is more expensive
Estimation Techniques
• Cost can be estimated using the following techniques:
• Expert judgement
• Estimation by analogy
• Parkinson's Law
• Pricing to win
• Algorithmic cost modelling
• Each method has strengths and weaknesses
• Estimation should be based on several methods
• If these do not return approximately the same result,
there is insufficient information available.
–Some action should be taken to find out more in order
to make more accurate estimates

• Expert judgement
• One or more experts in both software development
and the application domain use their experience to
predict software costs.
• Process iterates until some consensus is reached.
• Advantages:
• Relatively cheap estimation method.
• Can be accurate if experts have direct experience
of similar systems
• Disadvantages:
• Very inaccurate if there are no experts!
• New methods and technologies may make
estimating based on experience inaccurate
• Estimation by analogy
• The cost of a project is computed by comparing the
project to a similar project in the same application
domain
• Advantages: Accurate if project data available
• Disadvantages:
• Impossible if no comparable project has been
tackled.
• Needs systematically maintained cost database
• Parkinson's Law
• The project costs whatever resources are available:
work expands to fill the time available.
• If the software has to be delivered in 12 months
and 5 people are available, the effort required is
estimated to be 60 person-months.
• Advantages: No overspend
• Disadvantages: System is usually unfinished
•Pricing to win
–The project costs whatever the customer has to spend on
it i.e. the estimated effort depends on the customer’s
budget and not on the software functionality.
–Advantages: You get the contract
–Disadvantages: The probability that the customer gets
the system he or she wants is small. Costs do not
accurately reflect the work required
•Algorithmic cost modelling
–Some formula based on empirical studies are derived and
adjusted according to the type of project (Organic,
semidetached, embedded ).
–This estimation is generally based on the size of the software
– Size of software is measured by Line of code(LOC),
Function Point(FP), Object point effort estimation, Use case ,
etc
Project Organization and Staffing
 Organizational structures
• Project organization
• Functional organization
 Team structures
• Hierarchical teams
• Democratic teams
 Staffing
• Often the single most important factor in success is having good
people to do the work.
Project Tracking
 Projects may not go as planned for many reasons.
• Resource consumption is not as expected.
• Tasks do not take as long as expected.
• Policies, procedures, tools, or techniques cause problems.
• Something bad occurs (illness, budget cuts, equipment
failures, etc.
When plans fail they must be adjusted.
Leading a Project
 Direction is needed to follow plans, use resources efficiently,
etc.
 Directing people is not enough—people need inspiration, help,
a congenial work environment, emotional support, etc.
Failures and Risks
Software development projects can fail in many ways:
Bad software engineering
• Late, over budget
• Lack of function, full of bugs, bad performance
Changing circumstances
 Changing markets
 Better alternatives
 Changes of management
 Under-estimation of required time and resources.
 
NB: The biggest single source of problems is poor
understanding of requirements.
Managing Risk
Manage projects to avoid risk:
• Open and visible software process
• Continual review of requirements
• Willingness to modify or cancel projects
Software Quality Assurance Plan
• Software Quality is conformance to
• Explicitly stated functional and performance
requirements
• Explicitly stated development standards
• Implicit characteristics of all professional developed
software
• Quality can be defined in many ways
• Current industry standard - delivered defect density
(e.g. #defects/KLOC)
• Defect - something that causes software to behave
in an inconsistent manner
• Software development is labor intensive ; hence defects
may be injected at any stage
Quality Plan
• As quality goal is low delivered defect density,
these defects have to be removed
• This is done primarily by quality control (QC)
activities of reviews and testing
• The quality plan drives the quality activities in the
project
• Level of plan depends on models available
• Must define QC tasks that have to be performed in
the project
• Can specify defect levels for each QC tasks (if
models and data available)
Project Monitoring Plans
• A plan is a mere document that can guide - It must be
executed
• To ensure execution goes as per plan, it must be
monitored and controlled
• Project monitoring includes monitoring Progress/status,
Cost/effort, Personnel, resources
• Monitoring requires measurements (effort, size,
schedule, and defects) and methods for interpreting
them
• Monitoring plan has to plan for all the tasks related to
monitoring
.
end

You might also like