AGILITY THROUGH THE LENS OF SOFTWARE ENGINEERING Louisville Agile Forum, August 2015
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.