440 likes | 718 Views
Personal Software Process (PSP). By Vivek Gupta. 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
E N D
Personal Software Process (PSP) By Vivek Gupta
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
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.
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.
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.
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.
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.
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
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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).
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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)].
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 (C-DAC) in India.
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.
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.
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.
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.
References -1 • Special Topics in the Personal Software Processby 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/personal_software_process.htm • The Personal Software Process by Watts S. Humphrey • September 1994 • http://www.sweforum.net/process/psp1.pdf
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.reports/00tr022.html
References -3 • Web page on Personal Software Process (PSP) Resources by www.processimprovement.com • http://www.processimprovement.com/resources/PSP.htm • Introduction to the Personal Software Process by Watts S. Humphrey • November 2002 • ISBN 0-201-54809-7
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
Any Questions? Thank You