Friday, August 31, 2012

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.

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

Sunday, August 19, 2012

Stress in Speakers at Agile2012

I chatted with a lot of presenters at Agile2012 last week.  So many of them were releived to have been done with their presentations.  I think the conference creates a bit of stress in the speakers.

I didn't have any stress as a volunteer.  I helped out with the conference sessions, collected feedback forms, tried to help the speakers right at that most stressful moment, before the first joke and before the audience gets into the topic.

I think all the speakers that I saw did a wonderful job.  I volunteered at the experience report and case study stage. These are the non-professional speakers. The nervous energy in the room rises very predictably in these session.

So I suggest the speakers take a vacation after this conference - you earned it.

Master Your Stress
Created by:

Thursday, August 9, 2012

Agile in a CAN

Wow - look at the number of people that are sponsoring this awesome idea,  Agile in a Can.  Proving once again that crowdsourcing is the 21st century answer to robber-barrons of the 19th century.  Yes - "the 21st century is when it all changes" - Capt. Jack Harkness.

You should hurry over to Agile In A Can website to get in on this once in a life time deal.

Limited supplies of the active ingredients will make this product more and more valuable into the future.