Intro to Agile and Lean Software Development
-
Upload
aleksejs-truhans -
Category
Technology
-
view
1.694 -
download
6
Transcript of Intro to Agile and Lean Software Development
Agile Riga Day 2012 Warm-up Agile and Lean Fundamentals
AgileRigaDay 2012 Warm-up
Agile and Lean Fundamentals
http://www.agile-latvia.org
Audience
Why are you here today?
Expectations?
What bothers you most in your current situation?
Introductions
Your hosts: eBIT.lv & agile-latvia.org
Aleksejs TruhansProgramming, analysing, managing projects and teams, teaching software engineering
Thanks to progmeistars.lv
Now at Citadele banka, tsi.lv, nh.lv, javaguru.lv
@AleksejsTruhans
Subject
Software development process
Properties of a good process?
Contributing factors?
Sample maturity ideas
Sustainable completion of requested features on time and on budget
Supported by Experience
Discipline
Shared knowledge
Communication
Reflection
Fast feedback
Borrowing from industry
Compare software development to manufacturing and engineering
Speicifics of software process: Producing one and the same car
The only detailed enough model is the program itself
We are producing decisions
Team-based design
Invent
Communicate
Decide
How to improve?
Creativity?
Communication?
Making right decisions?
Challenge
Changeableenvironment
people
problem
solution
Agile
Mindset
Applicability: team size & cost of failure
How much effort do you waste due to wrong assumptions, bad design, etc.?
How much time do you waste due to inefficient process?
Agile Manifesto
We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value: Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan That is, while there is value in the items on the right, we value the items on the left more.
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.
From http://agilemanifesto.org/principles.html
Agile Principles
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.
From http://agilemanifesto.org/principles.html
Agile Principles
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.
From http://agilemanifesto.org/principles.html
Lean
A recent problem your team have encountered? Have you resolved the root cause or taken a workaround?
How much time do you spend in test and fix phase?
Lean
The challenge Toyota faced in post-war JapanSmall batches, rapid machinery changeover
Just-in-time, Kanban
Jidoka: Autonomation, Stop the Line and Root Cause
Mistake-proofing with poka-yoke
W. Edward Deming and Eliyahu Goldratt
E. Goldratt, The Goal
Increase throughput (as sales) and decrease inventory and decrease operating expenseall at the same time
The longest queue is right before the bottleneck
Edward Deming,
Out of the Crisis
Build quality into the product
Not the lowest price but lower total cost through long-term relationships
Training on the job, education and self-improvement
Leadership instead of supervision
Eliminate management by objective
Eliminate management by fear
Edward Deming,
Out of the Crisis
Pride of workmanship
Eliminate slogans
Eliminate barriers between departments
The Seven Wastes - Muda
Partially done work
Extra features
Relearning
Handoffs
Task switching
Delays
Defects
?
Which waste is the worst offender at your company?
?
Would it help to even out the arrival of work?
minimize the size of things in process?
limit work to capacity?
reduce utilization of people's available time?
establish a regular cadence?
Lean Software Development
Stop maximizing local efficiencies, optimize the whole
Frequent information transfer and integration
Continuous process improvement
Enterpreneural expert leader
Expert workforce
Set-based concurrent engineering
From Implementing Lean Software Development: From Concept to Cash
Lean Software Development
Eliminate waste
Build quality in
Create knowledge through disciplined experimentation and retain it
Defer commitment, yet commit
Deliver fast
Respect people
From Implementing Lean Software Development: From Concept to Cash
Process performance
Value over timeTotal value of the product, not just software
Total time spent - from concept to cash
A tool value stream map
From Implementing Lean Software Development: From Concept to Cash
Value of software
According to J.B. Rainsberger:Features
Design
Feedback
Value of a feature
Helps to prioritize backlog
High-value items before low-value
High-risk high-value items before low-risk
Items that will create significant new knowledge before those already well understood
Items with lower cost to support and develop before higher cost
Kanban
David Anderson
Pull the work. Limit the capacity.
Visualization of the flow stimulates improvement and provokes change even of waterfall teams ;)
Kanban board cartoon: http://blog.crisp.se/henrikkniberg/2009/06/26/1246053060000.html
Kanban
Evolution rather than revolutionAgnostic to software engineering and management practices
When 1 week iteration is too long
Cadence taking form of average lead time
Estimations and target dates to be used appropriately
Service level lanes
Scrum
Sprint: Planning sprint backlog
Daily standup
Demo
Retrospective
Scrum
RolesProduct owner
Scrum master removes obstacles
Cross-functional team
Scrum
ToolsInformation radiator - whiteboard
Burndown chart
ApplicabilityPeer pressure
Assuming developers are eager to do the job, scrum fully loads them with most valuable tasks
Extreme Programming
User stories
Release planning
Iteration
Acceptance tests
XP Iteration
PlanningEstimates by those taking the job
Project velocity
Collective code ownershipPair programming
Moving people around
XP Iteration
QualityRefactor mercilessly
Test driven development
Continuous integration
LearningNew tests
New stories
Extreme Programming
More here: http://www.extremeprogramming.org/map/project.html
The journey goes on...
Agile Riga Day 2012, Agile Tour, see more at http://lnkd.in/_7rMR2
Tom & Mary Popendiecks Lean Sotware Development
Eliyahu Goldratt Theory of Constraints
The journey goes on...
Regarding people: Linda RisingRetrospectives
Alistair Cockburn
Edward W. Deming
The journey goes on...
Yasuhiro Monden (1998), Toyota Production System
Kanban David Andersonhttp://www.se-radio.net/2010/02/episode-156-kanban-with-david-anderson/
http://www.infoq.com/minibooks/kanban-scrum-minibook
The journey goes on...
CodeJ.B. Rainsberger
Robert C. Martin
Martin Fowler
Mike Cohn - User stories
Thank you!
Materials used in the presentation have their source cited and are copyrighted by their respective authors. Rest of the presentation Copyright 2012 Aleksejs Truhans, licensed under a Creative Commons Attribution-NonCommercial 3.0 Unported License.
Muokkaa otsikon tekstimuotoa napsauttamalla
Muokkaa jsennyksen tekstimuotoa napsauttamallaToinen jsennystasoKolmas jsennystasoNeljs jsennystasoViides jsennystasoKuudes jsennystasoSeitsems jsennystasoKahdeksas jsennystasoYhdekss jsennystaso