Personal software process: Difference between revisions

Content deleted Content added
No edit summary
CS1 error
 
(40 intermediate revisions by 36 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" , [[Shubham]] 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 histheir own personal software process. Humphrey encourages proficient engineers to customisecustomize these scripts and templates as they gain an understanding of their own strengths and weaknesses.
 
;Process
Line 19 ⟶ 22:
 
;PSP0, PSP0.1 (Introduces process discipline and measurement)
PSP0 has 3 phases: planning, development (design, codingcode, 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 104 ⟶ 107:
* Make plans and process improvements.
 
Both Agile and the TSP/PSP share the idea of team members taking responsibility for their own work and working together to agree on a realistic plan, creating an environment of trust and accountability. However, the TSP/PSP differs from Agile in its emphasis on documenting the process and its use of data for predicting and defining project schedules.
 
===Quality===
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 maintainmaintains aan [[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 | url-status=dead | archive-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/ | archive-date=29 November 2014 }}</ref> on certification.
 
==See also==
Line 136 ⟶ 139:
 
==References==
<references />
{{reflist}}
 
==Further reading==
* "Using a defined and measured Personal Software Process" by [[Watts Humphrey|Watts S. Humphrey]], published in ''[[IEEE Software]]'', May 1996, pages 77–88.
* [http://www.sei.cmu.edu/library/abstracts/books/0321305493.cfm PSP: A Self-Improvement Process for Software Engineers], 2005.
* [httphttps://www.amazon.com/Delivering-Successful-Projects-TSP-Sigma/dp/1420061437 Delivering Successful Projects with TSP(SM) and Six Sigma: A Practical Guide to Implementing Team Software Process], Mukesh Jain, 2008.
*"Delivering Successful Projects With Challenges of New Teams" by Mukesh Jain (http://www.sei.cmu.edu/tspsymposium/2009/2006/deliver.pdf), September 2006.
*Software Engineering: A Practitioner's Approach 7th Edition. Roger S Pressman. McGraw-Hill Higher Education. 2009. {{ISBN |0-07-337597-7}}, {{ISBN |978-0-07-337597-7}}, pages 57–58.
* [http://www.sei.cmu.edu/library/abstracts/reports/09sr018.cfm "The Personal Software Process (PSP) Body of Knowledge"] article from the [[Software Engineering Institute]] at [[Carnegie Mellon]].
* [http://www.methodsandtools.com/archive/archive.php?id=60 "Personal Quality Management with the Personal Software Process"] article.
 
==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]]