Surviving Object-Oriented Projects

Tämä kirja on vuodelta 1998, ajalta jolloin ketteryys nykyisenä käsitteenä oli vielä määrittelemättä (Ketterä manifesti luotiin v. 2001). Kirjoittaja Alistair Cockburn on kuitenkin yksi manifestin alkuperäisiä allekirjoittajia, joten ei ole ihme että kirja on täynnä hyvin tutunkaltaisia käsitteitä.

Vaikka kirjassa on paljon hyvää asiaa, se ehkä hieman kärsii fokuksen puutteesta. Tätä kirjaa ei oikein suoraan voi suositella ohjelmoijille (suuri osa sisällöstä on kuitenkin hallinnollista pohdintaa), mutta ei myöskään projektipäälliköille (kirjassa pohditaan olio-ohjelmoinnin filosofiaa). Toisaalta kirjassa on esiteltynä Crystal-menetelmistö, mutta toisaalta suuri osa sisällöstä käsittelee esimerkkiprojekteja ja niiden ongelmia. Ja kun kirjassa vielä esitellään joitain yleisiä strategioita, joita voi hyödyntää projekteissa, erilaisten projektien prototyyppejä ja mietitään kuinka uusia ohjelmoijia voi perehdyttää, saadaan melko sekava soppa sulateltavaksi.

Ehkä asiaa voisi kuitenkin ajatella niin, että tämän päivän ohjelmistokehitysprojektit vaativat juuri sellaisia moniosaajia, jotka hallitsevat kaikki nämä asiat. Ja siihenhän monet ketterät mallit tähtäävätkin: esim Scrumissa ei ole erikseen hallinnollisia ihmisiä, projektipäälliköitä ja ohjelmoijia. Sen sijaan on vain yksi tiimi, jonka on itsenäisesti selvittävä kaikista projektissa vastaan tulevista haasteista.

Kirjassa esiteltävä Crystal Orange on tarkoitettu projekteihin, joisa tiimin koko on 25-50 ihmistä. Tämän johdosta esiteltävä menetelmä alkaa jo olla melko raskas useine rooleineen ja työn välituloksineen.

Parasta antia on ehkäpä luvussa 4 esitetty pohdinta siitä, mitä todella tarkoittaa metodologia ja kuinka yksittäiseen projektiin muodostetaan siihen parhaiten sopiva menetelmä. Myös luvun 5 kuvaukset iteraatioiden ja inkrementtien välisestä suhteesta ovat selkeitä. Luvussa 3 on myös tehty muutamia tärkeitä havaintoja: projekteilla voi olla myös muita tarkoituksia, kuin varsinaisen tuotteen valmistuminen. Projekteja voidaan käyttää myös vain ihmisten kouluttamiseen tai uuden teknologian haltuunottoon ja projektin lopputuotteena ei ole vain koodia, vaan myös muuttunut liiketoimintaympäristö ja ehkä uusia toimintatapoja. Kenties projektissa oli tarkoitus vaan kokeilla uutta prosessimallia.

Ensimmäiseksi kirjaksi en tätä suosittelisi kenellekään, mutta jos olet kiinnostunut metodologioista ja menetelmien kehittämisestä, kyllä tällekin on syytä löytää paikka kirjahyllystä.

Sisältö:

  1. Success and Failure
    Basic Concepts
  2. Project Expectations
    Project Histories
    Possible Benefits of Object Technology
    Costs
    Nonobject Issues Checklist
  3. Selecting and Setting Up an OO Project
    Project Suitability
    Project Purpose
    People
    Technology
    Training and Getting Advice
    Legacy Issues
    Review
  4. Getting Started
    Methodology
    Estimates
    Plans
    Milestones
    Measurements
    Take the Time to Design
  5. Making Corrections
    A Study Project
    Managing Precision, Accuracy and Scale
    Increments and Iterations
    Project Increments
    User Involvement
    Project Teams
    Domain Modeling and Reuse
    Further Reading
  6. Advice from Hindsight
    Costs and Benefits Revisited
    Sentences You Hope Never to Hear
    More on Iterations
    Self-Test
  7. Expand to Larger Projects
    Your First Big Project
    Training the Tidal Wawe
    Productivity
    Migrating the Organization
  8. Rechecking: A Case Study
    Winifred Revisited
    Technology Is Only Part of the Story
  9. Appendix A: Collected Risk-Reduction Strategies
  10. Appendix B: Crib Sheet