300 likes | 434 Views
Juha.aaltonen@ambientia.fi. Ketterä sovellusten elinkaaren hallinta. ALM / Tuotekehitysympäristö Palveluna Sytyke Laivaseminaari | 2013 juha.aaltonen@ambientia.fi. Teaser. Ketterä Sovellusten Elinkaaren Hallinta – Tuotekehitysympäristö palveluna
E N D
Ketterä sovellusten elinkaaren hallinta ALM / Tuotekehitysympäristö Palveluna Sytyke Laivaseminaari | 2013 juha.aaltonen@ambientia.fi www.ambientia.net
Teaser Ketterä Sovellusten Elinkaaren Hallinta – Tuotekehitysympäristö palveluna Mitä ketteryys tarkoittaa ja miten se on otettava huomioon sovelluksen elinkaaren eri vaiheissa ja miten ketteryyttä voidaan tehostaa. Esityksessä tuotteen elinkaari on jaettu seuraaviin vaiheisiin: • Tilaaminen • Käynnistäminen • Toteutus (ylläpito) • Julkaiseminen • Käyttö Päähuomio esityksessä on Käynnistys- ja Toteutusvaiheilla. Merkittävin esityksessä esiteltävä ratkaisu ketteryyden kehittämiseksi on Tuotekehitysympäristö Palveluna Konsepti, jonka on tarkoitus nopeuttaa projektien käynnistämistä ja tehostaa niiden läpivientiä, sekä parantaa läpinäkyvyyttä ja seurattavuutta sekä tuote tasolla, että yli koko projekti/tuotesalkun. tiimi|multi-vendor / multisite environment |tilaaminen |käynnistäminen |toteuttaminen |Tuotekehitys (ALM) Ympäristö Palveluna | Disciplines & tools |julkaiseminen |ALM nonsense www.ambientia.net
Juha Aaltonen • ALM (Application Lifecycle Management) expert/consultant • Ambientia 2011 -> • Atlassian • Asiakkaita esim: RAY, Finnair, Insta, SITO, Metso, HiQ, OP palvelut... • Tieto 2001 – 2011 • Useitaasiakkuuksia • Tilaaja-toimittajamalli • Multisite tiimit • Pienempiätuotteitajanopeampialäpimenoaikoja • Valmiittyökalut, Agile mallit, Open source • Engineering Toolbox • Nokia (networks) 1994 – 2001 • Projektit vuosien mittaisia • Tekijöitä 1000 -> • Koodirivejä 50milj • Ohjelmistopaketin käännösajat kymmeniä tunteja • Itsetehdyt työkalut tiimi|multi-vendor / multisite environment |tilaaminen |käynnistäminen |toteuttaminen |Tuotekehitys (ALM) Ympäristö Palveluna | Disciplines & tools |julkaiseminen |ALM nonsense www.ambientia.net
Huipputiimi Sertifioitu osaamisemme on keskittynyt erityisesti Java- ja Grails-pohjaiseen sovelluskehitykseen sekä kokonaispalvelun tarjoamiseen. 80 ammattilaista 6 toimistoa Suomessa ja Ruotsissa Asiantuntemusta vuodesta 1996 Ambientialla on merkittävää kokemusta, sillä aloitimme toimintamme jo ennen Googlea vuonna 1996. Toimistomme sijaitsevat Helsingissä, Hämeenlinnassa, Joensuussa, Tampereella, Turussa ja Tukholmassa.
Palvelut ja ratkaisut Intranet on prosessi eikä paketista otettava tuote. Konseptointi, strategia ja konsultointi Sovelluskehityspalvelut Verkkokauppa Kokonaispalvelua suunnittelusta, toteutukseen, testaukseen ja ylläpitoon. Magento-verkkokaupat sekä kaupankäyntiin liittyvät palvelut. Konseptisuunnittelu, palvelu-muotoilu, webstrategia ja ALM Pilvipalvelut Sosiaalinen intranet Portaalit Jira ja Confluence palveluna sekä pilvipalvelutekniikat asiakkaan käyttöön. Pohjoismaiden parasta Liferay-osaamista.
Ketteryys Kaikissa Elinkaaren Vaiheissa • Tilaaminen • Käynnistäminen • Toteuttaminen • Julkaiseminen • Käyttö • Agenda • Kaiken ei tarvitse/pidä olla ketterää? • Organisaatio ja ketteryys • Tuotepäällikkö • Tiimi • Monenlaista ketterää tekemistä • Multi-vendor / Multisite / Multi product ympäristö • Vaiheet • Tilaaminen • Käynnistäminen • Tiimi • Tuotekehitysympäristö • Toteuttaminen • Julkaiseminen • Käyttö tiimi|multi-vendor / multisite environment |tilaaminen |käynnistäminen |toteuttaminen |Tuotekehitys (ALM) Ympäristö Palveluna | Disciplines & tools |julkaiseminen |ALM nonsense www.ambientia.net
Kaiken ei tarvitse olla Ketterää? Mutta kaikkien osapuolien pitää ymmärtää mikä osa on tarkoitus tehdä ketterien periaatteiden mukaisesti ja mikä ei. !Ja mitä ketteryys missäkin tapauksessa tarkoittaa. tiimi|multi-vendor / multisite environment |tilaaminen |käynnistäminen |toteuttaminen |Tuotekehitys (ALM) Ympäristö Palveluna | Disciplines & tools |julkaiseminen |ALM nonsense www.ambientia.net
Organisaatio ja ketteryys • Organisaatio itsessään ei voi olla ketterä? • Organisaation pitää mahdollistaa ketterien projektien tekeminen. • Projekti(Tuote) tiimin kasaaminen • Projekti(Tuote) tiimin toiminta • ”Heimo” ajattelu • Tuotepäällikkö ja tiimi tiimi|multi-vendor / multisite environment |tilaaminen |käynnistäminen |toteuttaminen |Tuotekehitys (ALM) Ympäristö Palveluna | Disciplines & tools |julkaiseminen |ALM nonsense www.ambientia.net
OrganisaatioTuotepäällikkö • Asialle omistautunut tuotepäällikkö on avaintekijä • Ketteryys myös tuotepäällikön toiminnassa!! • Ei komiteoita -> asiansa osaava Tuotepäällikkö Product Owner Stakeholders Technical debate Dev Team Business debate tiimi|multi-vendor / multisite environment |tilaaminen |käynnistäminen |toteuttaminen |Tuotekehitys (ALM) Ympäristö Palveluna | Disciplines & tools |julkaiseminen |ALM nonsense www.ambientia.net
OrganisaatioTiimi • Muotoutumisvaihe –forming • Kuohuntavaihe –storming • Normiutuminen –norming • Kypsän toiminnan vaihe –performing • Tämä vaihe edustaa todellisen tiimin tasoa. Tiimin yhteistoiminta on tehokasta. Tiimin jäsenet tukevat toisiaan ja käyttävät kunkin vahvuuksia tiimin hyväksi. Tiimin sisäiset roolit ovat joustavia ja toimintaa edistäviä. Tiimin toimintaa ilmentää kilpailun sijasta yhdessä tekeminen, kannustaminen sekä entistä parempiin suorituksiin pyrkiminen. • Tiimin tehokkuus on enemmän kun osiensa summa • Hajoaminen tiimi|multi-vendor / multisite environment |tilaaminen |käynnistäminen |toteuttaminen |Tuotekehitys (ALM) Ympäristö Palveluna | Disciplines & tools |julkaiseminen |ALM nonsense www.ambientia.net
Monenlaista ketterää tekemistä... ...ja monenlaisia tuotteita/palveluita • Yhden ison tuotteen/palvelun tekeminen • Itselle • Toteutus itsellä • Toteutusta alihankkijoilla/toimittajilla • Tilaajalle • Toteutus kokonaan yhdellä toimittajalla • Toteutus usealla toimittajalla • Jollain (tilaaja/päätoimittaja) pitää olla kokonaisvastuu ja esim ALM ympäristö hallussaan • Jäljitettävyys, Näkyvyys, Raportointi • Useiden tuotteiden/palveluiden tekeminen samanaikaisesti (itselle / toimittajalle) • Erilaiset alustat • Projektimallit • Eri vaiheissa olevia tuotteita • Käynnistämisen pitää olla helppoa ja nopeaa. • Siirtyminen projektista/tiimistä toiseen pitää olla helppoa tiimi|multi-vendor / multisite environment |tilaaminen |käynnistäminen |toteuttaminen |Tuotekehitys (ALM) Ympäristö Palveluna | Disciplines & tools |julkaiseminen |ALM nonsense www.ambientia.net
Multi-vendor / Multisite Environment Common Functions like Corporation Requirement Management Site 1 Site 3 Site 2 Risk Management • Product 1 • Development • Maintenance Helpdesk • Product 2 • Development • Maintenance ALM disciplines • Product 5 • Development • Maintenance Project / Task management • Product 4 • Development • Maintenance Information Sharing & KM SCM Vendor X Vendor Y QA & Test Management • Product 3 • Development • Maintenance IDE & SW Engineering tiimi|multi-vendor / multisite environment |tilaaminen |käynnistäminen |toteuttaminen |Tuotekehitys (ALM) Ympäristö Palveluna | Disciplines & tools |julkaiseminen |ALM nonsense www.ambientia.net
Vaiheet tiimi|multi-vendor / multisite environment |tilaaminen |käynnistäminen |toteuttaminen |Tuotekehitys (ALM) Ympäristö Palveluna | Disciplines & tools |julkaiseminen |ALM nonsense www.ambientia.net
Tilaaminen • Molempien osapuolien pitää ymmärtää mitä ja millä mallilla ollaan tekemässä ja tämä pitää ottaa huomioon jo tilausvaiheessa. • Customer collaboration – requirements cannot be fully collected at the beginning of the software development cycle, therefore continuous customer or stakeholder involvement is very important. • Responding to change – agile development is focused on quick responses to change and continuous development Ostetaanko lopputuote vai matka lopputuotteeseen tiimi|multi-vendor / multisite environment |tilaaminen |käynnistäminen |toteuttaminen |Tuotekehitys (ALM) Ympäristö Palveluna | Disciplines & tools |julkaiseminen |ALM nonsense www.ambientia.net
Käynnistäminen • Kun kauppa on syntynyt tai päätös toteutuksesta tehty, pitää projektin päästä käyntiin mahdollisimman nopeasti • Organisaation pitää mahdollistaa tämä! • Tuotekehitysympäristö palveluna! tiimi|multi-vendor / multisite environment |tilaaminen |käynnistäminen |toteuttaminen |Tuotekehitys (ALM) Ympäristö Palveluna | Disciplines & tools |julkaiseminen |ALM nonsense www.ambientia.net
KäynnistäminenTiimi • Muotoutumisvaihe –forming • Kuohuntavaihe –storming • Normiutuminen –norming • Kypsän toiminnan vaihe –performing • Tämä vaihe edustaa todellisen tiimin tasoa. Tiimin yhteistoiminta on tehokasta. Tiimin jäsenet tukevat toisiaan ja käyttävät kunkin vahvuuksia tiimin hyväksi. Tiimin sisäiset roolit ovat joustavia ja toimintaa edistäviä. Tiimin toimintaa ilmentää kilpailun sijasta yhdessä tekeminen, kannustaminen sekä entistä parempiin suorituksiin pyrkiminen. • Tiimin tehokkuus on enemmän kun osiensa summa • Hajoaminen tiimi|multi-vendor / multisite environment |tilaaminen |käynnistäminen |toteuttaminen |Tuotekehitys (ALM) Ympäristö Palveluna | Disciplines & tools |julkaiseminen |ALM nonsense www.ambientia.net
KäynnistäminenTuotekehitys (ALM) Ympäristö Palveluna Mietitty tuotekehitys/ALM ympäristö ja käyttötavat, jotka uuden projektin/tiimin on helppo ottaa käyttöön ilman isoja vasteaikoja. New Product ALM (R&D) Environment as a Service Product Owner Service Owner Product Team Operational Work Development Work Manager Manager Type R&D Env Order Scrum Kanban Scrumban etc • IT? • Servers • Network • Applications • EndUser support • Trainings (tools) • R&D? • Usage Model • Processes • Methods • Appl Configurations • Consulting / Mentoring • Training (methods) R&D Env for Product Services Kick Start Proj Management Knowledge Management Test Management VCS CI Project Work Feedback Managers Developers tiimi|multi-vendor / multisite environment |tilaaminen |käynnistäminen |toteuttaminen |Tuotekehitys (ALM) Ympäristö Palveluna | Disciplines & tools |julkaiseminen |ALM nonsense www.ambientia.net
Toteuttaminen • Tuotekehitysympäristö palveluna • Sisäänrakennetut käytännöt: scrum, kanban, scrumban, etc ja mitä ne tässä yhteydessä tarkoittavat. • Osa-alueet ja työkalut • Information Sharing/Knowledge Management • Project / Task Management • Software Configuration Management • Mittaaminen tiimi|multi-vendor / multisite environment |tilaaminen |käynnistäminen |toteuttaminen |Tuotekehitys (ALM) Ympäristö Palveluna | Disciplines & tools |julkaiseminen |ALM nonsense www.ambientia.net
ToteuttaminenTuotekehitys (ALM) Ympäristö Palveluna • Mietitty tuotekehitys/ALM ympäristö ja käyttötavat, jotka uuden projektin/tiimin on helppo ottaa käyttöön ilman isoja vasteaikoja. • Myös ihmisten siirtyminen projektista/tiimistä toiseen on tällöin helpompaa. • Jos liian loppuun asti mietitty ja kiveenhakattu malli ja työkalut, voi tiimien motivaatio kärsiä, jos tiimillä itsellään ei ole päätäntävaltaa asioissa. • Helppo tapa antaa palautetta työkaluista ja menetelmistä tiimi|multi-vendor / multisite environment |tilaaminen |käynnistäminen |toteuttaminen |Tuotekehitys (ALM) Ympäristö Palveluna | Disciplines & tools |julkaiseminen |ALM nonsense www.ambientia.net
Toteuttaminen – Tuotekehitys (ALM) Ympäristö PalvelunaDisciplines & Tools #1 tiimi|multi-vendor / multisite environment |tilaaminen |käynnistäminen |toteuttaminen |Tuotekehitys (ALM) Ympäristö Palveluna | Disciplines & tools |julkaiseminen |ALM nonsense www.ambientia.net
Toteuttaminen – Tuotekehitys (ALM) Ympäristö PalvelunaDisciplines & Tools #2 Magic Quadrant for Application Life Cycle Management tiimi|multi-vendor / multisite environment |tilaaminen |käynnistäminen |toteuttaminen |Tuotekehitys (ALM) Ympäristö Palveluna | Disciplines & tools |julkaiseminen |ALM nonsense www.ambientia.net
ToteuttaminenLaatu/Mittarointi Tekemisen laatu • Läpimenoajat • Vasteajat • Velocity • Bugi määrät • jne Tuotteen laatu • Koodin laatu • Käytettävyys • Testikattavuus Agile mallisessa tekemisessä tuotteen laatu on jopa tärkeämpi kun tekemisen laatu! Portfolio/salkku tasoinen mittaaminen. www.ambientia.net
Julkaiseminen • Jatkuvaa ja Automaattista • Daily • Sprint/Iteraatio • Viralliset julkaisut • Itse tuote + Siihen liittyvä Dokumentaatio • Läpinäkyvyys ja Jäljitettävyys • Julkaisusta pitää pystyä näkemään • Mitä se sisältää (ominaisuudet/tarinat/epicit) • Miten se on testattu • Muuttuneet lähdekoodit tiimi|multi-vendor / multisite environment |tilaaminen |käynnistäminen |toteuttaminen |Tuotekehitys (ALM) Ympäristö Palveluna | Disciplines & tools |julkaiseminen |ALM nonsense www.ambientia.net
Käyttö (Operations) • DevOps tiimi|multi-vendor / multisite environment |tilaaminen |käynnistäminen |toteuttaminen |Tuotekehitys (ALM) Ympäristö Palveluna | Disciplines & tools |julkaiseminen |ALM nonsense www.ambientia.net
Pääkohdat • Ketteryys kaikissa elinkaaren vaiheissa • Organisaatio • Tuotepäällikkö ja Tiimi • Nopea käynnistäminen • Tiimi • Tuotekehitysympäristö • Tuotekehitysympäristö palveluna • Läpinäkyvyys ja seurattavuus • Tuotetasolla • Portfolio/Salkku tasolla tiimi|multi-vendor / multisite environment |tilaaminen |käynnistäminen |toteuttaminen |Tuotekehitys (ALM) Ympäristö Palveluna | Disciplines & tools |julkaiseminen |ALM nonsense www.ambientia.net
Agile Manifesto The meanings of the manifesto items on the left within the agile software development context are described below: • Individuals and interactions – in agile development, self-organization and motivation are important, as are interactions like co-location and pair programming. • Working software – working software will be more useful and welcome than just presenting documents to clients in meetings. • Customer collaboration – requirements cannot be fully collected at the beginning of the software development cycle, therefore continuous customer or stakeholder involvement is very important. • Responding to change – agile development is focused on quick responses to change and continuous development.[7] The Agile Manifesto is based on twelve principles:[8] • Customer satisfaction by rapid delivery of useful software • Welcome changing requirements, even late in development • Working software is delivered frequently (weeks rather than months) • Working software is the principal measure of progress • Sustainable development, able to maintain a constant pace • Close, daily cooperation between business people and developers • Face-to-face conversation is the best form of communication (co-location) • Projects are built around motivated individuals, who should be trusted • Continuous attention to technical excellence and good design • Simplicity—the art of maximizing the amount of work not done—is essential • Self-organizing teams • Regular adaptation to changing circumstances www.ambientia.net
ALM nonsense... tiimi|multi-vendor / multisite environment |tilaaminen |käynnistäminen |toteuttaminen |Tuotekehitys (ALM) Ympäristö Palveluna | Disciplines & tools |julkaiseminen |ALM nonsense www.ambientia.net