Hur hanterar vi risk? Vad är TKO? Skillnad på agil och trad? Trad: Mycket up front - illusionerat försök till kontroll Agil/Lean: Defer Commitment, Build knowledge, Fail fast Den Röda Tråden DESIGN Vi kan välja utvecklingsmodell Vi kan hantera risk och vet varför Vi kan estimera user stories VISION KOD KOD KOD KOD DEPLOYABLE behövs IMPLEMEN DRIFTSÄTT KOD KOD KOD DEPLOYABLE SYSTEM Vision - vad har vi den till? User Stories - storlek Backlog http://blog.crisp.se/2012/10/25/henrikkniberg/agile-product-ownership-in-a-nutshell Kravhantering Begrepp User stories + Övning Acceptanstestfall/Testscenarion + Övning BDD/ATDD/Specification By Example Icke-funktionella krav Agil Dokumentation
Språket är viktigt! User story Som en <aktör> vill jag <funktionalitet> för att <uppnådd affärsnytta> Utgå från användaren Uttryckt i domänspråk! Henry Ford: faster horses För: Separation av vad och hur Tydlighet Tydlig affärsnytta enklare prioritera! Motverka överspecificering Titta på patienthistorik Som en narkosläkare vill jag se patientens historik för att kunna välja bäst gas
User story - INVEST Independent Negotiable Valuable Estimable Small Testable I Independent The user story should be self-contained, in a way that there is no inherent dependency on another user story. N Negotiable User stories, up until they are part of an iteration, can always be changed and rewritten. V Valuable A user story must deliver value to the end user. E Estimable You must always be able to estimate the size of a user story. S Small User stories should not be so big as to become impossible to plan/task/prioritize with a certain level of certainty. T Testable The user story or its related description must provide the necessary information to make test development possible. enligt Bill Wake User story - alternativ För att <uppnå affärsnytta/effekt> Vill <någon> <Göra något> NLP: Det första är det viktigaste, dvs det vi vill uppnå är viktigast Titta på patienthistorik Som en narkosläkare vill jag se patientens historik för att kunna välja bäst gas För att kunna välja bäst gas Vill en narkosläkare Se patientens historik
Köpa karta För att kunna se fastighetsgränser på sin iphone Vill en kund köpa en fastighetskarta Kan vi fixa detta på en vecka? Jämför med tratten och backlog Köpa karta Köp karta Välj kartserie Välj kartblad Genomför betalning EPIC EPIC User Story User Story EPIC User Story EPIC User Story Epics Story-storlek helst ett par dagar (max ett par veckor) EPIC - Stora! Kom ihåg Tratten! Minskar ju närmre sprint/längre upp i backlog
Release, Feature, User Story Release I Feature A User Story 1 User Story 2 Feature B User Story 3 Release II Feature C User Story 4 Story-storlek helst ett par dagar (max ett par veckor) EPIC - Stora! Kom ihåg Tratten! Minskar ju närmre sprint/längre upp i backlog Övning I grupp om ca 6 Skriv minst 5 user-stories för e-butiken Sök produkt Lägg i kundkorg Ändra antal i kundkorg Ta bort ur kundkorg Registrera användare Sortera produkter Logga in Betala När är vi klar? VISION Definition of Done, Done-Done, Done-Done-Done KOD KOD KOD KOD KOD KOD KOD DEPLOYABLE DEPLOYABLE SYSTEM
Definition of Done Användaren kan utföra user story Inför Impl: Testfall finns Inför deploy: Testfall gröna Efter deploy: Kan utföras BA+Dev+QA Business, Dev, Test https://www.scrumalliance.org/community/articles/2013/2013-april/introducing-the-three-amigos Testscenario/Acceptanstestfall Testfall enligt mönstret Givet <context> när <jag utför något> Så <händer något> För: Tydlighet! få missförstånd Motverka onödig funktionalitet/överimplementation.
Good/Bad Från Specification By Example (Gojko Adzic) https://books.gojko.net/specification-by-example/ Good/Bad Från Specification By Example pp Good/Bad Från Specification By Example pp
Övning: Vilka tre stories är viktigast? Varje grupp får tre pinnar Övning I samma grupper Skriv 4 test scenarios per story Kärt barn med många namn Behaviour-Driven Development Acceptance Test-Driven Development Specification by example Executable specification
BDD - loop Jämför loopar - var sker vad? -ilities / Icke-funktionella krav Maintainability Usability Performance Security Scalability Availability/Reliability Portability Varje ility ska ha ett testbarr case! Tex Vad händer om vi vill kunna skala från 1000 till 1000000 användare? Vi vill börja med en relationsdatabas, men vill eventuellt kunna byta till NoSQL, osv
Andra icke-funktionella Organisation Standarder; kod, ramverk, etc Plattform Kunskap Fler krav Hur fångar vi affärsregler? Lagar? Ad-hoc regler? Befintliga arbetssätt? (Levande) Dokumentation Kod! Cucumber, Spock, Rspec, JBehave, etc Index cards Post-its Word, Excel Issue tracker; jira, bitbucket Wiki FitNesse fitnesse.org Concordion concordion.org
Vanligaste orsaker till fail (2/10) 1.Exempel/Testscenarios tas inte fram gemensamt. 2.För stort fokus på HUR inte VAD. http://gojko.net/2009/09/24/top-10-reasonswhy-teams-fail-with-acceptance-testing/
Till nästa föreläsning Spotify Engineering Culture Part 1 (11min) http://blog.crisp.se/2014/03/27/ henrikkniberg/spotify-engineering-culturepart-1