Ohjelmistoprojekteista Datanomiopiskelijat 2.vuosi
Yleistä projekteista Projekti on selkeästi asetettuihin tavoitteisiin pyrkivä, ajallisesti rajattu kertaluonteinen hanke, jonka toteuttamisesta vastaa sovitty ryhmä tai organisaatio. Hyvän projektin tunnuspiirteitä ovat: Selkeät ja realistiset tavoitteet Yhdessä sovitut roolit, tehtävät, vastuut ja pelisäännöt Realistinen aikataulu Täsmällinen aloitus ja selkeä lopetus
Projektityöskentelystä Projektissa voi oppia: Vastuuta ja vapautta toteuttaa itseäsi Kokemusta itsesi ja tiimin jäsenten johtamisesta Kokemusta ryhmässä toimimisesta Ideoita ja työkaluja oman osaamisesi Projektityöskentely kehittää myös: Luovuutta Ongelmanratkaisutaitoja Ihmissuhde- ja vuorovaikutustaitoja Itse- ja ryhmäarviointitaitoja Epävarmuuden sitokykyä Kokonaisuuden hallintaa
Projektikaavioita, Gantt
Vesiputousmalli Tunnetuimpia perinteisen sovelluskehityksen menetelmistä Suoraviivainen malli, jossa panostetaan dokumentaatioon. Perustuu olettamukseen, että koko järjestelmä voidaan määritellä yksityiskohtaisesti jo alussa Vaatimukset > yksityiskohtainen suunnittelu jne. Raskas ja melko kankea menetelmä Edistymisen seuranta helppoa, joskin yllätykset hankalia ja työläitä
Vesiputousmalli jatkoa Esitetään usein 5-7-vaiheisena. Klassinen versio jo vuonna 1970 (Royce), muutoksia malliin jatkokehittäjien toimesta (Boehm).
Vesiputousmallin ongelmia Vaatimusmäärittelyt vievät paljon aikaa eikä vaatimusten oikeellisuudesta ja tarpeellisuudesta ole alussa varmaa tietoa. Sovelluksen esittäminen asiakkaalle tapahtuu pitkän ajan jälkeen Onko vaatimukset ymmärretty oikein? Onko tilanne kentällä muuttunut projektin aikana? Tehtiikö oikeita asioita? Tarpeen ja vaatimusten muuttuminen tarkoittaa alusta alkamista
Ketterät menetelmät Ketterissä menetelmissä pyritään saamaan mahdollisimman pian jotain konkreettista nähtäväksi ja arvioitavaksi: Toimivaa koodia Ketterissä sovelluskehitysmenetelmissä painotetaan asiakasyhteistyötä sopimusneuvottelujen sijaan. Ketteryys on joustavuutta ja nopeaa mukautumista muutoksiin.
Agile manifesto 2001: Neljä arvoa Arvostamme: Yksilöitä ja vuorovaikutusta enemmän kuin prosesseja ja työkaluja. Toimivaa sovellusta enemmän kuin kokonaisvaltaista dokumentaatiota. Asiakasyhteistyötä enemmän kuin sopimusneuvotteluja Muutokseen reagoimista enemmän kuin suunnitelman noudattamista www.agilemanifesto.org
Ketteryyden 12 periaatetta 1.Tärkeintä on täyttää asiakkaan vaatimukset julkaisemalla jatkuvasti ja aikaisin uusia hyödyllisiä versioita ohjelmistosta. 2.Hyväksytään ja otetaan vastaan muuttuvat vaatimukset jopa kehityksen loppuvaiheessa, ketterät menetelmät valjastavat muutokset asiakkaan kilpaulueduksi. 3.Luovutetaan toimivia versioita kehitettävästä ohjelmistosta säännöllisesti, mielellään lyhyin väliajoin.
Ketteryyden 12 periaatetta (2) 4.Liiketoiminnan ammattilaisten ja kehittäjien täytyy työskennellä päivittäin yhdessä koko projektin ajan. 5.Rakennetaan projektit motivoituneiden yksilöiden ympärille ja annetaan heille ympäristö ja tuki jota he tarvitsevat sekä luotetaan että he saavat työn tehtyä. 6.Kaikkein tehokkain tapa välittää tietoa kehitystiimille ja kehitystiimissä on kasvokkain tapahtuva keskustelu.
Ketteryyden 12 periaatetta (3) 7.Toimiva ohjelmisto on ensisijainen edistymisen mittari. 8. Ketterät menetelmät suosivat kestävää kehitystä. Rahoittajien, kehittäjien ja käyttäjien tulisi kyetä pitämään jatkuvasti yllä tasainen työtahti. 9.Jatkuvan huomion kiinnittäminen tekniseen laatuun, sekä hyvään rakenteeseen ja suunnitteluun, lisää ketteryyttä.
Ketteryyden 12 periaatetta (4) 10.Yksinkertaisuus taito maksimoida työn määrä, jota ei tarvitse tehdä, on olennaista.. 11.Parhaat arkkitehtuurit, vaatimukset ja suunnitelmat nousevat itseorganisoituvista tiimeistä. 12.Tasaisin väliajoin tiimi miettii miten voisi tulla entistä tuottavammaksi, ja siten muokkaa sekä säätää toimintaansa sen mukaan.
Scrum yleistä Scrum kuten kaikki muutkin ketterät mallit näkee ohjelmistokehityksen rakentuvan erimittaisten syklien ympärille. Tärkeimmät syklit ovat sprintti ja päivä Sprintillä tarkoitetaan yhtä kehitysjaksoa, jonka jälkeen tuote on ainakin periaatteessa julkaisuvalmis. Tyypillisesti sprintin kesto on yksi kuukausi, mutta sen pituus vaihtelee organisaation tarpeiden mukaan viikosta kahteen kuukauteen.
Scrum kaaviona
Scrum rooleja Tuotteen omistaja (Product Owner) Vastaa viime kädessä tuotteen ominaisuuksista, ns. "omistaa tuotteen" Tyypillisesti tuotepäällikkö tai asiakkaan edustaja. Tekee kaikki päätökset ominaisuuksista tai toiminnallisuuksiin vaikuttavista asioista. Scrum-mestari (Scrum master) Huolehtii siitä että tiimi voi työskennellä optimaalisesti Tiimiläiset raportoivat päivittäin ongelmista, jotka hidastavat töiden etenemistä. Scrum mestarin tehtävänä on poistaa nämä esteet tiimin tieltä. Scrum mestari johtaa päivittäiset aamupalaverit (daily scrum) sekä vastaa siitä, että Scrumia ja sen käytäntöjä noudatetaan.
Scrum rooleja jatkuu Scrum Tiimi (Scrum Team) Tiimiin (tiimeihin) kuuluu kaikki ne henkilöt jotka ovat mukana tekemässä projektia. Tiimiin otetaan henkilöitä, joilla on tarvittava osaaminen. Tiimi yhdessä rakentaa tuotteen, sovelluksen. Jokainen tiimiläinen on projektin kannalta yhtä tärkeä. Tiimi yhdessä vastaa tuotteen toteutuksesta, ei koskaan yksittäinen tiimin jäsen. Tiimissä ei erikseen nimetä arkkitehtejä, käyttöliittymäsuunnittelijoita, ohjelmoijia tai testaajia.
Scrum prosessi
Product Backlog Product Owner ylläpitää, priorisoi ja arvuuttaa tehtäviä. Jokainen rivi kuvaa rakennettavan järjestelmän ominaisuuksia, korjattavia vikoja, tai parannuksia kehitysprosessiin. Ominaisuuksilla on työmäärä arvio. Jokaisen sprintin jälkeen arvioidaan jäljellä oleva työmäärä.
Sprint Backlog Tiimi valitsee toteutettavat ominaisuudet Broduct Backlogista. (Sprint Planning kokouksessa) Tehtävä kokonaisuuksia tarkennetaan ja ominaisuuksia pilkotaan pienemmiksi osasiksi, ja arvioidaan tehtävien työmäärää. Jaetaan tehtävät tiimin jäsenille.
Daily Scrum Sprintin aikana Scrum Team kokoontuu päivittäiseen palaveriin aamupalaveriin. (Daily Scrum) Tiimin jäsenet vastaavat kolmeen kysymykseen: Mitä teit edellisen Daily Scrumin jälkeen? Mitä aiot tehdä ennen seuraavaa Daily Scrumia? Onko tielläsi esteitä, jotka hankaloittavat työtäsi? Scrum Masterin tehtävä on poistaa esteet.
Daily Scrum kuvina
Lyhyt Scrum kurssi http://scrumtrainingseries.com/ Scrum Training Series Free Online Scrum Master Training: The fun way to learn about Agile/Scrum, prepare for Scrum Master certification / Agile certification (CSM, CSPO, PSM, or PMI-ACP), and debunk popular misconceptions. Lyhyitä infopaketteja Scrumin eri osa-aluista, sisältää hieman kysymyksiäkin.
Harjoitus Tutustukaa dokumenttiin Ketterät kehitysmenetelmät ja työkalut Internet-palvelun uudistusprojektissa http://theseus.fi/bitstream/handle/10024/38067/ketterat_kehitysmenetelmat_tu - Mikä on JIRA, mihin sitä käytetään? - Mikä on Confluence, mihin sitä käytetään? - Mitä havaintoja kirjoittaja teki Scrumin soveltuvuudesta WEB-projektiin? Perustele.
Lisää aiheesta - Cohn,M. 2010. Succeeding with Agile. Software Development Using Scrum. Boston:Pearson Education. - Verkosta löytyvää materiaalia: https://www.scrum.org/scrum-guide https://www.scrum.org/resources/scrum-glossary http://epf.eclipse.org/wikis/scrum/ http://www.meteoriitti.com/artikkelisarjat/ketteryys-haltuun/ https://confluence.atlassian.com/display/agile/jira+agile+documentation http://www.slideshare.net/rpannone/creating-a-product-backlog http://www.scrum-institute.org/the_scrum_product_backlog.php http://scrumreferencecard.com/