Prev Next Up Title Contents Index

Tavoitteet

Ohjelmistokehityksessä pyritään mahdollisimman tehokkaisiin, helppokäyttöisiin, monipuolisiin, luotettaviin, ymmärrettäviin, ylläpidettäviin ja muunneltaviin toteutuksiin. Laajamittaisessa ohjelmistotyössä nämä tavoitteet ovat hankalia saavuttaa, varsinkin kun helppokäyttöisyys, monipuolisuus ja tehokkuus yleensä johtavat ohjelmiston koon kasvuun, ja suuri koko puolestaan useimmiten lisää mutkikkuutta.

Onkin yleensä hyväksytty tosiasia, että laajemmissa ohjelmistoissa on aina virheitä tai epäilyttävästi virheitä muistuttavia 'piirteitä' (features), eli ohjelmistoon pesiytynyt sitkeä virhe onkin korjattu muuttamalla dokumentaatio vastaamaan ohjelmiston toimintaa. Ohjelmiston kriittiseksi kooksi sanotaan sitä rajaa, jonka jälkeen yhden virheen korjaaminen keskimäärin aiheuttaa ainakin yhden uuden virheen syntymisen. Näinollen kriittiselle rajalleen kasvaneen ohjelmiston virheitä ei kannata enää summassa ruveta korjailemaan, sillä uusia virheitä syntyy samaa tahtia. Pikemminkin on yritettävä jaotella virheet vakaviin ja vähemmän vakaviin virheisiin, ja pyrittävä ensisijaisesti korjaamaan ne, jotka todella estävät ohjelman käytön. Tällaisessa ympäristössä luonnonvalinta lopulta synnyttää virhepopulaation, joka on enimmäkseen vain hieman häiritsevä. Ohjelmiston kriittiseen kokoon vaikuttavat monet seikat kuten

Viimeksimainitusta kohdasta sanottakoon, että niin kauan kuin ohjelmistoa kykenee kehittämään ja ylläpitämään yksi ihminen, vaikkapa 100-tuntisia työviikkoja tehden, vältytään monilta ongelmilta projektin organisoinnissa, henkilöiden välisessä kommunikaatiossa ja yleensä rinnakkain tapahtuvan ohjelmakehityksen järjestämisessä. Suuremmissa organisaatioissa ei kuitenkaan yleensä ole hyväksyttävää, että kriittisen ohjelmiston kehitys on yhden ainoan henkilön varassa, sillä tämä saattaa yllättäen kuolla tai vaihtaa työpaikkaa.


Prev Next Up Title Contents Index