techdays 2011 millainen on ketterä kehittäjä? tieturi/heikurinen

17
1 #td2011fi #td2011fi Millainen on ketterä kehittäjä?

Upload: tieturi-oy

Post on 26-May-2015

592 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: TechDays 2011 Millainen on ketterä kehittäjä? Tieturi/Heikurinen

1

#td2011fi

#td2011fi

Millainen on ketterä kehittäjä?

Page 2: TechDays 2011 Millainen on ketterä kehittäjä? Tieturi/Heikurinen

2

#td2011fi

Tieturi

#td2011fi

Page 3: TechDays 2011 Millainen on ketterä kehittäjä? Tieturi/Heikurinen

3

#td2011fi

Tekninen toimintaympäristö• VBA, VB.NET ja VSTO• TFS, VS Test Manager• Specflow, Nunit, CodedUI

#td2011fi

© 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market

conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation.

MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

Page 4: TechDays 2011 Millainen on ketterä kehittäjä? Tieturi/Heikurinen

4

Helsinki, Tampere, Turku, Tukholma, Göteborg | www.tieturi.fi

Liiketoiminta kehittyy, kehity sinäkin!

Millainen on ketterä kehittäjä?

29.3.2011Copyright © Tieturi

Mietintää

• Koodin laatu ei ole noussut odotetusti ketterien menetelmien myötä• Mm. Scrum Alliance on määritellyt Certified Scrum Developer

sertifikaatin

• Ketterien tiimien olemassaolo ei takaa työtapojen yhtenäisyyttä

• Määrittelyjä käytetään ja kaivataan yhä edelleen• Käyttötapaukset• UML kaaviot ja mallit• Lukemattomia erilaisia dokumenttimalleja

29.3.2011 Copyright © Tieturi 8

Page 5: TechDays 2011 Millainen on ketterä kehittäjä? Tieturi/Heikurinen

5

Conwayn laki (1968)

• ...organizations which design systems ... are constrained to produce designs which are copies of the

communication structures of these organizations.

29.3.2011 Copyright © Tieturi 9

Kehittäjien prototyypit

29.3.2011 Copyright © Tieturi 10

Page 6: TechDays 2011 Millainen on ketterä kehittäjä? Tieturi/Heikurinen

6

Hinta

4.1.2011 Copyright © Tieturi 11

Toiminnallisuudenmäärä

Ohjelmisto, joka ei ole ylläpidettävä

Korkealuokkainenohjelmisto- käsityötä

Ohjelmointityön ”reality check”

• Työn aloituskynnys on tehty mahdollisimman matalaksi• Mitään formaalisti määriteltyä standardia koodaajan ammatille ei

ole• Työ on usein parhaimpien valmiiden moduulien etsintää• Rimaa odotustasojen suhteen on laskettu

• Kuluttajat tottuneet puolinaisuuteen• Tarkka koodaus ei maksa itseään

• Ohjelmat vaihtuvat• suurimman osan koodista käyttöaika on lyhyt• Rakkaussuhde jää lyhyeksi

• Koodaamista tapahtuu/tarvitaan paljon tuotantoprosessin tukea varten• Testaus, UI automaatiot, protot …• Työn tarkka määrittäminen on hankalaa

29.3.2011 Copyright © Tieturi 12

Page 7: TechDays 2011 Millainen on ketterä kehittäjä? Tieturi/Heikurinen

7

Tuloksia ?

• Kaunista koodia, kuka kaipaa?• Mikä on ohjelmoijien sitoutuminen?• Oman työn rajojen tarkka määrittely on vanhoilla

roolimalleilla hankalaa• On paljon paikkoja, joissa tarvittaisiin hyviä koodaajia,

mutta• Kokevat työn liian triviaaliksi• Työstä vain osa on koodausta

29.3.2011 Copyright © Tieturi 13

Tarvitaan uusi määritys kehittäjän työlle

Ketterä kehittäjä

• Siirtää informaatiota• Moduulilta toiselle• Ohjelmistolta käyttäjälle• Kehittäjältä toiselle• Kehittäjältä testaajalle

• Siirto on hänelle pääasia, ei väline• Ohjelmakoodi on yksi tapa

siirtää informaatiota• On yleensä nopein ja luotettavin

kaveri siirtämään tietoa• Saa tyydytystä onnistuneesta

siirrosta

29.3.2011 Copyright © Tieturi 14

Page 8: TechDays 2011 Millainen on ketterä kehittäjä? Tieturi/Heikurinen

8

• Ei vakiinnuta työtä ennen kuin informaatiota on siirretty riittävästi

Työtavat

Suorituskyky

Ketterästä kehittäjästä

29.3.2011 Copyright © Tieturi 15

Konteksti

Design

Arkkitehtuuri

Laajennukset

Kierroksen tavoite

TDDHyväksyntä

kriteerit

Nopea tuotantoon

siirto

Simuloitu jäähdytys (simulatedannealing)

29.3.2011 Copyright © Tieturi 16

Page 9: TechDays 2011 Millainen on ketterä kehittäjä? Tieturi/Heikurinen

9

Suunnittelumenetelmien tunteminen

29.3.2011 Copyright © Tieturi 17

Architecture models

DDD

DSL

UML

OOA/OOD

Valmiiden ratkaisujen tunteminen

• Sovelluskehykset• Ratkaisumallit• Algoritmit• Kokoelmat

29.3.2011 Copyright © Tieturi 18

Page 10: TechDays 2011 Millainen on ketterä kehittäjä? Tieturi/Heikurinen

10

Tekninen edelläkävijä

• Päivittää tietonsa uusista• Työvälineistä• Työtavoista• Työskentelytavoista

• Pyrkii muutokseen näissä samoissa asioissa• Motivaation ylläpito

• Tietää ettei uusi tieto siirry• … pelkkiä piirrelistoja läpikäymällä• … puolustamalla totuttua

29.3.2011 Copyright © Tieturi 19

“Continuous attention to technical excellence and good design

enhances agility.”- Periaate ketterästä julistuksesta

Certified Scrum Developer

• Srcrum Alliance:“A Certified Scrum Developer is someone who has

demonstrated through a combination of formal training and a technical skills assessment that he or she has a working

understanding of Scrum principles and has learned specialized agile engineering skills”

29.3.2011 Copyright © Tieturi 20

Page 11: TechDays 2011 Millainen on ketterä kehittäjä? Tieturi/Heikurinen

11

Agile engineering skills (ScrumAlliance)• Test Driven Development (TDD)• Continuous Integration• Refactoring• Version-control usage skills (branching/merging)• Principles of Agile architecture• Acceptance test driven development (ATDD)• Pair Programming• Collboration in agile teams and between several teams

29.3.2011 Copyright © Tieturi 21

Ketterä kehittäjä

• Piirtää sen ensiksi

• Käyttäjät ymmärtävät sen tällä tasolla

• Ohjelmisto siirtää tietoa tällä tasolla

• UI elementit antavat meille jotain millä kommunikoida

29.3.2011 Copyright © Tieturi 22

PaperiTauluVisioPowerPointSketchFlow

Page 12: TechDays 2011 Millainen on ketterä kehittäjä? Tieturi/Heikurinen

12

Ketterä kehittäjä

• Luo UI:n jos mahdollista• Luo pisteen, johon formaaleja määrityksiä voidaan kiinnittää• Esim. WPF sovellus

29.3.2011 Copyright © Tieturi 23

Ketterä kehittäjä tuntee rajansa

• On tietoa, käyttäytymistä, jota en …• … halua tai pysty näkemään• … pysty käsittämään• ... tiedä

• Varmistaa, että tiimin testaajille ja tiimin ulkopuolisille jää aikaa tutkia näitä

• Hyväksymiskriteeristä voidaan yhteistyöllä muuttaa koodatuiksi• Hyväksyntätestien ohjaama

testaus (ATDD)29.3.2011 Copyright © Tieturi 24

Yksikkötestit

Automatisoiduthyväksyntätestit

TutkivatestausAsiakas

pilotointi

Page 13: TechDays 2011 Millainen on ketterä kehittäjä? Tieturi/Heikurinen

13

Ilmaistaan toiveet yhteistyöllä

• Käyttäjätarinat (User Stories) ilmaisevat kaivatut tiedonsiirrot (keskustelut) • As a <application role>• I want <some feature or behavior>• So that <I get some benefit>

• Skenaariot ilmaisevat mitkä siirrot toteutetaan• Given <some initial context>• When <this happens>• Then <this should be the result>

29.3.2011 Copyright © Tieturi 25

Käyttäjätarina esimerkki

29.3.2011 Copyright © Tieturi 26

Feature: Kameleon StartsJotta Kameleon olisi käytettävissäkäyttäjänähaluan, että Kameleon käynnistyy kun Käynnistän Officen

Scenario: Word käynnistyy ensimmäisenäGiven Mikään Office tuote ei ole käynnissäWhen kun käynnistän Word sovelluksenThen Kameleon ribbonin tulisi latautuaAnd Kameleon ribbonin tulisi olla näkyvilläAnd Kameleonin tulisi olla käyttövalmiina

Page 14: TechDays 2011 Millainen on ketterä kehittäjä? Tieturi/Heikurinen

14

Skenaarioiden kohdetaso

• Ketterä kehittäjä valitsee tarpeen mukaan• Kuka tarvitsee dokumentaatiota?

29.3.2011 Copyright © Tieturi 27

Given a user finds a document …

Given the button was clicked …

Given Customer xml is valid format …

Given Connection is secured…

Given the Name property is null …

Given the record exists …

Suoritettavat vaatimukset

• Vaatimusten ilmaisemista niin, että ne ovat myös testejä• BDD (Behaviour driven development)

• Onnistumisen edellytykset• Miellekkäitä, merkitseviä, informatiivisia kaikille osapuolille• Näyttävät yksiselitteisesti, että vaatimus on täytetty• Luovat pohjaa testattavalle suunnittelmille• Pysyvät yksinkertaisina

29.3.2011 Copyright © Tieturi 28

Page 15: TechDays 2011 Millainen on ketterä kehittäjä? Tieturi/Heikurinen

15

Suoritettavien vaatimusten käyttö

• Yhdistä testit skenaarioidenkuvamien keskusteluidenaskeliin

• Testit raportoivat vian• Testit menevät läpi• Keskustele tuloksista asiakkaan

kanssa• Lisää ja tarkenna skenaarioita

keskustelujen mukaan

29.3.2011 Copyright © Tieturi 29

As aI wantSo that

As aI wantSo that

GivenWhenThen

Suoritettavien vaatimusten ajo

• StorEvil – .NET BDD kirjastohttp://link.pluralsight.com/4n4z

• SpecFlow –.NET BDD kirjastohttp://link.pluralsight.com/3uwd

• Cucumber – BDD Ruby ja IronRubya vartenhttp://link.pluralsight.com/56j7

• Gherkin – DSL http://link.pluralsight.com/46nm

• StoryTeller - .NET native alternative to Fitnessehttp://link.pluralsight.com/5vdn

29.3.2011 Copyright © Tieturi 30

StoryQMspec

Page 16: TechDays 2011 Millainen on ketterä kehittäjä? Tieturi/Heikurinen

16

Ajo SpecFlown välityksellä

29.3.2011 Copyright © Tieturi 31

On tiimipelaaja

• Kuuntelee muita aktiivisesti• Kysyy muilta, jos ei tiedä

• 30 minuutin sääntö:Älä koskaan mieti yksin enempään kuin 30 minuuttia

• Luottaa muihin• Kertoo muille mitä on tehnyt, mitä osaa

• Helpompi löytää se joka osaa auttaa

• Kohde ei ole sidottu, työskentelee siellä missä on tiedonsiirtotarve.• Esimerkki: Asiakkaalla on jatkuva tarve tietää toimiiko se

edelleenkin niin kuin ennenkin

Adoption of Agile Software Development Practices - version 3 1

325.4.2011

Page 17: TechDays 2011 Millainen on ketterä kehittäjä? Tieturi/Heikurinen

17

Yhteenveto

• Ketterä kehittäjä• On tiedonsiirron ammattilainen• Ei ihastu tapaan siirtää tietoa, vaan siihen jos viesti meni perille• Käyttää kaikkia käytettävissä olevia keinoja tiedon välittämiseen• On ketterä projektin alussa• Mahdollistaa, että muutkin voivat siirtää tietoa

29.3.2011 Copyright © Tieturi 33

Tieturin kurssitarjontaa

• Certified Scrum Developer (englanniksi)• 3 päivän kurssi• Ote kurssikuvauksesta

• .

29.3.2011 Copyright © Tieturi 34