Software Project Management
Software Project Management
Software Project Management
• 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