AGILITY THROUGH THE LENS OF SOFTWARE ENGINEERING Agility Through the Lens of... · 19/8/2015  ·...

47
AGILITY THROUGH THE LENS OF SOFTWARE ENGINEERING Louisville Agile Forum, August 2015

Transcript of AGILITY THROUGH THE LENS OF SOFTWARE ENGINEERING Agility Through the Lens of... · 19/8/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.