Transcript Document

Personal Software Process
(PSP)
By Vivek Gupta
1
Scope of the Presentation
• Historical Background on the Personal Software Process
• Overview of the Personal Software Process
• The components of the Personal Software Process
– The PSP Process Structure
– The PSP Evolution
– The PSP Reports
•
•
•
•
•
•
The benefits of the Personal Software Process
When to use / When to avoid using the PSP
Implementation success factors / challenges
Key players/products/gurus
Market data / forecasts
References and Questions
2
Historical Background on the PSP -1
• Capability Maturity Model (CMM) for software was
introduced in 1987
• After he led the initial development of the CMM for
software, Watts Humphrey decided to apply CMM
principles to writing small programs.
• Many people had been asking how to apply the CMM to
small organizations or to the work of small software teams.
• The Software Engineering Institute (SEI) made Humphrey
an SEI fellow in April 1989, enabling him to spend full
time on the PSP research.
3
Historical Background on the PSP -2
• Humphrey next wrote a textbook manuscript that he
provided to several associates who planned to teach PSP
courses.
• In September 1993, Howie Dow taught the first PSP
course to four graduate students at the University of
Massachusetts.
• Humphrey also taught the PSP course during the winter
semester of 1993-1994 at Carnegie Mellon University, as
did Nazim Madhavji at McGill University and Soheil
Khajanoori at Embry Riddle Aeronautical University.
4
Historical Background on the PSP -3
• Humphrey revised the PSP textbook manuscript and
published the final version in late 1994.
• At about the same time, Jim Over and Neil Reizer of the
SEI and Robert Powels of Advanced Information Services
(AIS) developed the first course to train instructors to
teach the PSP in industry.
• Watts Humphrey and the SEI have continued working on
PSP development and introduction by applying the same
principles to the work of engineering teams. This work is
called the Team Software Process.
5
Overview of the PSP -1
• The Personal Software Process is a framework of
techniques to help engineers improve their performance,
and that of their organizations, through a step-by-step,
disciplined approach to measuring and analyzing their
work.
• It provides detailed estimating and planning methods,
shows engineers how to track their performance against
these plans, and explains how defined processes can guide
their work.
• The Personal Software Process shows software engineers
how to apply advanced engineering methods to their daily
tasks.
6
Overview of the PSP -2
• The Personal Software Process has been developed by the
SEI to address the need for process improvement in small
organizations and small project teams. This work started
from the premise that improved personal process discipline
can help to increase the effectiveness of individual
engineers.
• The Personal Software Process brings discipline to the
practices of individual software engineers, dramatically
improving the quality, predictability, and cycle time for
software-intensive systems.
7
Overview of the PSP -3
• The PSP design is based on the following planning and
quality principles
– Every engineer is different; to be most effective,
engineers must plan their work and they must base their
plans on their own personal data.
– To consistently improve their performance, engineers
must personally use well-defined and measured
processes.
– To produce quality products, engineers must feel
personally responsible for the quality of their products.
Superior products are not produced by mistake;
engineers must strive to do quality work
8
Overview of the PSP -4
• The PSP design is based on the following planning and
quality principles (continued)
– It costs less to find and fix defects earlier in a process
than later.
– It is more efficient to prevent defects than to find and
fix them.
– The right way is always the fastest and cheapest way to
do a job.
9
The PSP Process Structure -1
• Refer Figure 1 for conceptual diagram.
• There is a planning script that guides this work and a plan
summary for recording the planning data.
• While the engineers are following the script to do the
work, they record their time and defect data on the time
and defect logs.
• At the end of the job, during the postmortem phase (PM),
they summarize the time and defect data from the logs,
measure the program size, and enter these data in the plan
summary form.
• When done, they deliver the finished product along with
the completed plan summary form.
10
The PSP Process Structure -2
• Since the PSP process has a number of methods that are
not generally practiced by engineers, the PSP methods are
introduced in a series of seven process versions.
• These versions are labeled PSP0 through PSP3, and each
version has a similar set of logs, forms, scripts, and
standards.
• The process scripts define the steps for each part of the
process, the logs and forms provide templates for
recording and storing data, and the standards guide the
engineers as they do the work.
11
The PSP Evolution -1
• The PSP has a maturity structure much like the CMM.
• Different numbers were selected for the PSP levels to
avoid confusion with the CMM levels.
• The PSP process is enhanced through the following seven
process versions.
–
–
–
–
PSP0 and PSP0.1
PSP1 and PSP1.1
PSP2 and PSP2.1
PSP3
• Refer Figure 2.
12
The PSP Evolution -2
• The PSP0 process is a simple defined personal process.
• In using PSP0, your principal objective is to gather and
report accurate and complete data on your work.
• Here, you use your current design and development
methods and gather data on your work by calculating the
time spent by phase and defects found in compile and test.
13
The PSP Evolution -3
• PSP0 is enhanced to PSP0.1 by adding a coding standard,
size measurement, and the process improvement proposal
(PIP).
• The Coding and Lines of Code (LOC) standard is tailored
to your language and needs.
• The PIP is used to record process improvement ideas and
is also used to record findings and comments on each
project. Program size is calculated before development,
after development and to date.
14
The PSP Evolution -4
• PSP1 adds size estimating and planning steps to PSP0.
• The basic methodology the PSP uses to estimate the
projects size is called PROBE (PROxy Base Estimating).
• The test report is to report test plans and results and is
helpful for later regression testing.
• LOC/hour, size estimating calculations and actual size
estimates are added to the Project plan summary.
15
The PSP Evolution -5
• In PSP1.1, schedule planning and status tracking are
introduced.
• The PSP is augmented to include resource estimating and
schedule estimating.
• The cost performance index and reuse data is added to the
project plan summary.
16
The PSP Evolution -6
• PSP2 adds code reviews and design reviews.
• Design and code reviews effectively improve the quality of
your programs and save development time.
• To do effective reviews, you must establish review goals,
follow a disciplined review process, measure and improve
your process quality.
• The most effective way to manage defects is with the
individual software engineer.
17
The PSP Evolution -7
• PSP 2.1 addresses the design process.
• In PSP2.1, design completeness criteria are established and
various design verification and consistency techniques are
examined.
• Another refinement at level 2.1 is the use of Design
Templates for capturing the design in a systematic fashion.
• The four design templates used in the PSP are logic
specification template, state specification template,
functional specification template and operational scenario
template.
• Additional representations are also acceptable.
18
The PSP Evolution -8
• The cyclic PSP provides a framework for using a cyclic
development strategy to develop modest to large sized
programs.
• The approach is to subdivide larger programs into PSP2.1
sized pieces. Then, these larger programs are designed so
that they can be developed in incremental steps. The first
build is a base module or kernel that is enhanced in
iterative cycles. A complete PSP2.1 is used, including
design, code, compile, and test in each iteration. Since each
enhancement builds on the previously completed
increments, the PSP3 process is suitable for programs of
up to several thousand lines of code (KLOC).
19
The PSP Reports
• It is recommended that the PSP results be analyzed every
few months into a report.
• The aims of these reports are
– To identify problem areas for further improvement.
– Track PSP parameters like LOC/hr and defect rates for
signs of improvement and stability.
– Alter and adjust the PSP to incorporate improvements
as captured by the process improvement proposal (PIP)
forms.
20
The benefits of the PSP -1
• The Personal Software Process has been shown to
substantially improve the estimating and planning ability
of engineers while significantly reducing the defects in
their products.
• The PSP process provides you with an insight, as you will
better understand your strengths and weaknesses and will
be better able to maximize your assets.
• The PSP process gives you ideas as by defining your
process, you assert control over it. You will unconsciously
observe your working self and will see many ways to
improve your process and your performance.
21
The benefits of the PSP -2
• The PSP process gives you an improvement framework as
a defined process provides a language for thinking about
your work. You can better see how the process parts relate
and can better focus on priority areas for improvement.
• The PSP process gives you personal control, as you will
have a planning framework and you will have the data on
which to base your plans. Your plans will be more reliable.
You will be better able to track your status and will be
better able to manage your work.
22
The benefits of the PSP -3
• The PSP process shows your accomplishments and
personal bests. You will recognize your personal bests and
will better understand how to repeat and to surpass them.
• You will see where and how you have improved.
23
When to use / When to avoid using
the PSP -1
• There are costs associated with using the PSP. You should
use PSP when you are ready to pay for these costs.
• One needs to invest in time as process development takes
about 1 to 2 hours per form and script, process updates will
be needed at least every 3 months. Data entry and analysis
will take about an hour for each PSP-sized project.
• One would also need to make an emotional investment as
the PSP takes a lot of work, there will be occasional
frustrations and you will clearly see your limitations.
• You should use PSP if you seek personal excellence.
24
When to use / When to avoid using
the PSP -2
• You may want to avoid using PSP when you are the only
person using PSP in the organization.
• It is hard to maintain personal discipline without the
support of peers and managers. Your peers may even kid
you for wasting your time with PSP.
• It is easy to get discouraged by a slow rate of personal
progress.
• If you are not confident that PSP helps you, it will be hard
to withstand such criticism, as normal statistical
fluctuations will seem like major disasters and instead of
learning from your mistakes you may get defensive about
them.
25
When to use / When to avoid using
the PSP -3
• You may or may not want to avoid using PSP when you
are part of the lone PSP team and your team has been
trained in the PSP.
• You will have a powerful base of support.
• Other groups may critique your results and argue that they
already do better work.
• If your results are superior, others may feel defensive.
• Be careful not to seem critical of other peoples work and
do not imply that your results apply to them. Suggest they
try the PSP for themselves.
26
When to use / When to avoid using
the PSP -4
• In using the PSP, you may face resistance.
• You need to find out if you have a supportive environment
and whether your management agrees with your interest in
personal improvement.
• Your PSP efforts will be most rewarding when your
management and your teammates share your interests and
objectives.
27
Implementation success factors /
challenges -1
• Introducing PSP into an organization is challenging
because you are initiating a change in the personal work
habits of your engineers.
• The following strategy is recommended, which includes
SEI support during the initial introduction of PSP.
• The tasks in this introduction plan address the training and
support needs of the executives, managers, and engineers
who will be involved in the initial introduction.
• The plan includes tasks to establish an internal training and
support capability and to then transition the responsibility
for training and support to the organization.
28
Implementation success factors /
challenges -2
• The introduction strategy that forms the basis of the plan is
consistent with SEI's Capability Maturity Model for
Software as they are applied to organizational process
improvement.
• The introduction strategy is to conduct two to four pilot
projects, gain experience with it, show early results, then
expand it to the organization in a measured way.
29
Implementation success factors /
challenges -3
• The strategy involves these steps:
– SEI conducts an executive training/kickoff session on
the PSP and the TSP.
– SEI works with the organization to select an overall
approach to identify managers, engineers, and teams
that will participate, select pilot projects, and develop a
schedule for introducing PSP and TSP.
– SEI trains the managers, engineers, support staff
involved in the pilot projects, and one or more PSP
instructors.
30
Implementation success factors /
challenges -4
• The strategy involves these steps (continued):
– Working with SEI, a team of engineers, managers, and
the organization's software engineering process group
(SEPG) make any adjustments necessary to integrate
the PSP/TSP with the organizational processes.
– With SEI support, two to four pilot project teams
implement the PSP using the TSP framework. Data and
lessons learned are gathered and evaluated.
– Working with SEI, the organization develops a plan to
complete the transition to practice and begins the
implementation of this plan.
31
Key players/products/gurus -1
• There is no doubt that Watts S. Humphrey is the guru for
the Personal Software Process.
• Watts S. Humphrey has written a number of books and
papers on the PSP.
• Watts S. Humphrey has also taught the PSP in universities
and is the leading expert in the PSP.
• I also noticed that there were numerous PSP experts who
taught at various universities.
32
Key players/products/gurus -2
• Some universities offering PSP courses are
– Carnegie Mellon University
– DePaul University
– University of Southern California
– Seattle University
– Technical University of British Columbia
– University of Karlsruhe
– Software Quality Institute (SQI) in Australia.
33
Key players/products/gurus -3
• The Carnegie Mellon University in Pittsburgh and the
Software Engineering Institute are the leading players in
the PSP and offer a wide range of products and services,
which include courses, events, publications, repositories,
and videotapes.
• The Software Engineering Institute is a federally funded
research and development center sponsored by the U.S.
Department of Defense through the Office of the Under
Secretary of Defense for Acquisition, Technology, and
Logistics [OUSD (AT&L)].
34
Key players/products/gurus -4
• The www.processimprovements.com website is a vendor
to provide SEI-authorized PSP training.
• The www.socraticarts.com website offers a PSP course.
• Advanced Information Inc. offers a 2-week PSP course for
$3600.
• Other organizations offering training are Software
Technology Support Center, Advanced Maturity Services,
Ambient Consulting, Centro de Investigacion en
Matematicas, Davis Systems, Defense Logistics Agency
and Center for Development of Advanced Computing (CDAC) in India.
35
Market data / forecasts -1
• In the future, software engineering groups will increasingly
be required to deliver quality products on time, and for
their planned costs.
• Guaranteed reliability and service levels, warranted
security, and contract performance penalties will be normal
and engineering staffs that cannot meet such commitments
will not survive.
• The PSP is designed to provide the disciplined practices
software professionals will need in the future.
36
Market data / forecasts -2
• While some industrial organizations are introducing these
methods, broader introduction of disciplined methods must
start in universities.
• Academic introduction of the PSP is currently supported
with courses at both introductory and advanced levels.
• Several universities in the U.S., Europe, Australia and Asia
now offer the PSP. The SEI, in conjunction with various
universities, also supports a one-week summer workshop
for faculties who teach or wish to teach the PSP.
37
Market data / forecasts -3
• Industrial PSP introduction is also supported by the SEI
with a PSP course for engineers and instructors.
• This course is offered several times a year in a condensed
format tailored to industrial needs.
• The SEI also qualifies PSP instructors to assist
organizations in introducing the PSP and it maintains a
registry of qualified PSP instructors.
38
Market data / forecasts -4
• While the PSP is relatively new, the early results are
promising.
• Both industrial use and academic adoption are increasing.
• Assuming that these trends continue, the future should see
a closer integration of the PSP, TSP, and CMM methods
and a closer coupling of the PSP academic courses with the
broader computer science and software engineering
curricula.
• I visualize rapid growth of the PSP in the academic world
while moderate growth of the PSP could be expected in the
industry within the next 3 years.
39
References -1
• Special Topics in the Personal Software Process by
Thomas E. Potak, Ph.D.
– This class is based on Watt's Humphrey's book "A
Discipline for Software Engineering."
– August 2001
– http://www.csm.ornl.gov/~v8q/Homepage/Class/PSP/p
ersonal_software_process.htm
• The Personal Software Process by Watts S. Humphrey
– September 1994
– http://www.sweforum.net/process/psp1.pdf
40
References -2
• Introducing Personal Software Process and Team Software
Process into an Organization by Carnegie Mellon
University
– 30 May 2003
– http://www.sei.cmu.edu/tsp/introducing.html
• The Personal Software Process by Watts S. Humphrey
– November 2000
– http://www.sei.cmu.edu/publications/documents/00.rep
orts/00tr022.html
41
References -3
• Web page on Personal Software Process (PSP) Resources
by www.processimprovement.com
– http://www.processimprovement.com/resources/PSP.ht
m
• Introduction to the Personal Software Process by Watts S.
Humphrey
– November 2002
– ISBN 0-201-54809-7
42
References -4
• Introducing Personal Software Process and Team Software
Process into an Organization by Carnegie Mellon
University.
– 30 May 2003
– http://www.sei.cmu.edu/tsp/recommended-reading.html
• Building High Performance Teams Using Team Software
Process and Personal Software Process by Carnegie
Mellon University.
– 30 May 2003
– http://www.sei.cmu.edu/tsp/psp.html
43
Any Questions?
Thank You
44