Sunday, 31 October 2010

Live at Last

We went live with "real" customers this week just gone.  It's the culmination of nearly two years work for me personally, and three years for our company.



It's really nice to be live at last, and to have our name out there. It might (in fact, should) change the focus of our work. Without paying customers it's much more difficult to prioritise work based on what they might need or want.

Exciting times for LMAX!

Friday, 9 July 2010

Lean Software and Systems Conference 2010 (Bletchley Park)

This is just a summary of the points I took from the Lean conference at Bletchley.  They all need expanding, this is just the stuff that struck me that I want to record.

A Kanban Multiverse – Karl Scotland
Points from his talk
  • Meaning = visualise; interact; persist
  • Kanban provides the translation between communities
  • Remove columns from the Kanban board - no more chucking things over the wall to people
  • Flip charts for design models
  • Dots on cards for every day in dev, crosses for every day in test
  • Exploration of UI is part of the card
Ideas applicable for my project
  • Add broken acceptance tests to the Kanban Board?
  • Start doing task breakdowns again
  • Add issues and impediments to Kanban board?
  • Mingle should be updated to reflect the Kanban, at the moment the states are incorrect

Converting a Scrum Team to Kanban - Mattias Skarin
Points from his talk
  • Moved from releases per iterations to releases per week
  • Shifted motivation from delivering at end of iteration towards delivering quality
  • Establish release cadence and team rhythm
  • Root cause analysis to find problems and target them
  • Removed the need for estimates
Ideas applicable for my project
  • Shift to focus on release cadence from iterations?

Product Development in the Land of the Free

Points from their talk
  • Goal should be to “Delight Customers”
  • Sitting together decreases waste
  • Sysadmins belong to the team and rotate
  • Deliver value fast enough and you don't have to ask for permission

Learn to Lean: Becoming a Lean Startup – Damon Morgan

Points from his talk
  • Introduce a learning culture: blogs, brown bags, conferences
  • Scrum introduces a half-day overhead of planning etc.
  • Scrum implies a handed off release to QA / Ops
  • Didn't have “QA” but “Developer/Testers” and “Tester/Developers”
  • Lean = planning on demand. 
  • Not sure when we're supposed to do retrospectives with a pull model?
  • Definition of Done is not only released to production, but has two possibilities: Generating Value and Not Generating Value
  • Cards that are “complete” but not released are inventory (and therefore waste)
  • Need fast smoke tests
  • Monitoring allows you to reduce errors and see if the release was good. Auto-rollback if not
  • Releases can be small, feature-specific releases
  • Have an ideas wall for anyone to contribute
  • AB Testing very useful to this organisation.
  • Reduced reliance on estimates
  • Releases not a big deal – happen daily
  • Measure outcomes, not activity
  • Out of 20 ideas, maybe one works. But cost/benefit clear and well understood
Ideas for us
  • Become more release-focussed
  • Should we encourage developers to do (more) exploratory testing?
  • Definition of done should be “released”
  • Better automated monitoring

Using Kanban to Continuously Improve – Benjamin Mitchel

Points from his talk
  • Quality First
  • Flow important
  • “What wasted your time?” to do root cause analysis
  • Measure time taken to flow through the board
  • Even if you show people metrics they still don't believe you
Ideas for us
  • Thank goodness we're not a big enterprise organisation

Behaviour Driven Development – Liz Keogh

Points from her talk
  • The term BDD and what it means has solidified over time, but it's nothing new
  • Concentrate on your riskiest tests first
  • Write your tests starting “should”
  • Conversations are around behaviour not tests
  • Development of stories is focussed on learning
Ideas for us
  • We're pretty good at BDD

Value Stream Languages – Eric Willeke

Points from his talk
  • Really just a summary of the day / Lean
  • We should respect different languages
  • Break things down into what you need to learn, not what you need to do and how long it will take
  • Variation comes from time it takes to learn, not time it takes to do
  • Ask “what do we need to know that we don't know now?”
  • Break milestones down accordingly – High Learning → High Risk → Core Value → High Value
  • Standup should be phrased “what did we learn yesterday; what do I need to learn today”
  • When your acceleration of learning decreases it might be time to stop designing and start doing
Ideas for us
  • Maybe a shift in thinking about “learning” instead of “doing”

Summary

Points frequently repeated and/or relevant to my project
  • Aim towards no estimation
  • Not focussing on iterations but on releases
  • Releases are part of the definition of done
  • Our BDD and basic Kanban is pretty good
  • Visibility allows us to find bottlenecks and target them
  • Focussing on learning might be a path to improvement
  • Silos are Bad, mmmkay?