Personal Software Process

Personal Software Process (PSP, suom. henkilökohtainen ohjelmistoprosessi) 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 muokkaa

PSP syntyi Humphreyn ideasta soveltaa ohjelmistotalojen käyttöön suunnitellun CMM-kypsyysmallin periaatteita myös yksilötasolla.[1] 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 muokkaa

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.[2]

Malliprosessi muokkaa

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 muokkaa

Lähteet muokkaa

  • Watts S. Humphrey: PSP: A Self-Improvement Process for Software Engineers. Pearson Education, 2006. ISBN 0-321-30549-3.

Viitteet muokkaa

  1. TSP and CMMI: A Brief History sei.cmu.edu. Viitattu 14.10.2009.
  2. Mukesh Jain. Delivering Successful Projects with TSP and Six Sigma: A Practical Guide to Implementing Team Software Process. Auerbach Publications, November 2008.

Aiheesta muualla muokkaa