Ohjelmistoprojektin hallinta tarkoittaa laajuuden, ihmisten, aikataulujen ja toimituksen pitämistä linjassa, usein samalla kun kaikki ympärilläsi muuttuu. Kokemukseni mukaan useimmat projektit eivät epäonnistu siksi, ettei tiimi osaisi koodata. Ne epäonnistuvat, koska vaatimukset muuttuvat, riippuvuuksia jää huomaamatta ja sidosryhmät saavat tietää asioista vasta liian myöhään.
Tämä opas käy läpi ohjelmiston toimituksen kaikki vaiheet: laajuuden määrittelystä ja menetelmän valinnasta riskien käsittelyyn, edistymisen seurantaan ja luottavaisin mielin julkaisemiseen. Oikea projektinhallintaohjelmisto vaikuttaa tässä merkittävästi. Tämän artikkelin lopussa sinulla on käytännöllinen etenemissuunnitelma, jonka voit ottaa heti käyttöön.
Mitä ohjelmistoprojektien hallinta todella pitää sisällään
Ohjelmistoprojektien hallinta tarkoittaa laajuuden, ihmisten, aikataulujen ja laadun pitämistä linjassa ensimmäisestä aloituspalaverista viimeiseen käyttöönottoon asti. Ohjelmistoprojekteista tekee erityisen haastavia niiden liikkuvat osat, ei niinkään koodi. Vaatimukset muuttuvat kesken sprintin. Riippuvuudet tulevat esiin myöhään. Sidosryhmät eivät ole samaa mieltä prioriteeteista. Tiimit työskentelevät eri aikavyöhykkeillä ja eri osaamisalueilla.
Jokainen ohjelmistoprojekti etenee menetelmästä riippumatta viiden elinkaarivaiheen läpi:
- Aloitus: Määrittele ongelma, tunnista sidosryhmät ja varmista yhteisymmärrys siitä, kannattaako projekti toteuttaa.
- Suunnittelu: Rajaa työ, arvioi työmäärä, määritä roolit ja aseta välitavoitteet.
- Toteutus: Rakenna tuote. Tässä tapahtuu suurin osa päivittäisestä projektinhallinnastasi.
- Seuranta: Seuraa edistymistä suhteessa suunnitelmaan ja puutu poikkeamiin ennen kuin ne kasaantuvat.
- Toimitus: Julkaise, luovuta ja vakauta.
Tehokas projektin työnkulun hallinta auttaa tiimejä ymmärtämään, miten työ etenee suunnittelusta kehitykseen, testaukseen, hyväksyntään ja toimitukseen.
Mikä tekee ohjelmistosta erilaisen muihin projekteihin verrattuna
Ohjelmistoprojekteilla on muutamia erityispiirteitä, joita yleiset projektinhallintaohjeet eivät huomioi. Ensinnäkin tuote on näkymätön, kunnes se ei enää ole sitä – toisin sanoen et voi kiertää työtilassa katsomassa, miltä 60 prosenttia ominaisuudesta näyttää. Toiseksi varhain tehdyt tekniset päätökset rajoittavat myöhempiä vaihtoehtoja tavoilla, jotka eivät aina ole muille kuin insinööreille ilmeisiä. Kolmanneksi työn tekevä tiimi myös usein arvioi sen työmäärän, mikä aiheuttaa vinoumaa.
Projektipäällikkö, joka ymmärtää tämän, toimii eri tavalla. Et vain seuraa tehtäviä, vaan tuot esiin esteet, käännät tekniset kompromissit sidosryhmille ymmärrettävään muotoon ja luot insinööreille edellytykset tehdä parhaansa.
Valitse projektiisi sopiva menetelmä
Menetelmäsi vaikuttaa kaikkeen: siihen, miten työ rajataan, miten tiimit tekevät yhteistyötä ja miten reagoit muutoksiin. Yhtä kaikille sopivaa oikeaa valintaa ei ole, mutta omaan tilanteeseesi löytyy oikea valinta.
Valitsemasi ketterän toteutuksen tyyppi… riippuu tuotteesi ja organisaatiosi riippuvuuksien ja keskinäisriippuvuuksien monimutkaisuudesta sekä tiimiesi koosta.
Vertaa tilanteesi tähän taulukkoon löytääksesi oikean lähestymistavan:
| Menetelmä | Sopii parhaiten | Huomioi nämä |
|---|---|---|
| Scrum | Monialaiset tiimit, jotka rakentavat iteratiivisesti ja julkaisevat usein | Seremonioiden aiheuttama ylimääräinen työ hyvin pienissä tiimeissä |
| Kanban | Jatkuva työ ilman kiinteitä sprinttejä (tuki, ylläpito ja kunnossapito) | Rytmin puuttuminen, jos keskeneräisen työn rajoja ei noudateta |
| Vesiputous | Kiinteän laajuuden projektit, joissa vaatimukset ovat vakaat (vaatimustenmukaisuus, infrastruktuuri) | Vaatimusten yhteensopimattomuuden myöhäinen havaitseminen |
| SAFe / skaalattu ketterä kehitys | Suuret organisaatiot, jotka koordinoivat useita ketteriä tiimejä | Monimutkaisuus ja prosessien aiheuttama ylimääräinen työ |
| Hybridi | Projektit, joilla on kiinteä toimituspäivä mutta kehittyvä laajuus | Epäselvyys, jos tiimin toimintatapoja ei ole määritelty selkeästi |
Ketterät projektit menestyvät yleensä vesiputousprojekteja paremmin, mutta menetelmä ei ole koko totuus. PMI:n tuore tutkimus viittaa siihen, että onnistuminen riippuu vähemmän yhden menetelmän valitsemisesta ja enemmän siitä, kuinka hyvin tiimit mukauttavat menetelmän työhönsä.
Sovella ketterän menetelmän rituaaleja ilman sen periaatteita, ja päivittäisistä tilannepalavereista tulee tilannekatsauksia ja sprinteistä pieniä vesiputousprojekteja.
Varoittaisin myös vaihtamasta menetelmää kesken projektin, ellei jokin ole aidosti rikki. Häiriöstä saatava hyöty jää harvoin sen aiheuttamaa haittaa suuremmaksi.
Kokoa oikea tiimi ja selkeytä vastuut
Tutkimuksissa on jo pitkään yhdistetty puutteelliset vaatimukset kalliiseen projektin uudelleentyöhön. Oman kokemukseni mukaan epäselvät vastuut voivat kuitenkin olla yhtä turhauttavia. Kun kukaan ei tiedä, kuka tekee lopullisen päätöksen, kaikki odottavat – tai mikä pahempaa, tekevät päätöksiä erikseen.
Aloita kartoittamalla projektisi todellisuudessa tarvitsemat roolit:
- Projektipäällikkö (PM): Vastaa projektin toimituksesta – aikatauluista, riskeistä, viestinnästä ja sidosryhmien yhteensovittamisesta.
- Tekninen päällikkö (EM) tai tekninen vetäjä: Vastaa teknisestä laadusta ja teknisen työn toteutuksesta.
- Tuotepäällikkö: Vastaa siitä, mitä tehdään ja miksi – vaatimuksista, priorisoinnista ja käyttäjille tuotettavista tuloksista.
- Kehittäjät: Vastaavat toteutuksesta sovitun laajuuden puitteissa.
- Laadunvarmistusinsinöörit: Vastaavat testaussuunnitelmasta ja laadunvarmistuksen porttikriteereistä.
- Suunnittelijat: Vastaavat käyttäjäkokemuksesta ja visuaalisesta lopputuloksesta, ja heidän olisi ihanteellisesti oltava mukana jo ennen kehityksen aloittamista.
- Sidosryhmät: Vastaavat liiketoimintatuloksesta ja tekevät lopulliset päätökset merkittävistä kompromisseista.
Käytä vastuuviitekehystä heti alusta alkaen
RACI- tai DACI-viitekehys tekee vastuut selkeiksi ennen kuin aukkoja ehtii syntyä. RACI (Vastuullinen, vastuussa oleva, konsultoitu, tiedotettu) toimii hyvin tehtävien toteutuksessa. DACI (Ohjaaja, hyväksyjä, osallistujat, tiedotettu) sopii paremmin päätöksentekoon. Suosittelisin käyttämään molempia suuremmissa projekteissa: RACI:tä työn hallintaan ja DACI:tä päätöksiin, jotka voisivat väärin tehtyinä suistaa projektin raiteiltaan.
Dokumentoi tämä projektisuunnitelmaan ja jaa se aloituskokouksessa. Kun ihmiset tietävät, miten päätökset tehdään, he lakkaavat odottamasta lupaa edetä.
Löydä ohjelmistoprojektillesi sopiva projektinhallintatyökalu
Ennen alustan valitsemista kannattaa pohtia eri tapoja, joilla voit käyttää projektinhallintaohjelmistoa, sekä sitä, mitä ominaisuuksia tiimisi todella tarvitsee – tehtävien osoittamisesta ja aikataulutuksesta raportointiin ja yhteistyöhön.
10 Parhaat projektinhallintaohjelmistot: suositukset
Projektin saaminen onnistuneesti maaliin edellyttää usein oikeiden työkalujen löytämistä tehtävään. Tässä ovat parhaat suositukseni ohjelmistoprojektien hallintatyökaluiksi.
Clicks on the links below may earn a commission, which supports our independent testing and review of software and services. Learn more about how we stay transparent.
Oikeankin tiimin ja alustan kanssa voi olla vaikeaa saada kaikki käyttämään sitä johdonmukaisesti. Ymmärtämällä, miksi projektinhallintaohjelmistoa on vaikea käyttää tehokkaasti, voit ennakoida käyttöönoton ongelmat ennen kuin ne häiritsevät projektin toteutusta.
Määrittele laajuus, vaatimukset ja onnistumiskriteerit
Laajuus on perusta, jonka varaan koko projekti rakentuu. Jos määrittelet sen väärin, kaikki myöhempi kärsii. Esimerkiksi arvioiden mennessä pieleen sidosryhmät eivät ole samalla kannalla ja tiimi toimittaa väärän ratkaisun.
Influential PMO:n perustaja ja Projektipäälliköksi tulemista käsittelevän kirjan kirjoittaja Stuart Taylor kertoo tarinan, joka toimii tässä hyvänä tosielämän esimerkkinä. Asiakasvalituksiin vastaamiseen tarkoitetun tekstiviestivastauksen rakentamista koskevan projektin vaatimuksia ei koskaan dokumentoitu eikä hyväksytetty. Sitten lopputestauksen aikana ohjausryhmän jäsen esitti kysymyksen, joka suisti koko hankkeen raiteiltaan.
Sai sen lähes valmiiksi, ja he olivat tekemässä viimeisiä testejä, kun joku ohjausryhmässä mainitsi: ”Entä mitä tapahtuu, kun asiakas vastaa siihen?”
Hän jatkaa:
Eikä kukaan ollut sanonut sitä ääneen ennen projektin kahta viimeistä viikkoa.
Aloita projektinhallinnan keskeisistä periaatteista, jotka ohjaavat laajuuden määrittelyä, vastuiden jakamista, riskien hallintaa ja onnistumisen mittaamista.
Aloita seuraavaksi sidosryhmien haastatteluista. Kysy, miltä onnistuminen näyttää, mikä ei kuulu laajuuteen ja mitkä päätökset on jo tehty. Kirjoita sen jälkeen vaatimusasiakirja, joka kattaa seuraavat asiat:
- Liiketoimintavaatimukset: Minkä ongelman ratkaisemme ja kenelle?
- Toiminnalliset vaatimukset: Mitä järjestelmän on tehtävä?
- Ei-toiminnalliset vaatimukset: Suorituskykyä, tietoturvaa, saavutettavuutta ja skaalautuvuutta koskevat rajoitteet.
- Laajuuden ulkopuolelle jäävät asiat: Mitä tässä julkaisussa ei rakenneta.
Aseta mitattavat onnistumiskriteerit
”Parempi kassakokemus” ei ole onnistumiskriteeri. ”Vähennä ostoskorin hylkäämistä 15 prosentilla 60 päivän kuluessa julkaisusta” on. Määrittele keskeiset suorituskykymittarisi ennen kuin kukaan kirjoittaa riviäkään koodia. Tämä on tärkeämpää kuin useimmat tiimit ymmärtävät, ja lisäksi se selkeyttää, mitä oikeastaan olette rakentamassa.
Estä laajuuden hallitsematon kasvaminen ajoissa
Laajuuden hallitsematon kasvaminen, muuttuvat vaatimukset ja resurssirajoitteet ovat yleisiä projektinhallinnan haasteita, joita on helpompi käsitellä, kun tunnistat varoitusmerkit ajoissa.
Laajuuden hallitsematon kasvaminen alkaa harvoin dramaattisesta vaatimuksesta. Se ilmenee pienenä lisäyksenä Slack-keskustelussa, tehtävään kirjoitettuna ”kun kerran olemme tässä” -kommenttina tai sidosryhmän oletuksena, jota ei koskaan kyseenalaistettu.
Taylor puhuu oletusten kyseenalaistamisen tärkeydestä tässä vaiheessa.
Ajattele niitä kertoja, kun vastoin parempaa harkintaasi sinut kiirehdittiin eteenpäin ja sinut ohitettiin organisaation vaikutusvaltaisten äänten ja ihmisten toimesta, joille et oikeastaan tuntenut pystyväsi sanomaan ei.
Kyseenalaista se silti.
Luo alusta alkaen kevyt muutostenhallintatapa: jokainen uusi pyyntö arvioidaan nykyiseen laajuuteen, aikatauluun ja resursseihin nähden ennen kuin se lisätään työjonoon. Käsittelen tätä yksityiskohtaisesti jäljempänä muutostenhallintaa käsittelevässä osiossa.
Suunnittele työ: arviointi, välitavoitteet ja budjetti
Suunnittelu antaa projektille rungon. Ilman sitä toteutus on vain järjestäytynyttä kaaosta.
Jaa työ välitavoitteisiin ja sprintteihin
Aloita ylemmältä tasolta. Tunnista tärkeimmät välitavoitteet – merkitykselliset hetket, jolloin jokin on selvästi valmis. Jaa sitten kukin välitavoite sprintin kokoisiin kokonaisuuksiin, jotka tiimisi pystyy toteuttamaan yhden tai kahden viikon aikana. Näin saat luonnollisen palautesilmukan ilman, että joudut odottamaan projektin loppuun saadaksesi selville olevasi jäljessä.
Tee arviot rehellisesti
Mikään arviointimenetelmä ei ole täydellinen, mutta jotkin sopivat ohjelmistoihin paremmin kuin toiset. Tässä menetelmiä, joiden olen nähnyt toimivan:
- Tarinapisteet suunnittelupokerilla: Hyvä suhteelliseen koon arviointiin ketterissä tiimeissä, mutta hyödyllinen vain, jos tiimi kalibroi arviot johdonmukaisesti.
- T-paitakokoluokitus: Nopea menetelmä laajuudesta keskustelemiseen sidosryhmien kanssa varhaisessa vaiheessa.
- Kolmen pisteen arviointi: Arvioi parhaat, huonoimmat ja todennäköisimmät tapaukset ja laske sitten keskiarvo. Rehellisempi kuin yhteen arvioon perustuvat arvaukset.
- Vertailuluokkaennustaminen: Vertaa arviotasi siihen, kuinka kauan vastaavan aiemman työn tekeminen todellisuudessa kesti. Tiimit aliarvioivat ajan jatkuvasti, koska ne perustavat arvionsa ihanteellisiin olosuhteisiin.
Budjetoi kokonaisuus
Ohjelmistoprojektien budjeteissa on yleensä otettava huomioon:
- Henkilöstön työaika (kehittäjät, QA, suunnittelu, PM, EM)
- Työkalut, lisenssit ja infrastruktuuri
- Kolmansien osapuolten integraatiot tai API:t
- Testausympäristöt
- Varaa tuntemattomille tekijöille (suosittelen vähintään 15–20 %:a)
Lisää aikatauluusi pelivaraa ennen kuin esittelet sen sidosryhmille. Aikataulussa etuajassa pysyminen on paljon helpompaa kuin myöhästyneen määräajan uudelleenneuvotteleminen.
Järjestä vahva aloitus ja sovi yhteistyön toimintamallista
Aloituskokous on ennen kaikkea hetki, jolloin rakennetaan yhteinen ymmärrys ja sovitaan, miten tiimi työskentelee yhdessä – ei vain muodollisuus. Heikosti toteutettu aloitus tarkoittaa, että käytät seuraavat kuusi sprinttiä vastaamalla uudelleen kysymyksiin, jotka olisi pitänyt ratkaista ensimmäisenä päivänä.
Mitä aloituksessa käsitellään
Käykää nämä asiat läpi ensimmäisessä koko tiimin kokouksessa:
- Projektin tarkoitus ja tavoitteet: Miksi tämä on olemassa ja miltä onnistuminen näyttää?
- Roolit ja vastuut: Kuka tekee mitä ja kuka päättää mistäkin.
- Laajuus ja rajaukset: Mitä projektiin kuuluu, mitä ei kuulu ja miten laajuuden muutoksia käsitellään.
- Virstanpylväät ja tärkeät päivämäärät: Korkean tason aikataulu, johon kaikki voivat suhteuttaa työnsä.
- Yhteiset toimintatavat: Kokousten rytmi, vastausaikaodotukset ja eskalointireitit.
Sopikaa käytettävistä työkaluista ja ensisijaisista tietolähteistä
Tarvitsette yhden paikan, jossa projektia hallitaan. Suosittelen projektikeskusta Notionissa, Confluencessa tai vastaavassa työkalussa. Paikkaa, jossa säilytetään projektikuvaus, tiekartta, avoimet päätökset ja kokousmuistiinpanot. Sen jälkeen ottakaa käyttöön toteutusta tukevat työkalut:
- Jira tai Linear tehtävien seurantaan ja sprinttien hallintaan.
- Slack tai Teams asynkroniseen viestintään (selkeällä kanavarakenteella).
- Figma suunnittelun siirtämiseen toteutukseen.
- GitHub tai GitLab koodia ja pull request -katselmointeja varten.
Työkalulla ei ole yhtä paljon merkitystä kuin yhteisellä sopimuksella. Dokumentoi toimintatapasi ja pidä tiimi niistä kiinni.
Viestikää varhain, usein ja oikealle yleisölle
Viestintä on alue, jolla useimmat projektit menevät hiljalleen pieleen. Ongelma ei ole siinä, etteivät tiimit puhuisi keskenään, vaan siinä, että ne puhuvat väärille ihmisille, väärällä tiheydellä ja väärän yksityiskohtaisella tasolla.
Dokumentoi, mikä toimi, missä tiimi kohtasi viivästyksiä ja mitkä digitaalisen projektinhallinnan parhaat käytännöt kannattaa ottaa mukaan seuraavaan projektiin.
Sovita viesti yleisön mukaan
Insinöörit tarvitsevat kontekstia ja selkeyttä siihen, mitä seuraavaksi rakennetaan. Johtajien on tiedettävä, eteneekö projekti suunnitelman mukaan ja onko heidän tehtävä päätöksiä. Väliin jäävät sidosryhmät tarvitsevat riittävästi tietoa voidakseen antaa hyödyllistä palautetta eksymättä toteutuksen yksityiskohtiin.
Suosittelen viestintärytmiä, joka voisi näyttää esimerkiksi tältä:
- Päivittäiset tilannepalaverit: 15 minuuttia, hajautetuissa tiimeissä ensisijaisesti asynkronisesti. Käykää läpi, mitä on tehty, mitä seuraavaksi tehdään ja mikä estää etenemistä.
- Viikoittainen tilannekatsaus: Sidosryhmille lähetettävä kirjallinen yhteenveto edistymisestä, riskeistä ja tarvittavista päätöksistä.
- Kahden viikon välein järjestettävät demot: Esitelkää toimivaa ohjelmistoa sidosryhmille. Tämä on nopein tapa havaita yhteisen näkemyksen puute.
- Kuukausittainen johtoryhmän yhteenveto: Yksi sivu, kolme osiota: Missä olemme, mihin olemme menossa ja mitä tarvitsemme.
Mitä kannattaa välttää
Älä anna tilannepalavereiden muuttua kokouksiksi, joissa kaikki raportoivat projektipäällikölle. Älä lähetä sähköposteja, joiden ymmärtäminen edellyttää kokousta. Äläkä säästä huonoja uutisia muodolliseen tilannekatsaukseen – nosta ongelmat esiin heti, kun ne ovat selviä, älä vasta silloin, kun ne ovat jo aiheuttaneet vahinkoa.
Tee päätökset nopeasti ja läpinäkyvästi
Hitaat päätökset ovat yksi huomaamattomimmista projektien tuhoajista. Kun tiimi ei tiedä, kuka voi hyväksyä päätöksen, työ pysähtyy, kiertoteitä rakennetaan ja päätös syntyy oletusarvoisesti suunnitelmallisen päätöksen sijaan.
Käytä päätöksentekomallia
Tehtävätason vastuunjakoon RACI toimii hyvin. Merkittävissä projektipäätöksissä, kuten arkkitehtuurivalinnoissa, laajuuden karsimisessa ja aikataulun pidentämisessä, suosin DACI-mallia:
- Vastuuhenkilö: Henkilö, joka vie päätöstä eteenpäin.
- Hyväksyjä: Henkilö, jolla on lopullinen päätösvalta.
- Osallistujat: Henkilöt, joiden panosta tarvitaan.
- Tiedotettavat: Henkilöt, joiden on tiedettävä lopputulos.
Määritä DACI jokaiselle merkittävälle päätöstyypille ennen toteutuksen aloittamista. Et halua perjantaina kello 16 selvittää, kuka hyväksyy laajuuden karsimisen.
Pidä päätöslokia
Päätösloki on yksinkertainen asiakirja, johon kirjataan, mitä päätettiin, kuka päätöksen teki ja miksi. Tämä kuulostaa byrokraattiselta, mutta siitä on hyötyä heti, kun sidosryhmän edustaja kyseenalaistaa kolme sprinttiä sitten tehdyn päätöksen. Dokumentoi päätökset projektikeskukseen ja linkitä ne asiaankuuluviin tehtäviin tai virstanpylväisiin.
Tiedä, milloin asia on eskaloitava ja milloin päätös voidaan tehdä paikallisesti. Jos päätös vaikuttaa laajuuteen, budjettiin tai tiimisi ulkopuoliseen riippuvuuteen, eskaloi asia. Jos se koskee vain omaa työaluettasi, tee päätös ja jatka eteenpäin.
Hallitse riskejä, riippuvuuksia ja tiimien välistä koordinointia
Riskienhallinnassa ei ole kyse rekisterin laatimisesta ja sen unohtamisesta. Kyse on sen tunnistamisesta, mikä voisi mennä pieleen, päätöksestä siitä, mitä asialle tehdään, ja merkkien seuraamisesta riittävän ajoissa, jotta voidaan toimia.
Laadi riskirekisteri, jota todella käytetään
Aloita riskirekisteri suunnitteluvaiheessa, älä vasta ongelmien ilmaannuttua. Kirjaa jokaisesta riskistä:
- Mikä riski on
- Kuinka todennäköinen se on (pieni, keskisuuri, suuri)
- Mikä vaikutus riskin toteutumisella olisi
- Mitä teet riskin pienentämiseksi
- Kuka vastaa riskin pienentämisestä
Käy se läpi viikoittaisissa tilannekatsauksissa. Riskirekisteri, joka avataan vasta jonkin räjähtäessä käsiin, on vaatimustenmukaisuusasiakirja eikä hallintatyökalu.
Kartoita riippuvuutesi
Riippuvuudet ovat kohta, jossa projektit sotkeutuvat. Tunnista ennen toteutuksen aloittamista:
- Sisäiset riippuvuudet: Työ, jonka yhden tiimin jäsenen tai työalueen on saatava valmiiksi ennen kuin toinen voi aloittaa.
- Ulkoiset riippuvuudet: Projektisi ulkopuoliset tiimit tai toimittajat, joiden varaan lasket.
- Järjestelmäriippuvuudet: Kolmannen osapuolen rajapinnat, infrastruktuuri tai data, joihin toteutuksesi perustuu.
Varaa aikapuskureita ulkoisten riippuvuuksien ympärille. Kokemukseni mukaan ne ovat yleisin suunnittelemattomien viivästysten lähde, koska et hallitse toisen tiimin prioriteetteja.
Luo suhteita ennen kuin tarvitset niitä
Jos projektisi koskettaa toisen tiimin koodikantaa tai järjestelmiä, esittäydy ennen kuin tarvitset heiltä jotain. Nopea asynkroninen viesti projektin alussa vie paljon pidemmälle kuin kiireellinen viime hetken pyyntö lopussa.
Seuraa edistymistä ja raportoi tilanne rehellisesti
Edistymisen seuranta toimii vain, jos data on rehellistä ja näkyvillä. Koontinäyttö, joka näyttää aina vihreää, on huonompi kuin ettei koontinäyttöä olisi lainkaan. Se kertoo sidosryhmille kaiken olevan kunnossa, vaikka tiimi jää vähitellen jälkeen.
Valitse todellisuutta kuvaavat mittarit
Käytä näitä mittareita saadaksesi selkeän kuvan projektin tilasta:
- Suunniteltu ja toteutunut läpimeno: Saatteko valmiiksi sen työn, johon sitouduitte kussakin sprintissä?
- Virstanpylväiden saavuttamisaste: Valmistuvatko tärkeät tuotokset ajallaan?
- Avoimien estetekijöiden määrä: Kuinka monta aktiivista estetekijää tiimillä on, ja kuinka vanhoja ne ovat?
- Virheaste: Kuinka monta virhettä löydetään laadunvarmistuksessa verrattuna tuotantoympäristöön?
- Sidosryhmien tyytyväisyys: Yksinkertainen tilannekysely esittelyjen tai tärkeiden virstanpylväiden jälkeen.
Raportoi huonot uutiset nopeasti
Kun projekti on myöhässä, kerro se. Anna sidosryhmille selkeä kuva: mikä viivästyi, miksi se viivästyi ja mitä vaihtoehtoja on. Kukaan ei pidä huonojen uutisten kuulemisesta. Yllätyksistä pidetään kuitenkin vielä vähemmän.
Hyvä tilannepäivitys koostuu kolmesta osasta: tässä olemme nyt, tämä muuttui edellisen päivityksen jälkeen ja tätä tarvitsemme teiltä. Pidä päivitys tiiviinä ja kytke se virstanpylväisiin, jotka sidosryhmät jo tuntevat.
Sisällytä testaus, laatu ja teknisen velan hallinta
Laatu ei ole projektin lopussa oleva vaihe, vaan läpi projektin jatkuva käytäntö. Tiimit, jotka käsittelevät testausta viimeisenä porttina, julkaisevat hitaammin ja enemmän virheitä sisältäviä tuotteita kuin tiimit, jotka rakentavat laadun osaksi jokaista sprinttiä.
Määrittele ”valmis” ennen aloittamista
Ennen ensimmäisen sprintin alkamista sopikaa, mitä ”valmis” todella tarkoittaa. Vankka valmiin määritelmä sisältää yleensä seuraavat asiat:
- Koodi on tarkistettu ja yhdistetty
- Yksikkötestit on kirjoitettu ja ne läpäistään
- Integraatiotestit on läpäisty testiympäristössä
- QA on tarkistanut hyväksymiskriteerit
- Suorituskyvyn vertailuarvot täyttyvät
- Dokumentaatio on päivitetty
Ilman tätä ”valmis” tarkoittaa mitä tahansa kehittäjä sen kuvitteli tarkoittavan.
Testaa jokaisessa vaiheessa
Testaa varhain, testaa usein ja käytä mahdollisuuksien mukaan riippumattomia testaajia. Laadunvarmistusinsinöörit havaitsevat eri asioita kuin kehittäjät, koska he tarkastelevat tuotetta ulkopuolisen näkökulmasta. Automaattinen testaus käsittelee regressiot. Manuaalinen testaus tuo esiin käyttöliittymän ja käyttökokemuksen ongelmia, joita automaatio ei havaitse.
Varaa kapasiteettia tekniselle velalle
Keskimääräinen organisaatio tuhlaa teknisen velan vuoksi 23–42 % kehitysajasta (ja velka kasautuu jokaisessa sprintissä, jonka aikana jätät sen huomiotta).
Suosittelen varaamaan 15–20 % sprintin kapasiteetista velan vähentämiseen. Tämä tarkoittaa, että refaktorointityö aikataulutetaan nimenomaisesti sen sijaan, että vain toivotaan sen tulevan tehdyksi. Seuraa velkakohteita työjonossa samalla tavalla kuin seuraat ominaisuuksia. Kun sidosryhmät vastustavat ”ylläpitotyötä”, ilmaise asia toimitusnopeuden kautta: käsittelemätön velka hidastaa jokaista tulevaa sprinttiä.
Käsittele muutospyynnöt ja muuttuvat prioriteetit
Muutos on taattu jokaisessa ohjelmistoprojektissa. Tavoitteena ei ole estää sitä, vaan käsitellä se ilman, että se tuhoaa aikataulusi tai heikentää tiimisi keskittymistä.
Ota käyttöön kevyt muutoksenhallintaprosessi
Jokainen muutospyyntö tulisi arvioida nopeasti ennen sen lisäämistä työjonoon:
- Määrittele muutos: Mitä tarkalleen ottaen pyydetään?
- Arvioi vaikutus: Miten se vaikuttaa laajuuteen, aikatauluun ja resursseihin?
- Tunnista kompromissi: Mitä siirretään alemmalle prioriteetille tai lykätään, jos tämä lisätään?
- Hanki hyväksyntä oikealta sidosryhmältä: Käytä tässä DACI-mallia.
- Viestitä lopputulos: Kerro tiimille ja sidosryhmille, mitä päätettiin ja miksi.
Tämän ei tarvitse olla muodollinen muutoslomake. Slack-keskustelu, johon kirjataan päätös lokimerkintänä, riittää usein.
Suojaa tiimiä kontekstin vaihtamiselta
Tiheillä prioriteettien muutoksilla on todellinen hinta – ei ainoastaan menetetyn työn, vaan myös menetetyn keskittymisen muodossa. Kun johto muuttaa suuntaa kesken sprintin, oletuksena ei pitäisi olla uuden prioriteetin ottaminen nykyisten sitoumusten päälle. Tuo kompromissi selkeästi esiin: ”Voimme aloittaa X:n nyt, mutta Y siirtyy seuraavaan sprinttiin. Pitäisikö meidän edetä?” Tämä ei ole vastustamista, vaan läpinäkyvyyttä.
Jos muutos on aidosti kiireellinen, harkitse sprintin puolivälissä käytävää laajuusneuvottelua sen sijaan, että hylkäisit kaiken nykyisen työn. Suojaa vähintään osa tiimin kapasiteetista jo käynnissä olevan työn loppuun saattamiseen.
Suunnittele käyttöönotto, julkaisu ja julkaisun jälkeinen seuranta
Julkaisu ei ole niinkään maaliviiva kuin hetki, jolloin riski muuttuu todelliseksi. ”Yhdistä päähaaraan” -kohtaan päättyvä julkaisusuunnitelma sivuuttaa toimituksen merkittävimmän vaiheen.
Suunnittele vaiheittainen julkaisu
Jos asialla on merkittävä vaikutus käyttäjiin, suosittelen vaiheittaista käyttöönottoa suuren kertajulkaisun sijaan. Ominaisuuslipuilla voit tarjota uuden ominaisuuden ensin pienelle prosenttiosuudelle käyttäjistä ja saada todellista tietoa ennen täyttä käyttöönottoa. Jos jokin rikkoutuu 5 prosentin käyttöönoton aikana, vaikutusalue jää rajalliseksi.
Laadi palautussuunnitelma ennen käyttöönottoa. Tiedä tarkalleen, miltä ”peruuttaminen” näyttää, olipa kyse ominaisuuslipun vaihtamisesta, tietokannan palautuksesta tai korjauspäivityksen julkaisureitistä. Tiimit, jotka eivät suunnittele palautuksia etukäteen, joutuvat kiireessä improvisoimaan niitä tarvitessaan.
Seuraa julkaisun jälkeen
Määritä julkaisun jälkeinen seuranta-aika ennen julkaisua. Tarkkaile seuraavia:
- Virheiden määrän piikit: Poikkeusten tai epäonnistuneiden pyyntöjen epätavallinen lisääntyminen.
- Suorituskyvyn heikkeneminen: Muutokset vastausajassa tai käsittelykapasiteetissa.
- Käyttäjien toiminnan muutokset: Sitoutumisen tai konversion väheneminen vaikutuksen kohteena olevissa toiminnoissa.
- Tukipyyntöjen määrä: Aiheeseen liittyvien valitusten lisääntyminen.
Määritä hälytykset havainnointityökaluihisi – kuten Amazon CloudWatchiin, Datadogiin tai vastaavaan – ennen julkaisua, ei sen jälkeen.
Vie prosessi päätökseen jälkiarvioinnilla
Kun tilanne on rauhoittunut, järjestä jälkiarviointi koko tiimin kanssa. Käykää läpi, mikä onnistui, mikä ei onnistunut ja mitä tekisitte toisin. Dokumentoi tulokset ja palaa niihin seuraavan projektisi alussa. Nopeimmin kehittyvät tiimit ovat niitä, jotka suhtautuvat jokaiseen projektiin oppimiskierroksena eivätkä pelkkänä toimitustapahtumana.
Varaa hetki aikaa sen tunnustamiseen, mitä tiimi sai julkaistua. Sillä on suurempi merkitys kuin useimmat esihenkilöt ajattelevat.
Olet valmis johtamaan seuraavaa ohjelmistoprojektiasi
Kun prosessisi on vakiintunut, oikea projektinhallintaohjelmisto voi ratkaista sen, jääkö suunnitelma dokumenttiin vai työskenteleekö koko tiimisi tosiasiassa sen pohjalta – tämän oppaan avulla löydät työkalun, joka sopii tiimisi kokoon, työnkulkuun ja integraatioihin ennen seuraavan projektisi käynnistymistä.
