SEPM
SEPM
SEPM
CHAPTER 01
FUNDAMENTALS OF SOFTWARE PROJECT MANAGEMENT (SPM)
Introduction:
1. Software project management is a type of project management that
focuses specifically on creating or updating software.
2. It is process of getting work done in time and within budget while meeting
customer expectations.
3. Project management involves coordinating people, vendors, and
resourc es.
4. Project management requires excellent communication skills, a strong will
to protect the project scope, and le adership skills to enforce quality
throughout the project work.
5. Project management involves coordinating people, vendors, and
resourc es.
6. The project manager constantly makes decisions about the project. If
those decisions are based on real information that's gathered by the
team and trusted by management then the project would become a
succ ess.
7. Managing a project is all about forming a team and making sure that it is
productive. The best way to do that is to rely on the expertise of the team
members.
8. Every single role in a software project requires expertise, skill, training, and
experience.
9. A software project has two main activity dimensions: engineering and
project management. The engineering dimension deals with building the
system and focuses on issues such as how to design, test, code, and so on.
The project management dimension deals with properly planning and
Building a Software
Software is typically built by a team of software engineers, which includes:
Business analysts or requirements analysts, who talk to the users and
stakeholders (anyone who has an interest (or stake) in the software being
completed), plan the behavior of software and write software requirements.
Designers and architects who plan the technical solution.
Programmers who write the code.
Testers who verify that the software meets its requirements and behaves as
expected.
Scope of Project
The project manager drives the scope of the project.
The project manager should identify and talk to the main stakeholder.
Using the vision and scope document the project manager puts forward the
intention of the project to satisfy the stake holders.
Project Plan
The project plan defines the work that will be done on the project, the way to do
things in the project and the persons who will do it. It consists of following points:
1. Statement Of Work (SOW):
a. It describes all work products that will be produced and a list of people
who will perform that work.
b. It has a detailed description of all of the work products that will be
created over the course of the project.
c. A list of features that will be developed.
d. A description of each intermediate deliverable or work product that
will be built.
e. The estimated effort involved for each work product to be delivered.
2. Resource List:
a. A resource is a person, hardware, room or anything else that is
necessary for the project but with limited availability.
b. A resource list that contains a list of all resources that will be needed
for the product and their availability (source from which the resource
would come).
1. Financial tools :
Analogous Estimating: Using the cost of similar project to determine the
cost of the current project.
Determining Resourc e Cost rates: The cost of goods and labor by unit
gathered through estimates or estimation.
Bottom Up estimating: Using the lowest level of work package detail and
summarizing the cost associated with it. Then rolling it up to a higher level
aimed and calculating the entire cost of the project.
Parametric Estimating: Measuring the statistical relationship between
historical data and other variable or flow.
Vendor Bid Analysis: taking the average of several bids given by vendors
for the project.
Reserve Analysis: Aggregate the cost of each activity on the network path
then add a contingency or reserve to the end result of the analysis by a
factor determined by the project manager.
Cost of Quality Analysis: Estimating the cost at the highest quality for each
activity.
2. Cause and effect charts:
The main purpose of the CE diagram is to graphically represent the
relationship between an effect and its various possible causes.
Understanding the causes helps to identify solutions to eliminate them.
The main steps in drawing a cause-effe ct diagram are as follows:
a. Clearly define the problem (the effect) to be studied. Here we can
find the problems of partcular types that are occuring in the
system.
b. We Draw an arrow from left to right with a box containing the
effect drawn at the head. This is the backbone of the diagram.
c. We Determine the major categories of causes. These could be the
standard categories or some variation to suit the problem.
d. We then Write these major categories in boxes and connect them
with diagonal arrows to the backbone.
e. Then Brainstorm for the sub-causes of the major causes by asking
repeatedly, for each major cause, "Why does this major cause
produce the effect?"
f. Then we Add the sub-causes to the diagram clustered around the
major cause. If necessary, further we subdivide these causes and
Stop when no worthwhile answer to the question can be found.
Possible Possible
cause 1 cause 2
Possible Possible
cause 3 cause n
12.Training
13.Implementation
14. Governance
15.Roles and Responsibilities
16.Documentation
17.Requirements
1) Scope:
a. Was the scope well defined at the start of the project?
b. Is there a scope variation process in place ?
c. Are there variations that have not been subject to that process?
d. Can the team identify the cumulative impact in time and cost of the
variations?
e. Are actuals tracked against estimated impacts for variations?
f. Has the project plan been adjusted to cater for variations?
2) Cost:
a. Is there a cost tracking system in place ?
b. Are costs being tracked?
c. Are any costs not being tracked properly?
d. Is the cost tracking up to date ?
e. Are costs being reconciled against corporate accounts?
f. Are cost projections in place for the completion of the project?
g. Have any variances been approved in writing?
3) Time:
a. Is a suitably detailed schedule in place ?
b. Is it up to date ?
c. Does it reflect the current scope ?
d. Are milestones being used to manage progress?
e. Are there regular enough milestones to track progress or are there
weeks of the project that have no milestones?
f. Is time being monitored through a time sheeting system?
g. Is there a solid and realistic plan for the remaining work?
4) Quality:
a. Is there a quality plan in place ?
b. Are deliverables subject to a quality plan?
c. What actions happen after a quality review, and are they monitored?
d. Does the plan have time allocated for rework after quality review?
e. Is the test plan realistic (test strategy, test plan and test cases in
place)?
f. Are the appropriate people allocated to testing?
g. Is testing inclusive of system, performanc e and interfac e testing ?
5) Resources:
a. Are there sufficient resources?
b. Are they the right resources?
c. Are they able to allocate sufficient time to the project?
d. Is there a sense of cooperation within the project?
e. Are the team being well managed?
f. Are the resources being used efficiently?
g. What is morale like in the team?
6) Communication:
a. Is there a communications plan in place ?
b. Is it being implemented?
c. Have all key stakeholders been identified?
d. Do the stakeholders feel they are being kept up to date ?
e. Are there any general areas of concern in communication?
f. Is the project likely to deliver corporate change and is there a plan to
manage expectations?
g. Is that plan being implemented and expectations monitored?
7) Procurement:
a. Are external resources being used?
b. Are up to date contracts in place to manage those resources through
to the end of the project?
c. Is there a contingency to retain those resources beyond the scheduled
end of the project if required?
12)Lag time: the earliest time by which a successor event can follow a
specific PERT event.
13)Sla ck: the slack of an event is a measure of the excess time and
resources available in achieving this event. Positive slack would
indicate ahead of schedule; negative slack would indicate behind
schedule; and zero slack would indicate on schedule.
14)Fast tracking: performing more critical activities in parallel.
15)Crashing critical path: Shortening duration of critical activities.
16)Float: is the amount of time that a task in a project network can be
delayed without causing a delay.
a. Free float: extra time available for a subsequent task.
b. Total float: cumulative of all the free floats in the project.
The most common information shown in a PERT diagram are:
1) The activity name
2) The normal duration time
3) The early start time (ES)
4) The early finish time (EF)
5) The late start time (LS)
6) The late finish time (LF)
7) The slack
Example:
In the following example there are seven tasks, labeled A through G. Some
tasks can be done concurrently (A & B) while others cannot be done until
their predecessor task is complete (C cannot begin until A is complete).
Additionally, each task has three time estimates: the optimistic time estimate
(a), the most likely or normal time estimate (m), and the pessimistic time
estimate (b). The expected time (TE) is computed using the formula
TE=(a + 4m + b) /6.
A -- 2 4 6 4.00
B -- 3 5 9 5.33
C A 4 5 7 5.17
D A 4 6 10 6.33
E B,C 4 5 7 5.17
F D 3 4 8 4.50
G E 3 5 8 5.17
The Next step is to determine the ES and EF. The ES is defined as the maximum EF
of all predecessor activities, unless the activity in question is the first activity, for
which the ES is zero (0). The EF is the ES plus the task duration (EF = ES + duration).
The ES for start is zero sinc e it is the first activity. Sinc e the duration is zero,
the EF is also zero. This EF is used as the ES for A and B.
The ES for A is zero. The duration (4 work days) is added to the ES to get an
EF of four. This EF is used as the ES for C and D.
The ES for B is zero. The duration (5.33 work days) is added to the ES to get
an EF of 5.33.
The ES for C is four. The duration (5.17 work days) is added to the ES to get
an EF of 9.17.
The ES for D is four. The duration (6.33 work days) is added to the ES to get
an EF of 10.33. This EF is used as the ES for F.
The ES for E is the greatest EF of its predecessor activities (B and C). Since B
has an EF of 5.33 and C has an EF of 9.17, the ES of E is 9.17. The duration
(5.17 work days) is added to the ES to get an EF of 14.34. This EF is used as
the ES for G.
The ES for F is 10.33. The duration (4.5 work days) is added to the ES to get
an EF of 14.83.
The ES for G is 14.34. The duration (5.17 work days) is added to the ES to
get an EF of 19.51.
The ES for finish is the greatest EF of its predecessor activities (F and G).
Sinc e F has an EF of 14.83 and G has an EF of 19.51, the ES of finish is 19.51.
Finish is a milestone (and therefore has a duration of zero), so the EF is also
19.51.
Barring any unforeseen events, the project should take 19.51 work days to
complete.
The next step is to determine the late start (LS) and late finish (LF) of each activity.
This will eventually show if there are activities that have slack. The LF is defined as
the minimum LS of all successor activities, un less the activity is the last activity, for
which the LF equals the EF. The LS is the LF minus the task duration
(LS = LF - duration).
The LF for finish is equal to the EF (19.51 work days) since it is the last
activity in the project. Since the duration is zero, the LS is also 19.51 work
days. This will be used as the LF for F and G.
The LF for G is 19.51 work days. The duration (5.17 work days) is subtracted
from the LF to get an LS of 14.34 work days. This will be used as the LF for E.
The LF for F is 19.51 work days. The duration (4.5 work days) is subtracted
from the LF to get an LS of 15.01 work days. This will be used as the LF for D.
The LF for E is 14.34 work days. The duration (5.17 work days) is subtracted
from the LF to get an LS of 9.17 work days. This will be used as the LF for B
and C.
The LF for D is 15.01 work days. The duration (6.33 work days) is subtracted
from the LF to get an LS of 8.68 work days.
The LF for C is 9.17 work days. The duration (5.17 work days) is subtracted
from the LF to get an LS of 4 work days.
The LF for B is 9.17 work days. The duration (5.33 work days) is subtracted
from the LF to get an LS of 3.84 work days.
The LF for A is the minimum LS of its successor activities. Since C has an LS
of 4 work days and D has an LS of 8.68 work days, the LF for A is 4 work
days. The duration (4 work days) is subtracted from the LF to get an LS of 0
work days.
The LF for start is the minimum LS of its successor activities. Since A has an
LS of 0 work days and B has an LS of 3.84 work days, the LS is 0 work days.
The next step is to determine the critical path and if any activities have slack. The
critical path is the path that takes the longest duration to complete.
To determine the path times, we add the task durations for all available paths.
Activities that have slack can be delaye d without changing the overall time of
the project. Slack is computed in one of two ways,
slack = LF - EF or slack = LS - ES.
Activities that are on the critical path have a slack of zero (0).
The duration of path ADF is 14.83 work days.
The duration of path ACEG is 19.51 work days.
The duration of path BEG is 15.67 work days.
The critical path is ACEG and the critical time is 19.51 work days. It is important to
note that there can be more than one critical or that the critical path can
change.
Therefore, activity B can be delayed almost 4 work days without delaying the
project. Likewise, activity D or activity F can be delayed 4.68 work days without
delaying the project (alternatively, D and F can be delayed 2.34 work days
each).
PERT Chart
Legend:
Early Early
Duration
Start Finish
Task Name
Late Late
Sla ck
Start Finish
Chart:
5. Gantt charts:
a. A Gantt chart is a graph of activities against time. It is the most
effective way to present a project’s plan and its progress.
b. A Gantt chart is a type of bar chart that illustrates a project schedule.
Gantt charts illustrate the start and finish dates of the tasks (activity) in
a project.
c. The Task list comes from the work breakdown structure of the project.
d. Some Gantt charts also show the dependency relationships between
activities.
e. Gantt charts can be used to sh ow current schedule status using
percent-complete shadings and a vertical "TODAY" line.
f. A Gantt chart can indicate:
i. Milestones
ii. Slack time
iii. Activities on the critical path
g. Once the project has started, the Gantt chart can also show:
i. Activities that have started and their actual start dates
ii. Activities that have finished and their actual completion dates
iii. Revised milestone and activity dates
iv. Revised slack time and critical path
v. Actual performance compared to the original plan
h. Dependency Relationship between activities is represented as follows
Dependency Relationship between Activities
Finish-to-Finish Start-to-Start
Activity A
Activity A
Activity B Activity B
B can start only after A is finished B can start only when A Starts
Start-to-Finish Start-to-Start
Activity A Activity A
Activity B Activity B
B can Finish only after A Starts B can Finish only when A Finishes
JAN
Id Duration
Task Name
No (days)
1 2 3 4 5 6 7 8 9 10 11 12 13
Software Selection
1 13
and Acquisition
2 Selection 6
3 Define Requirements 2
4 Identify vendors 2
5 Issue Requisitions 1
6 Acquisitions 5
7 Place order 1
9 Test 2
8. Run charts:
a. Run charts are line graphs, which display process performance over
time.
b. The events are shown on the y-axis and are graphed against a time
period on the x-axis.
c. Upward and downward trends, cycles, and large aberrations may be
spotted and investigated further for gaining insight about the process
under review.
CHAPTER 02
PROJECT INTEGRATION MANAGEMENT
Project Phases:
I. Initiation,
II. Planning or development,
III. Production or execution,
IV. Monitoring and controlling, and
V. Closing.
1.. Initiation:
1) The initiation stage determines the nature and scope of the development.
2) Study and Analysis of the business needs with measurable goals.
3) Review of the current operations.
4) Conceptual design of the operation of the final product.
5) Equipment and contracting requirements.
6) Financial analysis of the costs and benefits.
7) Stakeholder analysis, including users, and support personnel for the
project.
8) Project charter including costs, tasks, delivera bles, and schedule.
9) Various tasks included are as follows:
a) Developing Business Case:
1. Performing Problem analysis.
2. Developing solution strategies.
3. Performing cost and benefit analysis of the solutions.
4. Performing Risk analysis.
5. Adopting the optimum solution.
e. Risk Plan:
i. Risk list.
ii. Risk impact.
iii. Risk mitigation plan.
f. Acceptance Plan:
i. Operational and Quality acceptance criteria for the product.
ii. Scheduled reviews by customer to accept the product
development.
g. Communication Plan:
i. Schedule of communication events.
ii. Procedure of communication (formal & informal).
iii. Information type during communication.
6) The results of the design stage should include a product design that:
a. Satisfies the project sponsor, end user, and business requirements.
b. Functions as it was intended.
c. Can be produced within quality standards.
d. Can be produced within time and budget constraints.
3.. Executing:
1) Executing consists of the processes used to complete the work defined in
the project management plan to acco mplish the project's requirements.
2) Execution process involves coordinating people and resources.
3) Integrating and performing the activities of the project in accordance
with the project management plan.
4) The intended deliverables are produced as defined in the project
management plan.
6.. Closing:
1) It includes the formal acceptance of the project by the customer.
2) Archiving of the project documents.
3) Documenting the lessons learned.
4) Finalize all activities across all of the process groups to formally close the
project.
5) Closing each contract applicable to the project.
Scope:
1. A scope definition specifies what the project will do as well as what it will
not.
2. Scope statement must specify what activities are not in scope.
3. Scope change cannot be recognized until the scope baseline is
established.
4. The Scope statement includes all the work that the project will be required
to carry out.
5. There are two types of scopes (1) the scope of the product and (2) the
scope of the project. The scope of the product defines the work that the
project will carry out, the scope of the project defines how that work will
be executed.
Scope Change Management :
1. When we identify a change of scope then we submit it to the technical
people for estimates, and calculate the effect of the change on the
project schedule and costs.
2. The changes and impacts are documented in a change request form.
3. The change request form is submitted to the client for approval within the
date specified in the form i.e "Date Required"
4. After this, the change becomes a matter of client approval. It may require
negotiations or modifications of the change, but ultimately, the client
must either approve or reject the change.
5. If the change is approved then the project plan is revised by including the
change.
A sample Change Request Form
Time:
Cost:
Quality:
It’s a measurable quantity which can be compared with known standards for
any product or process. It specifies th e degree to which a product or process
maintains the known standards. Quality can be classified in to two groups –
a) Quality of design and b) Quality of conformance.
a) Quality of design :- It refers to the stand ards maintained during design
processes which include the grade of - i) Materials, ii) Tolerances and iii)
Performance specifications.
Quality Control
a) It’s a series of inspections, reviews and tests used throughout the
development cycle to ensure that each work product meets the
requirements placed up on it.
b) It includes a feedback loop to the process that created the work product.
The feedback loop helps tune up the process during the creation of the
product.
c) It should be a part of the manufacturing process.
Quality Assurance
It’s the auditing and reporting functions of the management. If the data
provided through quality assurance identify problems then it’s the
management’s responsibility to solve the problems and apply the necessary
resources to resolve the quality issues. The goal of quality assurance is to
provide management to provide information and data related to product
quality so that they can evaluate whether or not the manufacturing process
is maintaining the product quality.
Human Resource:
1. The planner begins by evaluating scope and selecting the skills required to
complete the development tasks. Both Organizational positions (e.g.,
manager, senior software engineer) and Specialty positions (e.g.,
telecommunications, database, client/server) are identified.
2. The number of people required for a softw are project can be determined
only after an estimate of development effort (e.g., person-months) is
made.
Communications:
1. Characteristics of modern softw are include scale, unc ertainty, and
interoperability. To deal with them effectively, a software engineering
team must establish effective methods for coordinating the people who
do the work. To accomplish this, me chanisms for formal and informal
communication among team members and between multiple teams
must be established.
2. Formal communication: is accomplished through “ writing, structured
meetings, and other relatively non-interactive and impersonal
communication channels”.
3. Informal communication: is more personal. Members of a software team
share ideas on an ad hoc basis, ask for help as problems arise, and
interact with one another on a daily basis.
4. Five points of effective Communic ation:
1) Transmitted: Information is sent to the appropriate person in a format
that the receiver can accept it.
2) Received: An acknowledgement should be received from the
receiver, that the receiver has read the information.
3) Understood: The information should be easy enough so that the
intended receiver can understand its meaning and can analyze what
to do next.
Risk:
General categorization of risk is as follows :
1) Known risks :- These can be uncovered after careful evaluation of the
project plan, the business and technica l environment in which the project
is been developed. Other reliable factors can also be considered, like,
unrealistic schedule, poor development environment etc.
2) Predictable risks :- These can be predicted form past project experiences
(e.g., staff turnover, poor communicati on with customers etc.) and a plan
can be designed long before the risk becomes reality.
3) Unpredictable risks :- These very difficult to identify and often become
reality. For these kinds of risks, reactive risk management strategy needs to
be taken.
PMI Fundamentals:
The Nine areas of Project Management outlined by Project Management
Institute (PMI) are:
Project Dimensions:
Project Dimensions include People, Product, Process, and Technology
1. People:
CHAPTER 03
PLANNING
rejected.
d) Develop a list of the characteristics of the product priority wise.
40-20-40 Rule:
1. Each of the software project estimation techniques usually lead to
estimates of work units (e.g., person-months) required to complete
software development.
2. A recommended distribution of effort across the definition and
development phases is often referred to as the 40–20–40 rule.
3. 40 percent of all effort is allocated to front-end analysis and design.
4. 20 percent of all effort is applied to Coding.
5. 40 percent of all effort is applied to back-end Testing.
6. This effort distribution should be used as a guideline only. The
characteristics of each project must dictate the distribution of effort.
7. Work expended on project planning rarely accounts for more than 2–3
percent of effort.
8. Requirements analysis may comprise 10–25 percent of project effort. Effort
expended on analysis or prototyping should increase in direct proportion
with project size and complexity.
9. A range of 20 to 25 percent of effort is normally applied to software
design. Time expended for design review and subsequent iteration must
also be considered.
10.A range of 15–20 percent of overall effort can be achieved during
Coding.
11.Testing and subsequent debugging can account for 30–40 percent of
software development effort.
12.Today, more than 40 percent of a ll project effort is often recommended
for analysis and design tasks for large software development projects.
Hence, the name 40–20–40 rule no longer applies in a strict sense.
verify Architectural
Design Phase Details
Waterfall Model
3) Prototyping Model
Listen to Customer :- This is the starting step, where the developer and
customer together a) Define the overall objectives for the software, b)
Identify the known requirements and c) The analyst then outline those factors
and requirements that are not visible normally but are mandatory from
development point of view.
Customer test drives the prototype :- The customer runs and checks the
prototype for its perfection. The prototype is evaluated by the customer and
further improvements are made to the prototype unless the customer is
satisfied.
All the stages are repeated until the customer gets satisfied. When the final
prototype is fully accepted by th e customer then final development
processes like proper coding for attaining maintainability, proper
documentation, testing for robustness etc. are carried out. And finally the
software is delivered to the customer.
Data Modeling
Process Modeling
Team #2
Business Modeling Application Generation
Process Modeling
Team #3
Business Modeling Application Generation
Process Modeling
Application Generation
60 – 90 days
RAD Model
Process Modeling :- Its like the design phase. Here the properly modeled data
are put together such that actual coding to implement the functionalities for
data manipulation could be done.
Application generation :- Its like the coding and implementation phase. Here
the planned out processes are actually coded and executed. In this phase its
taken in to consideration that the code should be made is such a manner
that they become reusable.
Testing and turnover :- Here the final code is repeatedly tested for reliability,
robustness and maintainability. If some short comings are encountered then
again the initial stages are repeated for identification and eradication of
errors.
In this type of development process a problem is initially analyzed in details
such that the problem could be divided or decomposed into manageable
smaller problems. The analysis is done in such a way that the decomposed
problem could be solved parallel and the solutions could be integrated to
solve the entire problem.
5) Incremental Model
System / Information
Engineering
1st Increment
Analysi Design Codin Testin
2nd Increment
Analysis Design Coding Testing
3rd Increment
Analysis Design Coding Testing
Incremental Model
6) Spiral Model
Planning
Risk Analysis
Customer Communication
Engineering
Customer Evaluation
Spiral Model
3) The s/w engineering team moves around the spiral in a clock wise
direction starting from the core. The first circuit around the spiral generally
results in development of product specifications. Subsequent passes
through the spiral generally results in the preparation of a prototype and
then progress is made is developing more sophisticated versions of the s/w
depending on the feedback from the customer.
Planning
Risk Analysis
Customer Communication
Engineering
4. Evaluate
process and
product
alternatives and
6. Validate product
resolve risks
and process 5. Define next level of
definitions product and process,
including partitions
1. Here the customer and the developer enter into a process of negotiation,
where the customer wants to reduce cost and time required for
development then the developer would suggest to balance functionality,
performance, or system characteristics against cost and time.
2. The best negotiations results in a “ win-win” solution where the customer
wins by getting a product that satisfies the majority of his needs and the
developer wins by working in such a way that realistic budgets and
deadlines are achieved.
3. This model defines a set of negotiation activities at the beginning of each
pass around the spiral.
4. Successful completion of the negoti ation activities achieves a win-win
result for both the customer and developer.
Product
Process
Design Computer
Plan Integration
Programmer Ability
It had been observed that on very large projects the differences in
individual programmer ability will tend to average out and would not
effect the project adversely. But on projects utilizing 5 or lesser
programmers the factor of individual ability is significant and can affect
the project positively or negatively. Hence individual programmer ability
governs programmer productivity that affects the cost of the project.
Product Size
A large software product is obviously more expensive to develop than a
small one. The equations derived for Programmer months (PM) and
Development time (TDEV) show that the rate of increase in effort required
grows with the number of source instructions at an exponential rate slightly
greater than 1.
Available Time
Total project effort is sensitive to the calendar time available for the
project completion. Software projects require more effort if the
development time is compressed or expanded from the optimal time.
After extensive research it had been observed that there is limit beyond
which a software project cannot reduce its schedule even by buying
more personnel and equipment. The limit occurs roughly at 75% of the
nominal schedule.
Required Reliability
It includes the capacity give to the software for
1. Exception handling.
2. Error handling.
3. Accuracy.
Level of Technology
The level of technology provided by latest softw are products help
reducing overall cost. Concurrency, type-checking and self-
documentation aspects of high-level languages improve the reliability
and modifiability of the programs created using these high-level
languages. The familiarity of the programmer with the latest technology is
also a contributing factor in effort reduction and cost reduction.
1) Expert Judgment
The most widely used cost estimation technique is Expert judgment.
Inherently it’s a top-down estimation technique . Expert judgment relies on
the experience background and business sense of one or more key
people in the organization.
Groups of experts sometimes prepare a consensus estimate(collective
estimate) , this tends to minimize individual oversights and lack of
familiarity with particular projects and neutralizes personal biases and the
desire to win the contract through an overly optimistic estimate as seen in
individual judgment style.
The major disadvantage of group estimation is the effect that
interpersonal group dynamics may have on individuals in the group.
Group members may not be candid enough due to political
considerations. The presence of authority figures in the group or the
dominance of an overly assertive group member.
3) Embedded projects :- These are large projects that have a very rigid
requirements level. Here the hardware, software and operational
constraints are of prime importance.
Table
Coefficients & exponents used in the Basic ( _b ) COCOMO Model
Software
a_b b_b c_b d_b
project type
Table
Coefficients & exponents used in the Intermediate ( _i ) COCOMO Model
The effort adjustment factor (EAF) is calculated using 15 cost drivers. The cost
drivers are grouped into four categories: product, computer, personnel, and
project. Each cost driver is rated on a six-point ordinal scale ranging from low to
high importance. Based on the rating, an effort multiplier is determined using
Table provided by Barry Boehm (Boehm, 1981). The product of all effort
multipliers is the EAF.
Payback Analysis:
1. Payback period in business and economics refers to the period of time
required for the return on an investment to "repay" the sum of the original
investment. For example, a $1000 investment which returned $500 per
year would have a two year payback period.
2. It intuitively measures how long something takes to "pay for itself"; shorter
payback periods are obviously preferable to longer payback periods.
3. Basic formula:
Payback = Days/ Weeks/ Months x Initial Investment / Total cash received
Scheduling techniques :
1. Task networks (activity networks) are graphic representations that can be
of the task interdependencies and can help define a rough schedule for
particular project Scheduling tools should be used to schedule any non-
trivial project.
2. PERT (program evaluation and review technique) and CPM (critical path
method) are quantitative techniques that allow software planners to
identify the chain of dependent tasks in the project work breakdown
structure that determine the project duration time.
3. Timeline (Gantt) charts enable software planners to determine what tasks
will be needed to be conducted at a given point in time (based on
estimates for effort, start time, and duration for each task).
4. Time-boxing is the practice of deciding in advance the fixed amount of
time that can be spent on each task. When the task's time limit is
exceeded, development moves on to the next task (with the hope that a
majority of the critical work was completed before time ran out).
Effort-Driven Scheduling
1. Assigning resourc es to tasks affe cts the schedule differently if the tasks are
effort-driven.
2. Effort-driven scheduling means that as we add resourc es to a an effort-
driven task, the work is redistributed among all the resources to maintain
the same amount of work overall. Likewise, if we remove resources from
an effort-driven task then the work is redistributed among the remaining
resources, to maintain the same amount of work overall.
3. By default, tasks have fixed units and are effort-driven. This means that as
more resources are assigned to a task, there is less work to be done.
Adding resourc es reduces duration.
4. If we have a fixed-duration, effort-driven task then by assigning more
resources, reduces the overall amount of work to be done and also
reduces the overall duration of work.
5. Effort-driven scheduling only takes effe ct when resourc es are added to or
removed from a task.
6. Effort-driven calculation rules are not applied when you change work,
duration, and unit (units: The quantity of a resource assigned to a task)
values for resources already assigned to a task.
Activity Diagram :
Activity diagrams show the procedural flow of control between two or
more class objects while processing an activity.
Activity diagrams can be used to model higher-level business processes,
or to model low-level internal class actions.
Usually activity diagrams are best used to model higher-level processes.
Here the diagram is divided into columns where every column header
represents the name of the Class whose objects would interact with each
other.
Here also a specific Use-Case is explained.
The start of the activity is denoted by a filled circle and end of the activity
is denoted by a bulls eye.
The activities that the Class Objects would perform is represented using
circular edged rectangles in which the name of the activity is written.
The activities are connected through transition lines.
Using the Key and Account number withdraw amount from account
Receive Acknowledgement
CHAPTER 04
RISK AND CHANGE MANAGEMENT
Risk Management
A general categorization of risk can be done as follows
1. Known risks :- These can be uncovered after careful evaluation of the
project plan, the business and technica l environment in which the project
is been developed. Other reliable factors can also be considered, like,
unrealistic schedule, poor development environment etc.
2. Predictable risks :- These can be predicted form past project experiences
(e.g., staff turnover, poor communicati on with customers etc.) and a plan
can be designed long before the risk becomes reality.
3. Unpredictable risks :- These very difficult to identify and often become
reality. For these kinds of risks, reactive risk management strategy needs to
be taken.
Apart from above mentioned general categorization of risks there are some
specific kinds of risks that are commonly seen during software projects :-
1. Project risks :- These are related to the project plan. They include – a)
Project budget, b) Project schedule, c) Project personnel (staffing &
organization), d) Project resourc es, e) Customer, f) Softw are requirements
related problems.
2. Technical risks :- These are related to acceptance and quality of the
software. These occur because during problem analysis the complexity of
the problem is not understood to the maximum limits. They include – a)
Implementation problems, b) Design problems, c) Verification deficiency,
d) Maintenance problems, e)Interfacing problems, and f)
Technical obsolescence.
3. Business risks :- These are related to general acceptability of the software.
The factors that contribute to the business risks are – a) Market risk, where
the product is not required in the market, b) Strategic risks, where the
product does not fit the business strategy of the customer, c)
Risk Management:
In ideal risk management, a prioritization process is followed whereby the risks
with the greatest loss and the greatest probability of occurring are handled first,
and risks with lower probability of occurrence and lower loss are handled in
descending order.
Following are the situations where the CSR needs updating - a) Each time
when a SCI is assigned a new or updated identification, b) Each time ECO is
issued i.e a when a change is approved by the CCA/CCB, c) Each time a
configuration audit is conducted.
Reviews
1. Reviews are useful in finding and eliminating defects.
2. Reviews help to find defects soon after they are injected during the
development phases making it less costly to fix compared to if they were
found in later phases.
3. All work products like Software requirements specifications, schedules,
design documents, code, test plans, test cases, and defect reports in a
software project should be reviewed and tested.
Types of Reviews:
1. Inspections:
a. They are moderated meetings in which reviewers list all issues and
defects they have found during the inspections.
b. The goal of the inspection is to repair all of the defects so that
everyone on the inspection team can approve the work product.
c. Commonly inspected work products include software requirements
specifications and test plans.
2. Deskcheck:
a. It is a simple review in which the author of a work product
distributes it to one or more reviewers.
3. Walkthrough:
a. It is an informal way of presenting a technical document in a
meeting.
b. Unlike other kinds of reviews, the author runs the walkthrough by
calling the meeting, inviting the reviewers, soliciting comments and
ensuring that everyone present understands the work product.
4. Code Review:
a. It is a special kind of inspection in which the team examines a
sample of code and fixes any defects in it.
5. Pair programming:
a. It is a technique in which two programmers work simultaneously at
a single computer and continuously review each others’ work.
b. Pair programming improves the project management by ensuring
that at least two programmers are able to maintain any piece of
the softw are.
Reports
1. Reports do not need to be of the same depth or at the same frequency
for each level
2. Reports must contain data relevant to the control of specific tasks that are
being carried out according to a specific schedule
3. The timing of reports should generally correspond to the timing of project
milestones
Effort-Driven Scheduling
1. Assigning resourc es to tasks affe cts the schedule differently if the tasks are
effort-driven.
2. Effort-driven scheduling means that as we add resourc es to a an effort-
driven task, the work is redistributed among all the resources to maintain
the same amount of work overall. Likewise, if we remove resources from
an effort-driven task then the work is redistributed among the remaining
resources, to maintain the same amount of work overall.
3. By default, tasks have fixed units and are effort-driven. This means that as
more resources are assigned to a task, there is less work to be done.
Adding resourc es reduces duration.
4. If we have a fixed-duration, effort-driven task then by assigning more
resources, reduces the overall amount of work to be done and also
reduces the overall duration of work.
5. Effort-driven scheduling only takes effe ct when resourc es are added to or
removed from a task.
6. Effort-driven calculation rules are not applied when you change work,
duration, and unit (units: The quantity of a resource assigned to a task)
values for resources already assigned to a task.
Scheduling techniques :
1. Task networks (activity networks) are graphic representations that can be
of the task interdependencies and can help define a rough schedule for
particular project Scheduling tools should be used to schedule any non-
trivial project.
2. PERT (program evaluation and review technique) and CPM (critical path
method) are quantitative techniques that allow software planners to
identify the chain of dependent tasks in the project work breakdown
structure that determine the project duration time.
3. Timeline (Gantt) charts enable software planners to determine what tasks
will be needed to be conducted at a given point in time (based on
estimates for effort, start time, and duration for each task).
4. Time-boxing is the practice of deciding in advance the fixed amount of
time that can be spent on each task. When the task's time limit is
exceeded, development moves on to the next task (with the hope that a
majority of the critical work was completed before time ran out).
CHAPTER 05
PROJECT TESTING & PROJECT SUCCESS
Verification :- Its the process of determining whether the product is built in a right
manner or not. There are two categories of verification :- a) Life-cycle
verification and b) Formal verification.
i) Life-Cycle verification :- It’s the process of determining the degree to
which the work products of a given ph ase of the development cycle fulfill
the specifications established during prior phases.
ii) Formal verification :- It’s a rigorous mathematical demonstration that
whether the source code conforms to the specification.
Validation :- It’s the process of evaluation of the software at the end of the
software development process to determine compliance with the requirements.
In other words it’s the process of determining whether the corre ct product is built
or not.
Verification and validation involve the assessment of work products to determine
conformance to the specifications. Specifications include – a) Requirements
specification, b) The design documentation, c) Various stylistic guidelines, d)
Implementation language standards, d) Project standards, e) Organizational
stand ards, and f)User expectations.
Software Testing:
1. Testing is a major quality control measure used during softw are
development. Its basic function is to detect defects in the software.
2. Testing not only has to uncover errors introduced during coding, but also
errors introduced during the previous phases. Thus, the goal of testing is to
uncover requirement, design, and coding errors in the programs.
Testing Objectives :
1. Testing is a process of executing a program with the intent of finding an
error.
2. A good test case is one that has a high probability of finding an error that
was not discovered yet.
3. A successful test is one that uncovers all the errors as well as those errors
that were not discovered earlier.
determine the causes of failure and the manner in which the failure has
taken place. It shows the strength and weaknesses of the system.
4. Functional test (Black-Box testing) :- They specify typical operating
conditions, typical input values, and typical expected results. These tests
should be designed to test boundary conditions just inside & just beyond
the boundaries.
This kind of testing focuses on the functional aspects of the softw are. This
type of testing is carried out in the later stages of the entire testing
procedure. It enables the software engineer to derive sets of input
conditions that will fully exercise all the functional aspects of the software.
Black-box testing can be used to find out the following errors:
Interfac e errors.
Missing or incorre ct functions.
Performance errors.
Initialization & termination errors.
Errors in data structures
Equivalence Partitioning:
1) It’s a type of Black-box testing. In equivalence partitioning a test case is
defined (based on various observations) that discovers a various
categories(“classes”) of errors which reduces the number of test cases to
be developed for encountering the errors.
2) In this method various “ equivalence classes” are evaluated for an input
condition. An equivalence class represents a set of valid or invalid states
for input condition. Usually an input condition can be any of the following
:-
i ) A specific numeric value.
ii ) A range of values.
iii ) A set of related values.
iv ) A Boolean condition.
Regression Testing:
1. Each time a new module is added as part of integration process, the
software changes. These changes may cause problems with functions
that previously worked flawlessly. Regression testing is the re-execution of
some subset of tests that have already been conducted to ensure that
changes have not propagated unintended side effects.
2. Regression testing may be conducted manually, by re-executing a subset
of all test cases to ensure that the new integration is flawless.
3. Following are the basic levels of tests performed during regression testing:
Unit Testing:
1. Unit testing focuses on the smallest unit of softw are design i.e. the softw are
component or module. Using the component-level design description as a
guide, important control paths are tested to uncover errors within the
boundary of the module.
2. The unit test is white-box oriented.
3. Selective testing of execution paths is an essential task during the unit test.
4. Boundary testing is the last and one of the most important tasks of the unit
test.
Integration Testing :
1. Integration testing is a systematic technique for constructing the program
structure while at the same time conducting tests to uncover errors
associated with interfacing.
2. The objective is to take unit tested components and build a program
structure strictly as per design.
3. The program is constructed and tested in small increments, where errors
are easier to isolate and correct.
Validation Testing:
1. Validation succeeds when software functions in a manner as expected by
the customer.
2. The SRS (Software Requirement Specification) contains a section called
Validation Criteria. Information contained in that section forms the basis
for a validation testing approach.
3. Following are the parts of Validation testing:
System Testing:
1. System testing is actually a series of different tests whose primary purpose
is to fully exercise the computer-based system. All the tests are done to
verify that system elements have b een properly integrated and perform
allocated functions.
2. Recovery testing is a system test that forces the softw are to fail in a variety
of ways and verifies that recovery is properly performed.
3. Security testing attempts to verify that prot ection mechanisms built into a
system will, in fact, protect it from improper penetration.
4. Stress testing executes a system in a manner that demands resources in
abnormal quantity, frequency, or volume and observes how much stress
the system can handle.
Debugging:
1. Debugging occurs as a consequenc e of succ essful testing. That is, when a
test case uncovers an error, debugging is the process that results in the
removal of the error.
2. Three categories for debugging approaches may be proposed:
(1) Brute force, (2) Backtracking, and (3) Cause elimination.
(1) The Brute Force category of debugging is probably the most common
and least efficient method for isolating the cause of a softw are error.
Using a "let the computer find the error" philosophy, memory dumps
are taken, run-time traces are invoked, and the program is loaded with
WRITE statements. We hope that somewhere we may find a clue that
can lead us to the cause of an error.
(2) Backtracking is a fairly common debugging approach that can be
used successfully in small programs. Beginning at the site where a
symptom has been uncovered, the sourc e code is traced backward
(manually) until the the cause is found.
(3) In Cause Elimination a list of all possible causes is developed and tests
are conducted to eliminate each. If initial tests indicate any positive
clue finding then the process is continued further to reach to the cause
of the bug.
Decision Making:
i. Decisions often arise in response to new information, and the initial way
the issue is raised focuses on the acute and narrow aspects of the
problem. So, the first thing is to ask probing questions and get down to the
real decision that needs to be made.
ii. A big decision, such as the direction of the vision or the technology to use,
will impact the entire project. If it's a long-term decision, and the impact is
deep, patience and rigor are required. It's best to make big decisions
early on or in a given phase of a project, so they can be made with
patient thought and consideration, instead of when time is running out.
iii. A small decision, such as what time to have a meeting or what the
agenda should be, will impact a small number of people in a limited way.
If it's a short-term decision with shallow impact, go for speed and clarity,
based on a clear sense of the strategic decisions made in the vision.
iv. For aspects of projects such as usability or reliability, quality comes from
many small decisions being aligned with each other.
v. If you wait too long to make the decision, routes will close and all options
will go away eventually. Sometimes, you have to make tough strategic
decisions quickly because of the limited window of opportunity you have.
And sometimes, the speed of making a decision is more important than
the quality of the decision itself.
vi. When we have no experience in taking decision related to any particular
situation then it is better to take outside support and learn from the
experience, rather than taking a wrong decision.
vii. There are political costs to decisions that have nothing to do with
technology, business, or customer considerations, and the impact of a
decision includes them. A seemingly trivial (small) decision can become
complex when the politics and desires of stakeholders and partner
organizations come into play.
viii. The decision maker needs to check periodically to make sure that the
decision is understood properly and is being carried out properly.
ix. Use the lessons learnt from pervious projects while taking decisions in the
present project.
Resource leveling:
It is the process of smoothing out people’s planned workloads to a realistic level.
There are three steps in leveling resources:
1. Assign specific people to activities:
a. By assigning the most experienced person to maximize your
chances of succ ess.
b. If the company requires you to treat part of the project as a
training exercise then assign an inexperienced person in order to
expand the company’s base of skilled people.
2. Determine percent availabilities for each person:
Action Items:
1. All projects are the result of ac tions, and actions are carried out by
individuals.
2. It is hard enough to get people to do work that is assigned to them.
3. There are two types of work to assign:
a. project activities and
b. action items.
4. Like project activities, an action item is a piece of work that is given to one
or two people to be done by a specified date.
5. Action items are generally small, but they have the ability to cripple a
project.
6. As soon as the issue is raised, the project manager must create an action
item.
7. The project manager may assign the action item to the team member, or
the technology architect, or a programmer or may do it by himself. It does
not matter who handles it. The only things that matter is that somebody
does it and that we make note of it so that we can follow up on that
matter.
8. Action items arise from:
a. Un documented Assumptions.
b. Doubts.
c. Unplanned Tasks.
d. Questions.
e. Requests.
f. Self-Thoughts.
Micro-planning:
1. Micro-planning is no different from normal planning. We decompose
activities, determine dependencies, and level resources. The difference is
only in the scale and degree of formality.
2. Micro-planning is not a replacement for regular planning. We are zooming
in to a small part of the project plan , transforming the scale of planning
from months or weeks to days or hours.
3. We Keep micro-planning informal. So we use hand-drawn schedules, or a
daily activity list on a word processor or on an excel sheet.
4. We track a micro-plan the same way you track a normal project plan.
However, just as the scale of a Micro-plan is of few days or hours, so is the
frequency of its status reporting.
5. Micro-planning should not be done frequently and if done should be
done when any critical situation is to be tackled.
projects and industry averages). This rate should slow down as the project
progresses, so that far more defects are found at the beginning of
software testing than at the end. If this metric remains constant or is
increasing over the course of several test iterations, it could mean that
there are serious scope or requirements problems, or that the
programmers did not fully understand what the softw are was supposed to
do.
3. The Defect Resolution Rate tracks the time taken to resolve defects, from
the time that they are identified. This can be used to predict release dates
by calculating the amount of time required to solve the remaining
problems presently in the project.
4. Defect Age is used to measure how effective the review and inspection
process is. A defect that was introduced in the scope or requirements
phase but not discovered until testing is far more costly to fix than if it
would have been caught in early phases. So the mean defect age should
be as low as possible.
5. The Percentage of Engineering Effort metric compares how softw are effort
(in man-hours) and actual calendar time break down into project phases.
These two measurements will be useful in determining where additional
training, staff, or process improvement is needed. This metric measures the
average number of man-hours spent in each project phase. A project
manager can use this measurement to gauge whether the effort is being
used efficiently over the course of the project schedule.
6. Defect Density measures the number of defects per KLOC (thousand lines
of code). It is often used to determine whether the softw are is ready for
release. A test plan may have a maximum defect density listed in the
acceptance criteria, which requires that the software should not contain
any critical or high-priority defects, and contain less than a specific
number of low-priority defects per KLOC.
Best of Luck