Crystal-perhe

Crystal on Alistair Cockburnin esittelemä menetelmägeneraattori, joka pyrkii tarjoamaan hyvin laajan joukon välineitä, joiden avulla voidaan muodostaa sopiva menetelmä hyvin erityyppisiin projekteihin. Kaikkia näin generoituja menetelmiä yhdistää yhteinen "geeniperimä", joka koostuu:

  • Ajatuksesta, että  "sovelluskehitys on sosiaalinen peli, joka vaatii tiivistä yhteistyötä kaikkien osapuolten välillä"
  • Joukosta tärkeitä tekijöitä ja periaatteita päätösten teon tueksi
  • Joukosta ominaisuuksia, joita tavoitella
  • Esimerkinomaisia strategioita ja käytänteitä
  • Referenssinomaisia toteutuksia, kuten Crystal Clear ja Crystal Orange.

Menetelmistössä on kaksi akselia: kehitystiimin koko ja projektin kriittisyys. Projektiin osallistuvien henkilöiden lukumäärä vaikuttaa siihen, millaisia käytäntöjä on mielekästä noudattaa. Tiedon jakautuminen kaikille tiimiläisille vaikeutuu huomattavasti tiimikoon kasvaessa. Tällöin kommunikointimenetelmiin on kiinnitettävä erityistä huomiota. Toisaalta, mikäli projektin tuloksena syntyy erittäin kriittinen järjestelmä (vaikkapa avaruussukkulan hallintajärjestelmä tai ydinvoimalan käyttöjärjestelmä), on projektin laadunvarmistukseen panostettava huomattavasti enemmän. Nämä akselit muodostavat menetelmämatriisin, josta löytyy sopivat käytännöt kaiken tyyppisille projekteille.

Crystal-perheen menetelmät on nimetty eri värisävyillä tiimin koko -akselin mukaan. Kevyin on Crystal Clear, ja sitä seuraavat yellow, orange, red, maroon, jne. Clear on näistä parhaiten dokumentoitu ja kattava kuvaus menetelmästä löytyy kirjasta Crystal Clear - human powered methodology for small teams. Orange-versiota on hieman sivuttu kirjassa Surviving object-oriented projects.

Matriisin pystyakseli kuvaa projektin kriittisyyttä - sitä, millaista vahinkoa projekti saa epäonnistuessaan aikaan:

  • C = Mukavuuden heikkenemistä (loss of Comfort)
  • D = Rahan menetys (loss of Discretionary money)
  • E = Merkittäviä taloudellisia menetyksiä (loss of Essential money)
  • L = Ihmishenkien menetyksiä (loss of Life)