More Related Content
Similar to TechDays 2011 Millainen on ketterä kehittäjä? Tieturi/Heikurinen
Similar to TechDays 2011 Millainen on ketterä kehittäjä? Tieturi/Heikurinen (20)
More from Tieturi Oy (20)
TechDays 2011 Millainen on ketterä kehittäjä? Tieturi/Heikurinen
- 1. #td2011fi
#td2011fi
Millainen on ketterä kehittäjä?
1
- 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.
3
- 4. Liiketoiminta kehittyy, kehity sinäkin!
Millainen on ketterä kehittäjä?
Helsinki, Tampere, Turku, Tukholma, Göteborg | www.tieturi.fi Copyright © Tieturi 29.3.2011
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
4
- 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
5
- 6. Hinta
Ohjelmisto, joka ei ole
ylläpidettävä
€
Korkealuokkainen
ohjelmisto
- käsityötä
Toiminnallisuuden
määrä
4.1.2011 Copyright © Tieturi 11
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
6
- 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
Tarvitaan uusi määritys kehittäjän
työlle
29.3.2011 Copyright © Tieturi 13
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
7
- 8. Ketterästä kehittäjästä
• Ei vakiinnuta työtä ennen kuin informaatiota on siirretty
riittävästi
Kierroksen
tavoite
Konteksti
Design
Arkkitehtuuri
Laajennukset
Nopea
Työtavat Hyväksyntä tuotantoon
Suorituskyky kriteerit siirto TDD
29.3.2011 Copyright © Tieturi 15
Simuloitu jäähdytys (simulated
annealing)
29.3.2011 Copyright © Tieturi 16
8
- 9. Suunnittelumenetelmien tunteminen
DDD
DSL
UML
OOA/
OOD
Architecture
models
29.3.2011 Copyright © Tieturi 17
Valmiiden ratkaisujen tunteminen
• Sovelluskehykset
• Ratkaisumallit
• Algoritmit
• Kokoelmat
29.3.2011 Copyright © Tieturi 18
9
- 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
“Continuous attention to technical
excellence and good design
enhances agility.”
- Periaate ketterästä julistuksesta
29.3.2011 Copyright © Tieturi 19
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
10
- 11. Agile engineering skills (Scrum
Alliance)
• 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ä Paperi
Taulu
Visio
• Piirtää sen ensiksi PowerPoint
SketchFlow
• 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
11
- 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 … Automatisoidut
• … halua tai pysty näkemään hyväksyntätestit
• … pysty käsittämään
• ... tiedä
Yksikkö
• Varmistaa, että tiimin testit
testaajille ja tiimin
ulkopuolisille jää aikaa tutkia
näitä
• Hyväksymiskriteeristä voidaan
yhteistyöllä muuttaa Tutkiva
testaus
koodatuiksi Asiakas
pilotointi
• Hyväksyntätestien ohjaama
testaus (ATDD)
29.3.2011 Copyright © Tieturi 24
12
- 13. Ilmaistaan toiveet yhteistyöllä
• Käyttäjätarinat (User Stories) ilmaisevat kaivatut tiedon
siirrot (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
Feature: Kameleon Starts
Jotta 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 sovelluksen
Then Kameleon ribbonin tulisi latautua
And Kameleon ribbonin tulisi olla näkyvillä
And Kameleonin tulisi olla käyttövalmiina
29.3.2011 Copyright © Tieturi 26
13
- 14. Skenaarioiden kohdetaso
• Ketterä kehittäjä valitsee tarpeen mukaan
• Kuka tarvitsee dokumentaatiota?
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 …
29.3.2011 Copyright © Tieturi 27
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
14
- 15. Suoritettavien vaatimusten käyttö
• Yhdistä testit skenaarioiden
kuvamien keskusteluiden
askeliin As a As a
I want I want
• Testit raportoivat vian So that So that
• Testit menevät läpi
• Keskustele tuloksista asiakkaan
kanssa
• Lisää ja tarkenna skenaarioita
keskustelujen mukaan Given
When
Then
29.3.2011 Copyright © Tieturi 29
Suoritettavien vaatimusten ajo
• StorEvil – .NET BDD kirjasto
http://link.pluralsight.com/4n4z
• SpecFlow –.NET BDD kirjasto
StoryQ
http://link.pluralsight.com/3uwd Mspec
…
• Cucumber – BDD Ruby ja IronRubya varten
http://link.pluralsight.com/56j7
• Gherkin – DSL
http://link.pluralsight.com/46nm
• StoryTeller - .NET native alternative to Fitnesse
http://link.pluralsight.com/5vdn
29.3.2011 Copyright © Tieturi 30
15
- 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
5.4.2011 Adoption of Agile Software Development Practices - version 32
31
16
- 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
17