Tehtäviin liittyvä tarina

Funnydata on ohjelmistoyritys, joka tuottaa Susi-nimistä opintohallintojärjestelmä Helsingin aliopistolle. Sovellus on kohdannut monia ongelmia ja yritys on palkannut sinut selvittelemään tilannetta. Seuraavassa kuvaus Funnydatan toimintatavoista.

Yritys on jakanut ohjelmistokehittäjänsä kolmeen tiimiin: frontendtiimi huolehtii sovelluksen käyttöliittymän toiminnasta, backendtiimi palvelimilla pyörivästä sovelluslogiikasta ja DevOps-tiimin vastuulla on huolehtia palvelimien asennuksista ja ylläpidosta. Funnydata kehittää sovelluksia ketterästi käyttäen 3 kuukauden sprinttejä. Jokaisella tiimillä on oma tuotteenomistaja (Product owner), joka päättää mihin kukin tiimi keskittyy sprintin aikana.

Funnydatassa työskentely tapahtuu modernin tavan mukaan kokonaan etänä. Koodarit saavat toimeksiannot Jira-järjestelmään kirjoitettuina user storyinä. Kukin tiimi työskentelee oman backloginsa parissa. Koodareita suojellaan asiakkailta, ainoastaan product owner keskustelee asiakkaiden sekä loppukäyttäjien kanssa. Loppukäyttäjälle näkyvän toiminnallisuuden valmistumiseen kestää joskus aika kauan, sillä toiminnallisuus (esim. parhaillaan kehityksen alla oleva avoimen aliopiston kurssien ilmoittautumistoiminto) vaatii yleensä sitä, että jokainen tiimi tekee valmiiksi toimintoon liittyvät storynsä. Eri tiimien storyt pitää tehdä usein myös tietyssä järjestyksessä, esim. frontendtiimin on todella vaikea edetä jos backendtiimi ei ole jo tehnyt omaa saman toiminnallisuuden storyään valmiiksi jo edellisessä sprintissä. Kun jokin toiminnallisuus on vihdoin kokonaisuudessaan “valmis”, käy kuitenkin usein ilmi että koodarit ovat kuitenkin ymmärtäneet Jira-järjestelmään kirjoitetut user storyt hieman väärin ja toiminnallisuus ei vastaakaan sitä mitä loppukäyttäjä haluaa, tai että frontend- ja backendtiimit ovat toteuttaneet oman storynsä hieman epäyhteensopivalla tavalla ja kokonaisuus ei toimi. Aika usein syy on kuitenkin DevOps-tiimissä, vaikka toiminnallisuus on koodattu hyvin, ei DevOps-tiimi ole ehtinyt tai kyennyt viemään toiminnallisuutta tuotantoon. Joskus tuotantoonvienti tapahtuu vasta DevOps-tiimin jossain myöhemmässä sprintissä. Näin on erityisesti talvella, kun DevOps-tiimin innokkaaiden lumilautailijoiden fokus ei ole ihan täysillä työasioissa.

Aliopistomaailma on hyvin hektistä, ja se johtaa usein siihen, että Funnydatan tomitusjohtaja saa vihaista palautetta, joka johtaa suureen määrään pieniä bugitikettejä ja featuretoiveita, jotka tiimien on pakko suorittaa kesken menossa olevien sprinttien.

Tehtävä 1

Miten kehittäisit Funnydatan toimintaa Scrumia, Lean-periaatteita, kurssin osassa 5 käsiteltyjä laajan skaalan ketteriä menetelmiä sekä ketterän manifestin periaatteita noudattaen? Perustele jokainen kehitysehdotus.

Tehtävä 2

Miten kehittäisit Funnydatan sovellusten kehitystyön ja laadunhallinnan menetelmiä kurssilla esitettyjä periaatteita noudattaen? Perustele jokainen kehitysehdotuksesi.

Tehtävä 3

Seuraavassa on joukko väittämiä jotka saattavat olla totta tai väärin. Osa voi olla jopa yhtäaikaa totta ja epätotta. Kerro onko väittämä totta vai/ja epätotta ja anna asialle lyhyt perustelu. Muista myös kertoa, mistä jokaisen väittämän termeissä tai konsepteissa on kyse. Perustelemattomista vastauksista ei saa ollenkaan pisteitä.

  • Kahden eri ketterän tiimin kehitystyön etenemisnopeutta ei voi vertailla missään olosuhteissa
  • Jatkuva toimittaminen (Continuous deployment) on bugien kannalta riskialttiimpaa kuin harvoin, esim 4 kertaa vuodessa tapahtuva versiojulkaisu
  • Inkrementaalinen lähestymistapa tuottaa paremman arkkitehtuurin kuin vesiputousmallin hengessä tapahtuva tarkka etukäteissuunnittelu
  • Lean edellyttää että kaikki backlogin user storyt on määritelty niin tarkasti, että sovelluskehittäjä pystyy toteuttamaan storyn kysymättä keneltäkään neuvoa

Tehtävä 4

Ketterä manifesti luettelee 12 erilaista ketterää periaatetta. Tarkastellaan näistä kolmea:

  • Continuous attention to technical excellence and good design enhances agility
  • Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.
  • Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.

Kerro mitä näitä periaatteita tukevia prosesseja, suosituksia tai työkaluja kurssilla käsiteltiin. Perustele myös miksi esittelemäsi idea edistää kyseisen ketterän periaatteen hengen toteutumista.

Tehtävä 5

Mitä sisäisen laadun kannalta ongelmallisia asioita linkin takana olevassa esimerkkikoodin luokassa Kirjasto on?

Refaktoroi esimerkkikoodin luokka Kirjasto sisäiseltä laadultaan paremmaksi soveltaen suunnittelumalleja tai muita tilanteeseen sopivia ratkaisuja.