Personal software process: Difference between revisions

Content deleted Content added
CS1 error
 
(18 intermediate revisions by 16 users not shown)
Line 1:
{{Short description|Process to improve programming quality}}
{{More footnotes needed|date=August 2023}}
{{Software development process}}
[[File:PSP_Task_Overview_form_(image).png|thumb|Image of a PSP Task Overview form.]]
The '''Personal Software Process''' ('''PSP''') is a structured [[software development]] process that is intended (planned)designed to help [[software engineer]]s better understand and improve their performance by bringing discipline to the way they develop software and tracking their predicted and actual development of the code. It clearly shows developers how to manage the quality of their products, how to make a sound plan, and how to make commitments. It also offers them the data to justify their plans. They can evaluate their work and suggest improvement direction by analyzing and reviewing development time, defects, and size data. The PSP was created by [[Watts Humphrey]] to apply the underlying principles of the [[Software Engineering Institute]]'s (SEI) [[Capability Maturity Model]] (CMM) to the software development practices of a single developer. It claims to give software engineers the process skills necessary to work on a [[team software process]] (TSP) team.
 
"Personal Software Process" and "'''PSP'''" are registered [[service mark]]s of the [[CMU Common Lisp|Carnegie Mellon University]].<ref name=":0" /><ref>{{cite web| url=http://www.sei.cmu.edu/legal/ | title=Terms of Use | publisher=[[Software Engineering Institute]], [[Carnegie Mellon University]] | ___location=USA | accessdateaccess-date=14 January 2013 }}</ref>
 
==Objectives==
Line 13 ⟶ 16:
 
==PSP structure==
PSP training follows an evolutionary improvement approach: an engineer learning to integrate the PSP into his or her process begins at the first level – PSP0 – and progresses in process maturity to the final level – PSP2.1. Each Level has detailed scripts, checklists and templates to guide the engineer through required steps and helps the engineer improve hertheir own personal software process. Humphrey encourages proficient engineers to customize these scripts and templates as they gain an understanding of their own strengths and weaknesses.
 
;Process
Line 20 ⟶ 23:
;PSP0, PSP0.1 (Introduces process discipline and measurement)
PSP0 has 3 phases: planning, development (design, code, compile, test) and a post mortem.
A baseline is established offor current process measuring: time spent on programming, faults injected/removed, and size of a program.
In a post mortem, the engineer ensures all data for the projects has been properly recorded and analysed.
PSP0.1 advances the process by adding a coding standard, a size measurement and the development of a personal process improvement plan (PIP). In the PIP, the engineer records ideas for improving his own process.
Line 90 ⟶ 93:
In practice, PSP skills are used in a TSP team environment. TSP teams consist of PSP-trained developers who volunteer for areas of project responsibility, so the project is managed by the team itself. Using personal data gathered using their PSP skills; the team makes the plans, the estimates, and controls the quality.
 
Using PSP process methods can help TSP teams to meet their schedule commitments and produce high quality software. For example, according to research by Watts Humphrey, a third of all software projects fail,<ref>Humphrey, Watts S. "Why Big Software Projects Fail: The 12 Key Questions." CrossTalk Mar. 2005 http://www.crosstalkonline.org/storage/issue-archives/2005/200503/200503-Humphrey.pdf {{Webarchive|url=https://web.archive.org/web/20191105150756/http://www.crosstalkonline.org/storage/issue-archives/2005/200503/200503-Humphrey.pdf |date=2019-11-05 }}</ref> but an SEI study on 20 TSP projects in 13 different organizations found that TSP teams missed their target schedules by an average of only six percent.<ref>Davis, Noopur, and Julia Mullaney. The Team Software Process SM (TSP SM) in Practice: A Summary of Recent Results. Pittsburgh, PA: Software Engineering Institute, Sept. 2003.</ref>
 
Successfully meeting schedule commitments can be attributed to using historical data to make more accurate estimates, so projects are based on realistic plans – and by using PSP quality methods, they produce low-defect software, which reduces time spent on removing defects in later phases, such as integration and acceptance testing.
Line 124 ⟶ 127:
==Certification==
A certification covering PSP is offered by the SEI at Carnegie Mellon University. The steps to becoming an SEI-Certified PSP Developer are: learn the PSP; take the certification exam; maintain credentials.
The PSP Developer examination is based on concepts found in the PSP Body of Knowledge.<ref name=PSP-BOKv2>{{cite book|last1=Pomeroy-Huff|first1=Marsha|last2=Cannon|first2=Robert|last3=Chick|first3=Timothy A.|last4=Mullaney|first4=Julia|last5=Nichols|first5=William|title=The Personal Software Process (PSP) Body of Knowledge, Version 2.0|date=2009|publisher=[[Software Engineering Institute]], [[Carnegie Mellon University]]|___location=Pittsburgh, Pennsylvania|url=http://resources.sei.cmu.edu/asset_files/SpecialReport/2009_003_001_15029.pdf|accessdateaccess-date=17 November 2014}} Freely downloadable Special Report CMU/SEI-2009-SR-018, 2009</ref> The SEI maintains an [[FAQ]]<ref name=":0">{{cite web | title=SEI-Certified PSP Developer: Frequently Asked Questions | work=[http://www.sei.cmu.edu/training/ SEI Training] | publisher=[[Software Engineering Institute]], [[Carnegie Mellon University]] | ___location=Pittsburgh, Pennsylvania | url=http://seicertification.clearmodel.com/get-certified/software-development/become-an-sei-certified-psp-developer/sei-certified-psp-developer-frequently-asked-questions/ | accessdateaccess-date=17 November 2014 | deadurlurl-status=yesdead | archiveurlarchive-url=https://web.archive.org/web/20141129020408/http://seicertification.clearmodel.com/get-certified/software-development/become-an-sei-certified-psp-developer/sei-certified-psp-developer-frequently-asked-questions/ | archivedatearchive-date=29 November 2014 | df= }}</ref> on certification.
 
==See also==
Line 136 ⟶ 139:
 
==References==
<references />
{{reflist}}
 
==Further reading==
Line 148 ⟶ 151:
 
==External links==
* [http://www.processdash.com/ Software Process Dashboard], Open-source ([[GPL3]]) PSP and TSP tool; offered both [[Classless Inter-Domain Routing|without]] and with proprietary SEI scripts, latter requiring free SEI registration.
 
[[Category:Software development process]]