Managing Software Projects: Key Insights
Managing Software Projects: Key Insights
Process Project
The Management Spectrum
1. People
• This is virtually any type of stakeholder who is involved in the project. The most important
element of a successful project.
• People of a project include from manager to developer, from client to End user. however
principally people of a project highlight the developers.
• Senior managers
• Project (technical)
managers
• Practitioners
• Customers
• End users
The Management Spectrum
1. People Cont’d
Stakeholders
• Senior managers who define the business issues that often have a significant influence on
the project.
• Project (technical) managers who must plan, motivate, organize, and control the practitioners
who do software work.
• Practitioners who deliver the technical skills that are necessary to engineer a product or
application.
• Customers who specify the requirements for the software to be engineered and other
stakeholders who have a peripheral interest in the outcome.
• End-users who interact with the software once it is released for production use.
The Management Spectrum
1. People Cont’d
Team Leader
• A Software Engineering Team Leader is responsible for their team’s
execution, the quality they produce, the speed and cadence at which they
produce, but most importantly, they are responsible for the team’s culture,
environment, and overall growth of the people on it.
Motivation. The ability to encourage (by “push or pull”) technical people to produce to their best
ability.
Organization. The ability to mold existing processes (or invent new ones) that will enable the initial
concept to be translated into a final product.
Ideas or innovation. The ability to encourage people to create and feel creative even when they must
work within bounds established for a particular software product or application.
The Management Spectrum
1. People Cont’d
Project manager
• Software project managers are in charge of the planning, scheduling, budgeting, execution,
and delivery of software and web projects.
The characteristics that define an effective project manager emphasizes four key traits:
• Problem solving
• Managerial identity
• Achievement
• The time that the team will stay together (team lifetime)
Team is “self-organizing”
• An adaptive team structure
• Significant autonomy
The Management Spectrum
1. People Cont’d
Team Coordination & Communication
• Formal, impersonal approaches include software engineering documents and work
products (including source code), technical memos, project milestones, schedules,
and project control tools, change requests and related documentation, error
tracking reports, and repository data.
• Interpersonal networking includes informal discussions with team members and those outside the project
who may have experience.
The Management Spectrum
2. The Product
• The software product is software that has been developed and maintained for the benefit of a user base
and often to satisfy a need in the market.
1. Software Scope
The first software project management activity is the determination of software scope.
Scope is defined by answering the following questions
• Context. How does the software to be built fit into a larger system, product, or business context, and
what constraints are imposed as a result of the context?
• Information objectives. What customer-visible data objects are produced as output from the
software? What data objects are required for input?
• Function and performance. What function does the software perform to transform input data into
output? Are any special performance characteristics to be addressed?
The Management Spectrum
2. The Product Cont’d
2. Problem Decomposition
• Problem decomposition, sometimes called partitioning or problem elaboration, is an activity
that sits at the core of software requirements analysis.
• It involves breaking down a complex problem or system into smaller parts that are more
manageable and easier to understand.
• The smaller parts can then be examined and solved, or designed individually, as they are
simpler to work with.
The decomposition process continues until all functions or problem classes have been defined.
• The problem is to select the process model that is appropriate for the software to be
engineered.
The team must decide which process model is most appropriate for
(1) The customers who have requested the product and the people who will do the work,
• Planning,
• Modeling,
• Construction,
• and Deployment
• Maintain momentum. The project manager must provide incentives to keep turnover of personnel to an absolute
minimum, the team should emphasize quality in every task it performs, and senior management should do everything
possible to stay out of the team’s way.
• Track progress. For a software project, progress is tracked as work products (e.g., models, source code, sets of
test cases) are produced and approved (using formal technical reviews) as part of a quality assurance activity.
• Make smart decisions. In essence, the decisions of the project manager and the software team should be to “keep
it simple.”
• Conduct a postmortem analysis. Establish a consistent mechanism for extracting lessons learned for each project.
The Management Spectrum
To Get to the Essence of a Project
• Who is responsible?
• How much of each resource (e.g., people, software, tools, database) will be
needed?
The Management Spectrum
Critical Practices
• Formal risk management
• Before the project can begin, the software team should estimate
the work to be done, the resources that will be required, and the
time that will elapse from start to finish.
Project Planning
• Software scope describes the functions and features that are to be delivered to end
users, the data that are input and output.
Estimation of resources, cost, and schedule for a software engineering effort requires
▪ Experience
• How closely is the historical data or industry data used to calibrate the match the project you are
estimating?
• The stability of both the product requirements and the environment that supports the software
engineering effort.
• Whether or not the actual project was carefully planned, monitored and controlled, and no major
surprises occurred that caused unexpected delay.
Software Project Estimation
Software Project Estimation Techniques
• where d is one of a number of estimated values (e.g., effort, cost, project duration)
and vi are selected independent parameters (e.g., estimated LOC or FP).
Software Project Estimation Techniques Cont’d
2. The Decomposition Approach
• The Project Estimation Approach that is widely used
is Decomposition Technique.
▪ Function point sizing - The planner develops estimates of the information domain
characteristics.
▪ Standard component sizing - the standard components for an information system are
subsystems, modules, screens, reports, interactive programs, batch programs, files, LOC,
and object-level instructions.
▪ Change sizing - the use of existing software that must be modified in some way as part of a
project.
Software Project Estimation Techniques Cont’d
2. The Decomposition Approach Cont’d
2. Problem-Based Estimation
LOC and FP data are used in two ways during software project estimation:
(1) As estimation variables to “size” each element of the software and
(2)As baseline metrics collected from past projects and used in conjunction with
estimation variables to develop cost and effort projections.
• LOC and FP estimation are distinct estimation techniques. Yet both have a number of
characteristics in common.
• The expected value for the estimation variable (size) S can be computed as a weighted average of
the optimistic (sopt), most likely (sm), and pessimistic (spess) estimates.
• Once the expected value for the estimation variable has been determined, historical LOC or FP
productivity data are applied.
• It is one of the earliest and simpler metrics for calculating the size of the computer program.
• These metrics are derived by normalizing the quality and productivity measures by considering the
size of the product as a metric.
• As Lines of Code (LOC) only counts the volume of code, you can only use it to compare or estimate
projects that use the same language and are coded using the same coding standards
Software Project Estimation Techniques Cont’d
2. The Decomposition Approach Cont’d
An example of LOC based Estimation
• Take the Library management system case. Software developed for the library will accept data
from the operator for issuing and returning books. Issuing and returning will require some validity
checks. For issue, it is required to check if the member has already issued the maximum number of
books allowed. In case of a return, if the member is returning the book after the due date then a
fine has to be calculated. All the interactions will be through the user interface. Other operations
include maintaining the database and generating reports at regular intervals.
• For example, A review of historical data indicates that the organizational average productivity for
systems of this type is 500 LOC/pm. Based on a burdened labor rate of $6000 per month.
• Cost/LOC=(6000/500)=$12
• Based on the LOC estimate and the historical productivity data and By Considering the total
estimated LOC as 10900,
FP-Based Estimation
• Decomposition for FP-based estimation focuses on information domain values rather than software
functions.
FP=320*1.17=375
• The organizational average productivity for systems of this
type is 6.5 FP/pm.
• The process is decomposed into a relatively small set of tasks and the effort required to accomplish
each task is estimated.
• Once problem functions and process activities are melded, you estimate the effort (e.g., person-
months) that will be required to accomplish each software process activity for each software function.
Software Project Estimation Techniques Cont’d
• The Use-Case Point estimation method was introduced by Gustav Karner in 1993. The work was later
licensed by Rational Software which merged into IBM.
• The environment in which the project will be developed such as the language, the team’s
motivation, etc.
Software Project Estimation Techniques Cont’d
3. Estimating With Use Case Points cont’d
UUCW = (Total No. of Simple Use Cases x 5) + (Total No. Average Use Cases x 10) + (Total No. Complex Use Cases x 15)
Software Project Estimation Techniques Cont’d
3. Estimating With Use Case Points cont’d
Unadjusted Actor Weight (UAW)
UAW = (Total No. of Simple actors x 1) + (Total No. Average actors x 2) + (Total No. Complex actors x 3)
UAW = (1 x 1) + (0 x 2) + (2 x 3) = 7
Technical Complexity Factor (TCF) Environmental Complexity Factor (ECF)
TCF = 0.6 + (TF/100) • ECF = 1.4 + (-0.03 x EF)
TCF = 0.6 + (49/100) = 1.09 • ECF = 1.4 + (-0.03 * 10.0) = 1.1
• Use cases are described using many different formats and styles—there is no standard form.
• Use cases represent an external view (the user’s view) of the software and can therefore be
written at many different levels of abstraction.
• Use cases do not address the complexity of the functions and features that are described.
• Use cases can describe complex behavior (e.g., interactions) that involve many functions and
features.
Software Project Estimation Techniques Cont’d
3. Estimating With Use Case Points cont’d
Use-Case–Based LOC Calculation
• LOCavg -historical average LOC per use case for this type of subsystem
• LOCadjust - represents an adjustment based on n percent of LOCavg where n is defined locally and
represents the difference between this project and “average” projects.
• No estimation model is appropriate for all classes of software and in all development
environments. Therefore, you should use the results obtained from such models judiciously.
• An estimation model should be calibrated to reflect local conditions
The Structure of Estimation Models
• A typical estimation model is derived using regression analysis on data collected from past software
projects.
• where A, B, and C are empirically derived constants, E is an effort in person-months, and ev is the
estimation variable (either LOC or FP).
Empirical Estimation Models
The Structure of Estimation Models Cont’d
• The following are the LOC-oriented estimation models proposed in the literature.
• The following are the FP-oriented estimation models proposed in the literature.
Empirical Estimation Models
COCOMO Model
• COCOMO (Constructive Cost Model) is a regression model based on the number of Lines of Code
(LOC).
• It is a procedural cost estimation model for software projects.
• This model is used for predicting the various parameters associated with developing a project such
as size, effort, cost, and time.
• COCOMO was proposed by Barry Boehm in 1970 and is based on the study of 63 projects.
• Effort: Amount of labor (staff) that will be required to complete a task. It is measured in person-
months units.
• Schedule: means the amount of time required for the completion of the job, which is proportional
to the effort. It is measured in the units of time such as weeks, and months.
Empirical Estimation Models
Boehm’s categorizes the projects
1. Organic: If the team size required to develop a software project is small then the software project is
called as Organic project. In this the problem is well understood and has been solved in the past and
also the team members have a nominal experience regarding the problem.
2. Semi-detached: If the main features such as team size, experience, and knowledge of the various
programming environment lie in between Organic and Embedded then the software project is called a
Semi-detached type project. Eg: Compilers or different Embedded Systems.
3. Embedded: Embedded software projects require the highest level of complexity, creativity, and
experience. This type of software requires a larger team size than the other two models and also the
developers need to be sufficiently experienced and creative to develop such complex models.
Empirical Estimation Models
Boehm’s categorizes the projects
Empirical Estimation Models
• Intermediate - predicted software size (lines of code), plus a set of 15 subjectively assessed 'cost
drivers' was used to estimate development effort.
• Advanced - on top of the intermediate model, the advanced model allows phase-based cost driver
adjustments and some adjustments at the module, component, and system levels.
Empirical Estimation Models
1. Basic COCOMO model
• The Basic COCOMO can be used for quick and slightly rough calculations of Software Costs.
• The following formulas are used to calculate effort and time estimates.
Effort ( E ) = A*(KLOC)B
• Effort ( E ) = A*(KLOC)B
• Time (T) = C*(Effort)D
• Estimated size of project = 400 KLOC.
Embedded Mode
E = 3.6 * (400)1.2 = 4772.81 Person-Months
T = 2.5 * (4772.81).32 = 38 Months
Empirical Estimation Models
Try this
• A project size of 200 KLOC is to be developed. The software development team has average
experience on similar types of projects. The project schedule is not very tight. Calculate the effort,
development time, average staff size, and productivity of the project.
Empirical Estimation Models
2. Intermediate COCOMO Model
• In the intermediate COCOMO model, various other factors such as reliability, experience, and
Capability are considered along with LOC to estimate effort and time schedule.
• These factors are known as Cost Drivers and the Intermediate Model utilizes 15 such drivers for
cost estimation.
(iii) Personnel attributes:
(i) Product attributes:
8. Analyst capability
1. Required software reliability extent
9. Software engineering capability
2. Size of the application database
10. Applications experience
3. The complexity of the product
11. Virtual machine experience
(ii) Hardware attributes: 12. Programming language experience
4. Run-time performance constraints
(iv) Project attributes:
5. Memory constraints
13. Use of software tools
6. The volatility of the virtual machine environment
14. Application of software engineering methods
7. Required turnabout time
15. Required development schedule
Empirical Estimation Models
2. Intermediate COCOMO Model Cont’d
• Application composition model: Used during the early stages of software engineering, when prototyping
of user interfaces, consideration of software and system interaction, assessment of performance, and
evaluation of technology maturity are paramount.
• Early design stage model: Used once requirements have been stabilized and basic software architecture
has been established.
• COCOMO II models require sizing information. Three different sizing options are available as part of
the model hierarchy. They are object points, function points, and lines of source code.
Empirical Estimation Models
COCOMO II Model Cont’d
• The COCOMO II application composition model uses object points.
• Like function points, the object point is an indirect software measure that is computed using
counts of the number of
• Where NOP = New Object Points. Now Productivity rate is defined based on the computed NOP value
to derive an estimate of effort.
The developer’s experience and capability in a similar environment is low. The maturity of the
organization in terms of capability is also low.
Calculate the object point count, new object points, and effort to develop such a project
= 24 * (100-10)/100
= 24 * 90/100 = 21.6
• This model has been derived from productivity data collected for over 4000 contemporary software
projects.
where
E - effort in person-months or person-years
P - “productivity parameter”.
• Typical values might be P 2000 for the development of real-time embedded software, P 10,000 for
telecommunication and systems software, and P 28,000 for business systems applications
Empirical Estimation Models
The Software Equation (Putnam-1992)
t – Represent in years.
For Example, P 12,000 (Recommended value for scientific software), and suppose the total LOC
of the project is 33,200 then
Estimation for Object-oriented Projects
Lorenz and Kidd suggested the following approach:
[Link] estimates using effort decomposition, FP analysis, and any other method that is applicable to conventional
applications.
2. Using the requirements model, develop use cases and determine a count. Recognize that the number of use cases may
change as the project progresses.
4. Categorize the type of interface for the application and develop a multiplier for support classes.
[Link] the total number of classes (key + support) by the average number of work units per class. Lorenz and Kidd
suggest 15 to 20 person-days per class.
6. Cross-check the class-based estimate by multiplying the average number of work units per use case.
Specialized Estimation Techniques
1. Estimation for Agile Development
• Estimation for agile projects uses a decomposition approach
[Link] user scenario (the equivalent of a mini-use case created at the very start of a project by end users or
other stakeholders) is considered separately for estimation purposes.
2. The scenario is decomposed into the set of software engineering tasks that will be required to develop it.
3a. The effort required for each task is estimated separately. Note: Estimation can be based on historical data,
an empirical model, or “experience.”
3b. Alternatively, the “volume” of the scenario can be estimated in LOC, FP, or some other volume-oriented
measure (e.g., use-case count).
4a. Estimates for each task are summed to create an estimate for the scenario.
4b. Alternatively, the volume estimate for the scenario is translated into effort using historical data.
5. The effort estimates for all scenarios that are to be implemented for a given software increment are
summed to develop the effort estimate for the increment.
Specialized Estimation Techniques Cont’d
2. Estimation for WebApp Projects
• Inputs are each input screen or form (for example, CGI or Java), each maintenance screen, and if you
use a tab notebook metaphor anywhere, each tab.
• Outputs are each static Web page, each dynamic Web page script (for example, ASP, ISAPI, or other
DHTML script), and each report (whether Web based or administrative in nature).
• Tables are each logical table in the database plus, if you are using XML to store data in a file, each
XML object (or collection of XML attributes).
• Interfaces retain their definition as logical files (for example, unique record formats) into our out-of-
the-system boundaries.
• Queries are each externally published or use a message-oriented interface. A typical example is DCOM
or COM external references.
The Make/Buy Decision
• It may be more cost-effective to acquire a piece of software rather than develop it.
• Decision tree analysis provides a systematic way to sort through the make/buy decision.
• As a rule, outsourcing software development requires more skillful management than in-house
development of the same product.
Suppose that a project was estimated to be 400 KLOC. Calculate effort & time for each
of 3 modes of development.
Solution:
As we know that 3 modes of development are
1. Organic
2. Semi-detached
3. Embedded
Also we know that
1. Organic:
Effort = a (KLOC)b person month
= 38 Months
2. Semi-detached
= 38.4 Months
3. Embedded
= 38 Months
Software Project Scheduling
Software Project Scheduling
Project Scheduling
• Project-task scheduling is a significant project-planning activity.
Scheduling Principles - 1
Compartmentalization
• The product and process must be decomposed into a manageable number of activities
and tasks
Interdependency
• Tasks that can be completed in parallel must be separated from those that must be
completed serially
Time allocation
• Every task has a start and completion dates that take the task interdependencies into
account
Software Project Scheduling
Scheduling Principles - 2
Effort validation
• The project manager must ensure that on any given day there are enough staff members assigned to
complete the tasks within the time estimated in the project plan.
Defined Responsibilities
Scheduling Principles - 3
Defined outcomes
• Every task in the schedule needs to have a defined outcome (usually a work product or deliverable)
Defined milestones
• A milestone is accomplished when one or more work products from an engineering task have passed a
quality review
Software Project Scheduling
Step :1 List the Deliverables
• Documents.
• Demonstration of function.
• Demonstration of subsystem.
• Demonstration of accuracy.
• Demonstration of reliability, security, or speed.
Step :2 Define the Milestones
• Completion of an activity or deliverable (must be measurable).
• Activities must have definite a start and stop.
• A milestone is a point in time not a time period like an activity.
Step :3 Work Breakdown Structure
• Create the work breakdown structure
• Separate the project into phases composed of steps
• Subdivide steps into activities as needed
Software Project Scheduling
Project Effort Distribution
• A task network, also called an activity network, is a graphic representation of the task flow for a
project
Software
Scheduling Methods
Project Scheduling
1. Two project scheduling methods can be applied to software development
2. Both techniques are driven by information already developed in earlier project planning activities
• Estimates of efforts
• Decomposition of task
3. Both PERT and CPM provide quantitative tools that allow software planners to :
• Earned Value Analysis (EVA) is a technique used in project management for monitoring and
controlling purposes.
• a simple and powerful tool that helps managers to analyze the progress of their projects.
• It compares the actual work completed at any time to the original budget and schedule.
• It forecasts the final budget and schedule and analyses the path to get there. It gives you the
essential early warning signal that things are going awry.
Software Project Scheduling
Steps to Calculate Earned Value Analysis (EVA)
1. Determine the percent completion of each task.
2. Determine Planned Value (PV).
3. Determine Earned Value (EV).
4. Obtain Actual Cost (AC).
5. Calculate Schedule Variance (SV).
6. Calculate Cost Variance (CV).
7. Calculate Other Status Indicators (SPI, CPI, CR)
Software Project Scheduling
Steps to Calculate Earned Value Analysis (EVA)
1. Determine Percent Complete
• To start the process, the percentage completed of each task needs to be determined.
Planned Value, also known as Budgeted Cost of Work Scheduled (BCWS), is defined as the amount
of the task that is supposed to have been completed.
For example.
• SV=EV-PV
• A negative schedule variance means the task is behind schedule. A positive schedule variance means it
is ahead of schedule.
6. Calculate Cost Variance (CV)
• The Cost Variance represents the cost status of the project.
CV=EV-AC
A negative cost variance means the task is over budget. A positive cost variance means it is under
budget.
Software Project Scheduling
Steps to Calculate Earned Value Analysis (EVA)
7. Calculate Other Status Indicators
• Although the SV and CV are the minimum requirement and work well for small projects, there are
other variables that are derived from them that you might want to calculate:
• Schedule Performance Index (SPI): The schedule variance expressed in percentage terms, for
example, SPI = 0.8 means the project is 20% behind schedule.
SPI=EV/PV
• Cost Performance Index (CPI): The cost variance expressed in percentage terms, for example, CPI =
0.9 means the project is 10% over budget.
• Each metric is calculated for each individual task in the
CPI=EV/AC project.
• Critical Ratio • Therefore, they need to be added up into overall project