Skip to main content

Exercise:: Mapping Engineering Practices to Agile Principles

What are the necessary and sufficient engineering practices that an agile team needs to support the Agile Manifesto's 12 principles?

There is no one right answer - yet there are some very common patterns one sees when this exercise is repeated for multiple teams within an organization transitioning to agile software development.  From this analysis one could derive the set of core practices for your agile organization.





Exercise :: Mapping Engineering Principles to Agile Practices (PDF) by David Koontz

Facilitation Guide
Set up Print all material, one Agile principle per page (enlarge if you wish).
Hang the Agile Manifesto on the wall.
Hang the 12 Principles on the wall.
Hang the suggested list of Practices on the wall.

Have multiple colors of sticky notes & lots of pens/markers.

Introduce the Manifesto and the 12 principles
Discuss the Agile Manifesto - tell the history - describe what a process is and is not. Is “Agile” is a process?  Describe a philosophy - could it be that?

Distinguish between a Principle and a Practice
Switch to the Engineering Practices - describe a few of them - invite participants to read the list, to circle the ones which they currently do very well. 
Invite them to add to the list - debate which practices are redundant (ex: code review & pair programming).

If the group currently has real disciplined practices - use them to map to the principles - however if not don’t waste your time - just to the desired future state.

Dot-vote - each person pick three (2-5 is a nice range for this) engineering practices they wish to use in the future - the best practices to make us an Agile team.

Using those top voted practices (limit to 5 -8 practices to map), have people pair up and map one practice at a time to the 12 principles.  Decide if the engineering practice “supports” the principle - if so put the sticky on the paper - if weakly supporting - put the sticky below - if not at all then no sticky. Same pair do each principle. Use different colored stickies for different practices to create a nice Info-graphic when all done.
Be the example - select two participants and demo the first few principles for something like TDD.

Debrief
Which principle is weakly supported by practices?
What practice would fill this gap?
Which practice supports the most of the Agile philosophy?
Does it work alone - if we just do that one practice - are we Agile?
What is the “neccessary and sufficient” set of practices for Agile?
Which practices should we embrase as a core set?



Engineering Practices
Continuous Integration with Automated Builds
Smoke Testing / Build Verification Tests
Domain Driven Design / Emergent Design / Evolutionary Design Behavior Driven Development
Test Driven Development
Pair Programming
Code Reviews
Automated Software Metrics
Source Version Control
Issue / Bug Tracking
Configuration management
Unit Testing
Integration Testing via Mock/Fake/Stub sub-systems
Exploratory Testing
System Metaphor
Story Testing / Acceptance Tests / Automated Regression Test
Scrum (Process Framework)
Extreme Programming (XP) Framework
Stand-up Meeting
Velocity Based Planning
Team estimation in relative units (Story Points)
Iteration Demo & Customer Feedback
Information Radiators (Big Visible Charts)
Cross-Functional Team
Team based work flow / Teamwork / Persistent Team
Co-located Team / Common Workspace
Design Improvement via Refactoring
Small Releases / Frequent Delivery
Collective Code Ownership
Coding Conventions & Standards
Simple Design (Once & Only Once, YAGNI, etc)
User Stories


See Also:

The 12 Principles Ice Breaker by Gerard Chiva on Oikosofy
What are the Principles - a case study of using this exercise

1 comment

Most Popular on Agile Complexification Inverter

David's notes on "Drive"

- "The Surprising Truth about what Motivates Us" by Dan Pink.

Amazon book order
What I notice first and really like is the subtle implication in the shadow of the "i" in Drive is a person taking one step in a running motion.  This brings to mind the old saying - "there is no I in TEAM".  There is however a ME in TEAM, and there is an I in DRIVE.  And when one talks about motivating a team or an individual - it all starts with - what's in it for me.

Introduction

Pink starts with an early experiment with monkeys on problem solving.  Seems the monkeys were much better problem solver's than the scientist thought they should be.  This 1949 experiment is explained as the early understanding of motivation.  At the time there were two main drivers of motivation:  biological & external influences.  Harry F. Harlow defines the third drive in a novel theory:  "The performance of the task provided intrinsic reward" (p 3).  This is Dan Pink's M…

Exercise:: Definition of Ready & Done

Assuming you are on a Scrum/Agile software development team, then one of the first 'working agreements' you have created with your team is a 'Definition of Done' - right?



Oh - you don't have a definition of what aspects a user story that is done will exhibit. Well then, you need to create a list of attributes of a done story. One way to do this would be to Google 'definition of done' ... here let me do that for you: http://tinyurl.com/3br9o6n. Then you could just use someone else's definition - there DONE!

But that would be cheating -- right? It is not the artifact - the list of done criteria, that is important for your team - it is the act of doing it for themselves, it is that shared understanding of having a debate over some of the gray areas that create a true working agreement. If some of the team believes that a story being done means that there can be no bugs found in the code - but some believe that there can be some minor issues - well, …

Elements of an Effective Scrum Task Board

What are the individual elements that make a Scrum task board effective for the team and the leadership of the team?  There are a few basic elements that are quite obvious when you have seen a few good Scrum boards... but there are some other elements that appear to elude even the most servant of leaders of Scrum teams.









In general I'm referring to a physical Scrum board.  Although software applications will replicated may of the elements of a good Scrum board there will be affordances that are not easily replicated.  And software applications offer features not easily implemented in the physical domain also.





Scrum Info Radiator Checklist (PDF) Basic Elements
Board Framework - columns and rows laid out in bold colors (blue tape works well)
Attributes:  space for the total number of stickies that will need to belong in each cell of the matrix;  lines that are not easy eroded, but are also easy to replace;  see Orientation.

Columns (or Rows) - labeled
    Stories
    To Do
    Work In P…

What belongs on the Task Board?

I wonder about these questions a lot - what types of task belong on the task board?  Does every task have to belong to a Story?  Are some tasks just too small?  Are some tasks too obvious?  Obviously some task are too larger, but when should it be decomposed?  How will we know a task is too large?

I answer these questions with a question.  What about a task board motivates us to get work done?  The answer is: T.A.S.K.S. to DONE!



Inherent in the acronym TASKS is the point of all tasks, to get to done.  That is the measure of if the task is the right size.  Does it motivate us to get the work done?  (see notes on Dan Pink's book: Drive - The surprising Truth about what motivates us) If we are forgetting to do some class of task then putting it on the board will help us remember.  If we think some small task is being done by someone else, then putting it on the board will validate that someone else is actually doing it.  If a task is obvious, then putting it on the board will take vi…

Team Performance Model - by Drexler and Sibbet

Many of you have all heard of the Tuckman model of team dynamics (Forming, Storming, Norming, Performing).  It was created in 1966 and has become the most popular model for describing team behavior.  Is it time to level up in your mental model of team dynamics?  Are you ready for a richer more functional model?



Introducing the Team Performance Model by Drexler and Sibbet



Orientation - Why am I here?
"Orientation is about understanding the purpose of a team and assessing what it will mean to be a member.  you need to understand the reason the team exist, what will be expected of you and how you will benefit from membership.  In a new team, these are individual concerns, because the group is only potentially a team.  that is why these concerns are illustrated as occurring in your imagination at an intuitive level.  As a team leader it is important to provide time and space for people to answer these internal questions themselves."

Keys to when Orientation challenges are resolve…