Agile. Jyväskylän Yliopisto Sivu 1 Tietotekniikan laitos



Samankaltaiset tiedostot
Ville Isomöttönen. Agile. Jyväskylän Yliopisto Sivu 1 Tietotekniikan laitos

Lyhyt johdatus ketterään testaukseen

PROJEKTI- PÄÄLLIKÖSTÄ PRODUCT OWNERIKSI MEERI CEDERSTRÖM

Ryhmädynamiikka ja ketterät menetelmät

Ohjelmistotekniikka - Luento 3

Ohjelmistotekniikka - Luento 3 Jouni Lappalainen

Arkkitehtuuritietoisku. eli mitä aina olet halunnut tietää arkkitehtuureista, muttet ole uskaltanut kysyä

Testausta vai määrittelyä? Hyväksymistestaus ja jatkuva integraatio ketterässä ohjelmistokehityksessä

BDD (behavior-driven development) suunnittelumenetelmän käyttö open source projektissa, case: SpecFlow/.NET.

Johdatus ohjelmistotuotantoon

Ohjelmistotekniikka - Luento 2 Jouni Lappalainen

Ketteryys pähkinänkuoressa. Kokopäivän Scrum-kurssin sisältö tislattuna ja tiivistettynä kolmeen varttiin

Prosessiajattelu. Organisaation prosessikuvaus - CMMI. Prosessikuvaukset ja elinkaarimallit. Organisaation prosessien määritys CMMI käytänteet

Kuka käyttää?

Prosessiajattelu. Prosessikuvaukset ja elinkaarimallit. Organisaation prosessikuvaus - CMMI. Sami Kollanus TJTA330 Ohjelmistotuotanto 3.4.

Ketterä projektinhallinta

Ketteristä menetelmistä ja niiden ryhmädynamiikasta. Ohjelmistotuotantoprojektien johtaminen ja ryhmädynamiikka Fabian Fagerholm

Johdatus ohjelmistotuotantoon

Tapahtuipa Testaajalle...

Tutkittua tietoa. Tutkittua tietoa 1

Ohjelmistoprosessit ja ohjelmistojen laatu kevät 2009

Siirtyminen ketterien menetelmien maailmaan! Maarit Laanti 24 October 2013!

Globaalisti Hajautettu Ohjelmistokehitys Mitä, Miksi & Miten? Maria Paasivaara

HITSAUKSEN TUOTTAVUUSRATKAISUT

LANSEERAUS LÄHESTYY AIKATAULU OMINAISUUDET. Sähköinen jäsenkortti. Yksinkertainen tapa lähettää viestejä jäsenille

7. Product-line architectures

10 Kohti ketterää ohjelmistokehitystä

Tilausvahvistus. Anttolan Urheilijat HENNA-RIIKKA HAIKONEN KUMMANNIEMENTIE 5 B RAHULA. Anttolan Urheilijat

A new model of regional development work in habilitation of children - Good habilitation in functional networks

Ohjelmistotuotanto. Luento

Vertaispalaute. Vertaispalaute, /9

Constructive Alignment in Specialisation Studies in Industrial Pharmacy in Finland

Onnistunut ohjelmistoprojekti

Ohjelmistoposesseista

Prosessikuvaukset ja elinkaarimallit

7.4 Variability management

Tekes the Finnish Funding Agency for Technology and Innovation. Copyright Tekes

ProAgria. Opportunities For Success

Ohjelmistoprojekteista. Datanomiopiskelijat 2.vuosi

Test-Driven Development

Efficiency change over time

Ketteryys kohtaa todellisuuden - kokemuksia ja ajatuksia laadunvarmistuksen näkökulmasta

Projektityö

Millainen on onnistunut ICT-projekti?

TIEKE Verkottaja Service Tools for electronic data interchange utilizers. Heikki Laaksamo

Innovative and responsible public procurement Urban Agenda kumppanuusryhmä. public-procurement

Ohjelmistotuotanto. Luento

Test-Driven Development. As it should be.

Collaborative & Co-Creative Design in the Semogen -projects

Ohjelmistoprosessit ja ohjelmistojen laatu Ohjelmistoprosessit ja ohjelmistojen laatu (4op)

Trialogisen oppimisen suunnitteluperiaatteet

Network to Get Work. Tehtäviä opiskelijoille Assignments for students.

Ohjelmistoarkkitehtuurin sisällyttäminen ketteriin ohjelmistotuotantomenetelmiin

ATLAS-kartan esittely - Peli palveluiden yhteiskehittämisen menetelmistä Päivi Pöyry-Lassila, Aalto-yliopisto

Test-Driven Development

Yrittäjäkasvatuksen polku - sivusto. Yksityiskohtainen suunnittelu Huhtikuu 2018

Green Growth Sessio - Millaisilla kansainvälistymismalleilla kasvumarkkinoille?

SCRUM- JA XP-KÄYTÄNTEIDEN KÄYTTÖ: HAASTATTELUTUTKIMUS

Skene. Games Refueled. Muokkaa perustyyl. for Health, Kuopio

Software engineering

Hankkeiden vaikuttavuus: Työkaluja hankesuunnittelun tueksi

LAADUNVARMISTUS KETTERISSÄ OHJELMISTOKEHITYSMENETELMISSÄ

Co-Design Yhteissuunnittelu

Kaivostoiminnan eri vaiheiden kumulatiivisten vaikutusten huomioimisen kehittäminen suomalaisessa luonnonsuojelulainsäädännössä

Kilpailukyky, johtaminen ja uusi tietotekniikka. Mika Okkola, liiketoimintajohtaja, Microsoft Oy

E U R O O P P A L A I N E N

1. SIT. The handler and dog stop with the dog sitting at heel. When the dog is sitting, the handler cues the dog to heel forward.

Data quality points. ICAR, Berlin,

HUMAN RESOURCE DEVELOPMENT PROJECT AT THE UNIVERSITY OF NAMIBIA LIBRARY

Ohjelmistojen mallintaminen. Luento 11, 7.12.

Tehostettu kisällioppiminen tietojenkäsittelytieteen ja matematiikan opetuksessa yliopistossa Thomas Vikberg

Helsinki Metropolitan Area Council

Choose Finland-Helsinki Valitse Finland-Helsinki

Petri Mattila KÄYTTÄJÄKESKEISEN SUUNNITTELUN INTEGROINTI KETTERÄN KEHITTÄMISEN PROSESSIIN JA ROOLEIHIN

Uusi Ajatus Löytyy Luonnosta 4 (käsikirja) (Finnish Edition)

Other approaches to restrict multipliers

Laatu tietojärjestelmähankkeissa. Tietohallinnon kokemuksia Juha-Pekka Leskinen Atk-päällikkö Eduskunnan kanslia

(Core) & (Test Manager). Sertifikaattikoe klo

7. Iteratiivinen ohjelmistokehitys

Scrumin käyttö ketterässä sovelluskehityksessä

ICES: 110 vuotta tiedettä ja merentutkimusta: Mitä ja miksi? Dr. Kai Myrberg ICES Delegaatti Helsinki

16. Allocation Models

Tapaustutkimus: Soveltuuko Scrum vesiputousmallin korvaajaksi yrityksen sovelluskehitysprojekteihin?

Testauksen suunnittelu ja dokumentointi ketterässä testauksessa Tutkimustuloksia

On instrument costs in decentralized macroeconomic decision making (Helsingin Kauppakorkeakoulun julkaisuja ; D-31)

SOA SIG SOA Tuotetoimittajan näkökulma

Perinteinen oliomenetelmä ketteräksi

Tarua vai totta: sähkön vähittäismarkkina ei toimi? Satu Viljainen Professori, sähkömarkkinat

Salasanan vaihto uuteen / How to change password

Käytännön kokemuksia osallistumisesta EU projekteihin. 7. puiteohjelman uusien hakujen infopäivät 2011

Enterprise Architecture TJTSE Yrityksen kokonaisarkkitehtuuri

EXTREME PROGRAMMING OHJELMISTOKEHITYKSESSÄ

Gap-filling methods for CH 4 data

Johdatus ohjelmistotuotantoon

Olet vastuussa osaamisestasi

IT2015 EKT ERITYISEHTOJA OHJELMISTOJEN TOIMITUKSISTA KETTERIEN MENETELMIEN PROJEKTEILLA LUONNOS

You can check above like this: Start->Control Panel->Programs->find if Microsoft Lync or Microsoft Lync Attendeed is listed

Prosessien kehittäminen. Prosessien parantaminen. Eri mallien vertailua. Useita eri malleja. Mitä kehitetään?

COTOOL dokumentaatio SEPA: Refaktorointi

Aalto-yliopiston laatujärjestelmä ja auditointi. Aalto-yliopisto Inkeri Ruuska, Head of Planning & Management Support

Transkriptio:

Agile Jyväskylän Yliopisto Sivu 1 Tietotekniikan laitos

Manifesto of Agile Software Development (2001): We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value: Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan That is, while there is value in the items on the right, we value the items on the left more. Jyväskylän Yliopisto Sivu 2 Tietotekniikan laitos

Kent Beck, Mike Beedle, Arie van Bennekum, Alistair Cockburn, Ward Cunningham, Martin Fowler, James Grenning, Jim Highsmith, Andrew Hunt, Ron Jeffries, Jon Kern, Brian Marick, Robert C. Martin, Steve Mellor, Ken Schwaber, Jeff Sutherland, Dave Thomas Jyväskylän Yliopisto Sivu 3 Tietotekniikan laitos

Principles of Agile Software... Working software is primary measure of progress... Jyväskylän Yliopisto Sivu 4 Tietotekniikan laitos

Agile-menetelmistä Väite: Agile-menetelmät ovat epämuodollisia, suunnittelemattomia cowboy - menetelmiä Höpö höpö. XP:n (Extreme Programming) käytänteet muodostavat kurinalaisen common sense -menetelmän cowboy coding extreme programming Tunnetuimmat Agile-menetelmät: XP ja SCRUM Jyväskylän Yliopisto Sivu 5 Tietotekniikan laitos

Lyhyet iteraatiot Asiakkaalle toimitetaan aikaisessa vaiheessa, ja sen jälkeen lyhyin aikavälein, toimiva sovellus Inkrementaalinen ja iteratiivinen ohjelmistonkehitys pakottaa suunnittelemaan ja seuraamaan projektia pakottaa paljastamaan asiakkaalle työtahdin puolin ja toisin realistiset odotukset motivoi! mahdollistaa oppimisen (reflektointi) projektin aikana konkretian esille tuonti tarkentaa asiakasvaatimuksia Jyväskylän Yliopisto Sivu 6 Tietotekniikan laitos

Vaatimusten valinta iteraatioon Asiakas määrittelee ja priorisoi vaatimukset (yhdessä kehittäjien kanssa) Harris & Cohn: aikaista vaatimuksia, jotka lisäävät tietämystä siirrä myöhemmäksi vaatimuksia, joiden oletettu muutoskustannus (expected cost of change) on suuri hyödynnä opittua usein (suunnittelu on osa prosessia ei prosessin tulos), mutta vain päättääksesi mitä tehdä seuraavaksi Jyväskylän Yliopisto Sivu 7 Tietotekniikan laitos

Iteraatioista Projektin alussa nollaiteraatio Iteraation reunat: suunnittelu ja hyväksyntä Iteraation pituus Työrauha (SCRUM korostaa), vältettävä kaaosta Päivittäiset lyhyet kehittäjäpalaverit Jyväskylän Yliopisto Sivu 8 Tietotekniikan laitos

Suunnittelu (planning game) Käyttäjätarinat (user stories): yksinkertainen dokumentointi esim. pahvikorteille Kommunikointi keskeisessä asemassa Suhteelliset arviot (esim. pisteet) tarinoiden toteutuksen vaativuudesta vertailu aiemmin toteutettuihin toiminnallisuuksiin yksinkertaista Reflektointi avuksi, arviointia pystytyään parantamaan aikaisempien iteraatioiden tulosten perusteella Käyttäjätarinat suppeampia kuin use caset Välitön arviointi (cost), vrt. perinteisten vaatimusten kirjoittaminen Cohn: A good story is independent, negotiable, valuable to users or customers, estimatable, small, and testable Jyväskylän Yliopisto Sivu 9 Tietotekniikan laitos

Esimerkki (Cohn): A company can pay for a job posting with a credit card. Note: Will we accept Discover cards? Note for UI: Don t have a field for card type (it can be derived from first two digits on the card). Jyväskylän Yliopisto Sivu 10 Tietotekniikan laitos

Spike Tutkitaan ongelmallista toteutuksen osa-aluetta etukäteen Kestoltaan esim. yksi iltapäivä (kiinteä arvio) Perusteltua valita spike toteutettavaksi, ja story, jota spike tutkii vasta (mahdollisesti) seuraavaan iteraatioon samaan iteraatioon sijoittaminen lisää epävarmuutta, koska spiken tulosta ei tunneta Jyväskylän Yliopisto Sivu 11 Tietotekniikan laitos

Iteraatioon valittujen storyjen tarkennus Kehittäjät jakavat storyt ohjelmointitehtäviksi (tasks) Tarvittaessa tarkentavia kysymyksiä asiakkaalle Suhteelliset arviot taskeille Velocityn tarkistus tarvittaessa uudelleen priorisointi Jyväskylän Yliopisto Sivu 12 Tietotekniikan laitos

Iteraation hyväksyntä Hyväksyntää ei saa ohittaa, muuten iteratiivisyys jää näennäiseksi Hyväksynnän kohdistuttava siihen, mitä on sovittu tehtäväksi, vrt. työrauha Storyn hyväksyntätestit voidaan asiakkaan kanssa kirjoittaa esim. story-kortin kääntöpuolelle Pyrkimys hyväksyntätestien automatisointiin Jyväskylän Yliopisto Sivu 13 Tietotekniikan laitos

Hyväksyntätestit (Cohn): Test with Visa, MasterCard and American Express (pass). Test with Diner s Club (fail). Test with good, bad and missing card ID numbers. Test with expired cards. Test with over $100 and under $100. Jyväskylän Yliopisto Sivu 14 Tietotekniikan laitos

Release Plan Karkea suunnitelma toiminnallisuuksista, joita julkaistaviin sovelluksen versioihin halutaan sisällyttää. Esimerkiksi lista storeja, jotka kiinnitetään tiettyyn iteraatioon ja julkistukseen (release) Saa muuttua Jyväskylän Yliopisto Sivu 15 Tietotekniikan laitos

Implementoinnista Miksi ei uskalleta aluksi tehdä toiminnallisuuksia vaan laajennettavuutta, ylläpidettävyyttä ym.? Bottom-up Refaktorointi ei ole epäonnistumisesta aiheutuvaa ylimääräistä työtä Pyrkimys yksinkertaisiin ratkaisuihin Asiakkaalla oikeus päättää käytetäänkö resursseja välittömään toiminnallisuuksien toteutukseen vai ohjelmiston rakenteen uudelleenmuokkaukseen -> avoimuus -> oma pää puhtaana Test Driven Development (TDD, Jonne kertoo) Jyväskylän Yliopisto Sivu 16 Tietotekniikan laitos

Vertailua Zhang et. al: Comparison Between Test Driven Development and Waterfall Development in a Small-Scale Project No. Evaluated parameters Superioty of TDD to Waterall (percentage) 1 Productivity 10 % 2 Reliability 28 % 3 Maintainability 8 % 4 Flexibility 30 % 5 Efficiency 33 % 6 Tester Quality 10 % Jyväskylän Yliopisto Sivu 17 Tietotekniikan laitos

Kommunikointi Miksi ei uskalleta luottaa kasvotusten kommunikointiin? Kasvotusten kommunikointi on ideaalinen vuorovaikutustapa Kumpi on suurempi riski: kommunikointi erilaisia kaavioita katselmoiden vai ihmisten välinen keskustelu? Jyväskylän Yliopisto Sivu 18 Tietotekniikan laitos

Kehitystiimi Kommunikoi asiakkaan kanssa Itseorganisoituu, ei kiinteitä rooleja Koostuu (ideaalitapauksessa) eri alojen asiantuntijoista Coach, Scrum-master Jyväskylän Yliopisto Sivu 19 Tietotekniikan laitos

Mihin Agile ei sovellu? Esim. Beck arvelee XP:stä: Organisaatiohin, joiden todelliset arvot eivät vastaa XP-arvoja. Suuriin kehitystiimeihin (satoja ohjelmoijia). Sovellusympäristöihin, joiden teknologia ei tue muutosta. Huom. soveltuvuutta arvioitava tapauskohtaisesti Jyväskylän Yliopisto Sivu 20 Tietotekniikan laitos

Practices of XP whole team metaphor the planning game simple design small releases customer tests pair programming Jyväskylän Yliopisto Sivu 21 Tietotekniikan laitos

Practices of XP test-driven development design improvement collective code ownership continuous integration sustainable pace coding standards Jyväskylän Yliopisto Sivu 22 Tietotekniikan laitos

Lähteet: Manifesto for Agile Software Development: http://agilemanifesto.org/. Principles of Agile Software: http://agilemanifesto.org/principles.html. Cohn, M., Writing Stories (chapter 2), From User Stories Applied, 2004 http://www.mountaingoatsoftware.com/system/hidden_asset /file/10/usa_sample.pdf. Beck, K., Extreme Programming Explained (2nd Edition), The XP Series, Addison- Wesley, 2005. Beck, K., Fowler, M., Planning Extreme Programming, The XP Series, Addison-Wesley, 2001. Steinberg, D. H., Palmer, D. W., Extreme Software Engineering: A Hands-On Approach, Pearson Education, Inc., 2004. Schwaber, K., Beedle, M., Agile Software Development with Scrum, Prentice Hall, 2002. Jyväskylän Yliopisto Sivu 23 Tietotekniikan laitos

Zhang et. al, Comparison Between Test Driven Development and Waterfall Development in a Small-Scale Project, Proceedings of XP 2006. Harris, R. S., Cohn, M., Incorporating Learning and Expected Cost of Change in Prioritizing Features on Agile Projects, Proceedings of XP 2006. Fowler, M., Evolutionary Database Design, 2003, http://www.martinfowler.com/articles/evodb.html. Jyväskylän Yliopisto Sivu 24 Tietotekniikan laitos