agility through the lens of software engineering agility through the lens of... · 19/8/2015 ·...
TRANSCRIPT
-
AGILITY THROUGH THE LENS
OF SOFTWARE ENGINEERING
Louisville Agile Forum, August 2015
-
Who is this dude Tom Harrison?
• Rose-Hulman 1995 CS, 2014 MSSE
• 3 years @ Interactive Intelligence
– Delivery management and agile coaching
• 17 years @ Sagian+Beckman+Coulter+Danaher
($16+B)
– 6 life science products (ROBOTS!)
– 1 clinical diagnostics product
– Engineering and talent management
• Geek, Gamer, Family, Curious
-
LET’S BUILD SOME CONTEXT -
“WHY” AGILE?
-
Context is Everything
“Context is worth 80 IQ points.”
-Alan Kay
“There are no best practices, only good practices
in context.”
-Kaner and Bach
-
Agility depends on context
-
Manufacturing
Maintenance
Derivative
Extension
New Product
Development
Research
Deliberate
Innovation
Purposeful
Creativity
Disruptive or
Revolutionary
Technology
Consider the Stacey Matrix
-
Manufacturing
Maintenance
Derivative
Extension
New Product
Development
Research
Deliberate
Innovation
Purposeful
Creativity
Disruptive or
Revolutionary
Technology
Stacey Matrix with
Development Styles
-
There are other models
Cynefin (Snowden) Structure-Behavior (Appelo)
-
And culture too
Cottmeyer Agile Adoption Model Schneider Culture Model
-
MORE CONTEXT –
“WHAT” IS DIFFERENT ABOUT
AGILE?
-
Values are valued
-
Principles are your guide1. Our highest priority is to satisfy the
customer through early and continuous
delivery of valuable software.
2. Welcome changing requirements, even
late in development. Agile processes
harness change for the customer's
competitive advantage.
3. Deliver working software frequently, from a
couple of weeks to a couple of months,
with a preference to the shorter timescale.
4. Business people and developers must
work together daily throughout the project.
5. Build projects around motivated
individuals. Give them the environment
and support they need, and trust them to
get the job done.
6. The most efficient and effective method of
conveying information to and within a
development team is face-to-face
conversation.
7. Working software is the primary measure
of progress.
8. Agile processes promote sustainable
development. The sponsors, developers,
and users should be able to maintain a
constant pace indefinitely.
9. Continuous attention to technical
excellence and good design enhances
agility.
10.Simplicity--the art of maximizing the
amount of work not done--is essential.
11.The best architectures, requirements, and
designs emerge from self-organizing
teams.
12.At regular intervals, the team reflects on
how to become more effective, then tunes
and adjusts its behavior accordingly.
-
At the Heart of Agile
Alistair Cockburn
-
Agile is about PeopleSkill
Motivation
Attitude
Environment
-
Learning
What needs to be
learned?
What problem is being
experienced?
What assertion needs to
be validated?
How will the idea be tested?
Does the idea work?
What else was learned?
What new ideas have emerged?
Agile is about Learning
Questioning
is Essential
to Learning
-
Agile is about Discipline
• Always focus on customer value
• High quality through technical excellence
– Software craftsmanship
– High levels of automation for regression and impact
analysis
• Continuous
– Planning, testing, learning, improvement
-
Agile prefers complete functionality
delivered incrementally
Instead
of this:This:
Analyze
Design
Implement
Qualify
Deploy
-
LET’S APPLY CONTEXT –
“HOW” DO YOU DO AGILE?
-
Where do you start?
Do less and get more Done
Build the right product
Build the product right
What evidence do you have of that?
David Hussman
-
There are many agile styles
A process is a set of tools, not a solution
•Optimize the Whole
• Focus on Customers
•Energize Workers
•Eliminate Waste
• Learn First
•Deliver Fast
•Build Quality In
•Keep Getting Better
Lean Software
-
A Solid Foundation
Lean
Agile
Learning Organization
Changing Software Development:
Learning to Become Agile by Allan
Kelly
“just enough”
process
discipline
-
Lean Startup for product and
customer discovery
-
Lean for systems thinking and
analysis
• Optimize the Whole
• Focus on Customers
• Energize Workers
• Eliminate Waste
• Learn First
• Deliver Fast
• Build Quality In
• Keep Getting Better
Lean Software
-
Extreme Programming for
Technical Practices
-
Scrum for Project Management
-
Kanban for visualization
-
Manufacturing
Maintenance
Derivative
Extension
New Product
Development
Research
Deliberate
Innovation
Purposeful
Creativity
Disruptive or
Revolutionary
Technology
Stacey Matrix with Agile Styles
-
Test Driven
Refactoring
User Stories
Acceptance Tests
Sprints Product BacklogsSprint Reviews
Sprint Backlog
Continuous Integration
Evolutionary Design
Burndown
Burnup
Velocity
Information Radiators
Iterations
ReleasesPersonasKanban
Kaizen
Common Workspace
Mura - Muda
Cross Functional TeamsDaily Scrum Meeting
Retrospectives
Iteration 0
Sustainable Pace
Chartering
Domain Driven Design
Collective Ownership
There are huge piles of practices
-
Information RadiatorsDomain Driven Design
Test Driven
Refactoring
User Stories
Acceptance Tests
Sprints Product BacklogsSprint Reviews
Sprint Backlog
Continuous Integration
Evolutionary Design
Burndown
Burnup
Velocity
Iterations
ReleasesPersonasKanban
Kaizen
Common Workspace
Mura - Muda
Cross Functional TeamsDaily Scrum Meeting
Retrospectives
Iteration 0
Chartering
Don’t focus on the practices
Choose tools that show value
There are huge piles of practices
Sustainable PaceCollective Ownership
-
Success is…
frequent delivery of whole value,
building the right thing, the right way,
collaboratively learning & improving,
balancing evidence and intuition,
and producing what people need.
-
FOR INSTANCE, WHAT DOES
INTERACTIVE INTELLIGENCE
ACTUALLY DO?
-
Intentional selections stick
Community - Teams
Products - Planning Measuring - Learning
Iterative Delivery
Chartering
Common Workspace
Information Radiators
Iteration 0
Story Maps and User Stories
Product Backlogs
Personas
Release / Iteration Planning
Acceptance Tests
Burnup / Velocity
Continuous Integration
Test Driven / Refactoring
Retrospectives
Stand Up Meetings
Product Reviews
Continuous Feedback
-
Product Roadmap
Project Charter
The continuous view
plan
evaluate
There are many layers of
planning and evaluation.
Iterative planning and
evaluation provides
many opportunities for
course corrections.
Planning and evaluation
moves from coarse grain
to fine grain, and from
abstract to detailed
abstract,
coarse grained,
high level
precise,
fine grained,
detailed
plan
plan
evaluate
Iteration
Story
code
validatedesign
evaluate
-
Product Roadmap
Iterations Planning
Chartering
and/or
EPICSPersonas
Story Writing/Mapping
Prioritization
Daily Standup
Dev Project (DP) ~3 Months
Retrospective
A flattened view
-
Project Dashboards
Based on Agile Data
-
REFERENCES
-
And special thanks to
DevJam for original
materials.