Använd Agile från dag 1 - starta med lättrörlig
kravhanteringMicael ÅkessonArne Åhlander
I samarbete med:
Intro
• Agile från dag 1 – vad menas?• Hört om Scrum• Lättrörlig kravhantering• Strukturerad kravhantering
- ett komplement till Agile• Frågestund• Summering
“It’s easier to act your wayto a new way of thinkingthan to think your way
to a new way of acting.”
Jeffrey Liker
Var kan vi börja?
• Dagligt möte• Samlokalisering• Tillvägagångssätt
– Continuous Integration– TDD
• Kontinuerlig återkoppling
12 Agile Principles• Our highest priority is to satisfy the customer
through early and continuous delivery of valuable software.
• Welcome changing requirements, even late in development. Agile processes harness change for the customer's competitive advantage.
• Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.
• Business people and developers must work together daily throughout the project.
• Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.
• The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.
• Working software is the primary measure of progress.
• Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.
• Continuous attention to technical excellence and good design enhances agility.
• Simplicity--the art of maximizing the amount of work not done--is essential.
• The best architectures, requirements, and designs emerge from self-organizing teams.
• At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.
Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.
Welcome changing requirements, even late in development.
Agile processes harness changefor the customer's competitive advantage.
Deliver working software frequently, from a couple of weeks to a couple of months,with a preference to the shorter timescale.
Business people and developers must work together daily throughout the project.
Working software is the primary measure of progress.
Continuous attention to technical excellence and good design enhances agility.
At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.
Hört om Scrum
Jag bryr mig inte om hur ni
arbetar, bara ni levererar.
Mitt team har högre velocity än
ditt
Vi är speciella
Utgå från existerande team
Hur kan vi stödja teamen på bästa sätt?
Detta var mer än vad jag
sett tidigare
Lättrörlig kravhantering
Agile är INTE …
• en ursäkt för att skippa dokumentation
• en möjlighet att hoppa över planering
• allmänhetens åkning avseende tillägg av krav
• att blint tillämpa ”best practices” oavsett om de fungerar eller inte i er situation
Agile deals with
• Ziv's law - specifications will never be fully understood [1]
• Humphrey's law - the user will never know what they want until after the system is in production (if then) [2]
• Wegner's lemma - an interactive system can never be fully specified nor can it ever be fully tested [3]
• Langdon's lemma - software evolves more rapidly as it approaches chaotic regions (without spilling over into chaos) [4]
• Identifiera först, bygg sedan
• Tillräckligt med detaljer och ”Just in time” för att kunna implementera
Agil (lättrörlig) produktledning
• Fokuserar på kontinuerlig– nedbrytning och förfining av kraven
– prioritering av kraven
– kommunikation med utvecklingsteam
– kommunikation med kunder och intressenter
Gemensamma drag
• Representera intressenter
• Erbjuda förklaring och detaljering av kraven
• Ordna och prioritera kraven
• Arbeta tätt tillsammans med utvecklingsteam
• Har sista ordet avseende acceptans av produkten
Problemdefinition vid projektstart
Produktspecifikationer Hur mycket information finns formaliserat om den tänkta respektive den faktiska produkten vid projektstart?
Problemdefinition- krav i vattenfallsmetodik
Concept Study
Feasibility Study
Execution
Test
Customer Project 1
Krav
Krav
Krav
Krav
Krav
CCB
Vad en lärobok i kravhantering inte berättar…….
• Dolda Agendor?• Teknisk Skuld?
• Hur kommuniceras kraven?
• Hur hanteras motstridiga krav?
• Hur uppmuntras en godteamkänsla i kravhanteringen?
Strukturerad kravhantering – ett komplement till Agile- informationsflöde
Who are the usersof a product?
As a <User Role>, I want <Functionality>,so that <Benefit>
Customer Acceptance Test
User Story Feature/Function Test
Feature affärsnytta Specificationby Example
Exekverbartestdokumentation
Utmaningar för lättrörlig kravhantering
• För att fånga kraven, kör gärna Spec Sprintar!
• Se inte kraven som isolerade öar, de hänger ihop!
• Välj en lämplig prioriteringsmetod för kraven
• Fokusera på kraven som skapar kundnytta (värde)
• Undvik budbärare av krav, jobba istället nära källan, där kraven skapas (produktledning, design, test, etc.)
Requirements Abstraction Model (RAM)
This model is based on ”best industrial practice”. The model is developed in a research project in collaboration with Danaher Motion, ABB Corporate Research and School of Engineering, Blekinge Institute of Technology.
Roles and RAM
Company LevelStrategy
Product
Feature
Function
Product Level (goal)
Feature Level(features)
Function Level (functions)
Feature: a service that the system provides to fulfill one or more stakeholders needs
Function: when the user does x, the system will do y, action oriented (to be used forestimation and as input to development)
Product strategies, long and short-term goals, roadmaps and visions
Component Component Level
Component: to be used for impact analysis or action list
Product OwnerTeam
ScrumTeam
Frågor
Summering
• Agile innebär ofta nya tankebanor• Fast vi kan inte tänka fram förändringar
– Börja göra• Lättrörlig kravhantering:
– Tillräckligt med detaljer– Just-in-time
• Agile kan kompletteras– Speciellt i större organisationer
Notes
• [1] H. Ziv and D.J. Richardson, May 1996. See http://www.ics.uci.edu/~ziv/papers/icse97.ps
• [2] Watts S. Humphrey, A Discipline for Software Engineering, Addison-Wesley, 1995.
• See http://en.wikipedia.org/wiki/Watts_Humphrey• [3] Peter Wegner, Why interaction is more powerful than
algorithms, Comm. of the ACM, May 1997.• See
http://www.cs.brown.edu/people/pw/papers/ficacm.ps• [4] W. B. Langdon. See also
http://www.cs.ucl.ac.uk/staff/W.Langdon/
Litteraturtips
Från Arne• Essential Scrum: A Practical Guide to the Most Popular Agile Process (Kenneth S. Rubin)http://amzn.com/0137043295 • Agile Retrospectives – Making Good Teams Great(Esther Derby and Diana Larsen)http://tinyurl.com/8amwq6
• The Software Project Manager's Bridge to Agility(Michele Sliger, Stacia Broderick)http://amzn.to/awCcxx
• Management 3.0: Leading Agile Develepors, Developing Agile Leaders (Jurgen Appelo)http://tinyurl.com/6gt8b72
• Detta är Lean - lösningen på effektivitetsparadoxn(N. Modig, P. Åhlström)http://tinyurl.com/cxakwhk
Från Micael• Specification by Example av
Gojko Adzichttp://gojko.net