Personal Software Process

**Personal Software Process** (**PSP**, ) on keskeisessä osassa Watts Humphreyn kehittämässä koulutusohjelmassa, joka tähtää ohjelmistokehittäjien ammattitaidon parantamiseen. PSP voi viitata yleisterminä työtapoihin, joita kukin ohjelmistokehittäjä käyttää omassa työssään, vaikka ne eivät olisikaan millään lailla suunniteltuja tai dokumentoituja. Usein PSP kuitenkin viittaa tiettyyn Humphreyn kehittämään työtapojen kokonaisuuteen, jonka opettelun ja harjoituksiin soveltamisen on tarkoitus auttaa ohjelmistokehittäjää ymmärtämään, miksi hänen tulisi järjestelmällisesti seurata ja kehittää omia työtapojaan.

## Tausta
PSP syntyi Humphreyn ideasta soveltaa ohjelmistotalojen käyttöön suunnitellun CMM-kypsyysmallin periaatteita myös yksilötasolla. Hän lähtee oletuksesta, jonka mukaan ohjelmistojen laadun parantaminen edellyttää yrityksen tasolla toimivien prosessien kehittämisen lisäksi, että ohjelmistokehittäjät päämäärätietoisesti kehittävät kukin omaa ammattitaitoaan myös heidän itsekseen tekemiensä työtehtävien tasolla. CMM-mallia mukaillen hän myös olettaa, että tämä ei onnistu, elleivät ohjelmistokehittäjät jotenkin pysty seuraamaan omaa kehittymistään.

PSP-koulutusohjelmassa ohjelmistokehittäjät aluksi mittaavat suoriutumisensa suunnittelu- ja ohjelmointitehtävässä nykyisillä työtavoillaan. Tämän jälkeen he ottavat asteittain käyttöönsä Humphreyn kehittämät järjestelmälliset työtavat ja mittarit ja harjoittelevat niitä pienimuotoisissa ohjelmistokehitysharjoituksissa. Lopuksi he vertaavat suoriutumistaan alkuperäisillä työtavoillaan ja uusilla järjestelmällisillä työtavoilla. Opetellut järjestelmälliset työtavat toimivat pohjana, kun ohjelmistokehittäjät tämän jälkeen lähtevät kehittämään heille itselleen parhaiten sopivia työtapoja. Koulutusohjelma on mahdollista suorittaa itseopiskeluna, yliopistokurssina  tai, mikäli henkilö haluaa sertifikaatin, kaupallisella kurssilla.

## Hyödyt
Humphreyn mukaan järjestelmällisiä työtapoja käyttävä ohjelmistokehittäjä tai ohjelmistokehitystiimi:
* Pystyy laatimaan tarkempia suunnitelmia ja sitoutumaan niihin
* Tuottaa virheettömämpiä ohjelmistoja
* Suoriutuu tehtävistään nopeammin

Microsoft on soveltanut PSP:tä ja sen päälle rakentuvaa Team Software Processia (TSP) Intian ohjelmistokehitysyksikössään. Kuuden kuukauden kuluessa PSP:n ja TSP:n käyttöönotosta yli kaksi kolmasosaa projekteista toimitettiin virheettöminä ja 94 % projekteista valmistui ajallaan.

## Malliprosessi
PSP-koulutusohjelma etenee tasoittain, siten että jokainen taso lisää järjestelmällisyyttä ja mittareita:

; **PSP0** : Ohjelmistokehittäjän ennen koulutuksen alkua käyttämä, mahdollisesti täysin intuitioon perustuva ja määrittelemätön prosessi, täydennettynä tehtävään kuluvan ajan ja sen kuluessa havaittujen virheiden kirjaamisella.
; PSP0.1 : Kuten PSP0, mutta täydennettynä tyylioppaan (koodausstandardin) käyttöönotolla, tuotetun ohjelman koon mittaamisella ja henkilökohtaisen kehittymissuunnitelman laatimisella.
; **PSP1** : Lisää ohjelman koon arvioimisen ennen sen kirjoittamista ja testausraportin laatimisen.
; PSP1.1 : Lisää järjestelmälliset ja edellisissä vaiheissa mitattuja tunnuslukuja hyödyntävät menetelmät tehtävien ja aikataulun suunnitteluun.
; **PSP2** : Lisää suunnitelman ja ohjelmakoodin katselmoinnit.
; PSP2.1 : Lisää menetelmiä suunnitelman dokumentointiin ja analysointiin.
; **TSP** : TSP eli Team Software Process tarjoaa mallin, miten PSP:n hallitsevat ohjelmistokehittäjät voivat toimia tehokkaasti tiiminä.

## Katso myös
* Ketterät menetelmät
* Six Sigma
* Capability Maturity Model

## Lähteet
* 

### Viitteet

## Aiheesta muualla
* Team Software Process