Skip to main content

Patterns for Agile Transformation Success: Agile Enterprise Adoption Without a Gut Rehab

Mike Cottmeyer has re-emerged in the blogosphere, after a bit of a lull, with an electrifying series of posts about enterprise agile, one of which is entitled How to Structure Your Agile Enterprise.  I love the whole series, and especially this post, anchored as it is in Cottmeyer's real life experience:
First of all… let me share that I have NEVER worked on a small agile team. I’ve coached many of them, but my introduction to agile was in the context of large enterprise class financial systems… things like online banking and bill payment. The kinds of systems where the company makes a penny or two on every transaction and does millions every year.
Is this your enterprise business flow reality??  From http://thedailywtf.com/Articles/The_Customer-Friendly_System.aspx
Cottmeyer provides some really crucial insights about agile at scale that may run counter to what you believe is "fundamental" to agile:
  • "Feature teams" are not practical, if any given feature involves a workflow where data passes through many different application silos, end to end.
  • In contrast, "Governance Teams" and "Product Owner Teams" are needed at scale, not just a single scrum master working with a single product owner who knows everything about every system, and a single self-governing team. 
In fact, Cottmeyer says, what is practical is a delivery team structure analogous to SOA systems architecture, where "services [are] loosely coupled and highly cohesive. When building Scrum teams, we want each team to be loosely coupled and highly cohesive… just not necessarily responsible for an end-to-end slice of the entire product."
A wonderful diagram from http://www.planetgeek.ch/2011/07/08/presentation-agile-code-design-how-to-keep-your-code-flexible/ -- applies both to code and to agile delivery team structure!

A question which may come to your mind as you read this, however, especially if you don't have Cottmeyer's organization currently coaching you, is "how do I get there from here?"  How feasible is it to morph from your current executive and vendor management strategy, from your current HR strategy, from your current policies about software delivery, from your current location strategy, from your current staff, and so on, to your optimal organizational end state?
From http://ethicsalarms.files.wordpress.com/2011/05/you-cant-get-there-from-here.png

The good news is that as an organization which is already making money through some kind of strategy and tactics, you are very likely to be set up very well for these changes already, and without having to throw away all your binders of regulations and policies (or requirements, if you were worried about that).  And, in fact, by leveraging your corporate goals, and using agile techniques to steer your strategy and tactics better to align with those goals, an agile adoption is likely to be the fastest way to make the most of your strong points.

From http://www.incredibleart.org/lessons/middle/tessell.htm
Let's start to talk about patterns of what is feasible, because, as Cottmeyer says, there are techniques and tools that work that can be described architecturally without descending into a coaching process that micromanages everything about a team's day to day operation.  And, just as Cottmeyer does, let's borrow from the now-standard concept of architectural design patterns to talk about things we may want to establish in some locally appropriate way with the business architecture which surrounds our software delivery.  Here are some ideas I've thought about already, some that I've blogged about already and some that I will build out in the coming weeks. 

Creational patterns
Structural patterns
Behavioral patterns
Concurrency patterns
The secret to agile transformation is that your enterprise already has patterns in place which promote the values of the manifesto:  working software, valuing people, keeping up with the market.  Further transformation can be aided by a coach that can help you reflect on what will get you closer to your corporate goals, and that you act on your findings.  Use what you're good at, and fix the rest as you go, based on the ROI of further investment in change.  And please let me know if you've seen other patterns that have worked--I would love to hear your ideas as well! 

Comments

Popular posts from this blog

How Do You Vote Someone Off of Your Agile Team?

One of the conundrums of agile conversion is that although you are ordered by management to "self-organize," you don't get to pick your own team.  You may not have pictured it this way, but your agile team members are going to be the same people you worked with before, when you were all doing waterfall!   I know I wasn't picturing it that way for my first agile team, so I thought I should warn you.  (I thought I was going to get between six and eight original Agile Manifesto signers.  That didn't happen.). Why "warn" you (as opposed to "reassure" you, say)?  Because the agile process is going to reveal every wart, mole, quirk, goiter, and flatulence issue on the team within a few hours.  In the old days, you could all be eccentric or even unpleasant in your own cube, communicating only by document, wiki, email, and, in extreme situations, by phone.  Now you are suddenly forced to interact in real time, perhaps in person, with written messag...

A Corporate Agile 10-point Checklist

I'm pretty sure my few remaining friends in the "small, collocated team agile" community are going to desert me after this, but I actually have a checklist of 10 things to think about if you're a product owner at a big company thinking of trying out some agile today.  Some of these might even apply to you if you're in a smaller place.  So at the risk of inciting an anti-checklist riot (I'm sorry, Pez!), I am putting this out there in case it is helpful to someone else. From http://www.yogawithjohn.com/tag/yoga-class/ Here's what you should think about: 1.        Your staffing pattern.  A full agile project requires that you have the full team engaged for the whole duration of the project at the right ratios.  So as you provision the project, check to see whether you can arrange this staffing pattern.  If not, you will encounter risks because of missing people.  Concretely it means that: a.    ...

Requirements Traceability in Agile Software Development

One of the grim proving grounds for the would-be agile business analyst (henceforth "WBABA")  is the "traceability conversation."  Eventually, you will have to have one.  You may have seen one already.  If you haven't, you may want to half-avert your eyes as you read further.  It gets a little brutal.  But if you close them all the way, you can't read. From:  http://www.highestfive.com/mind/how-to-perform-a-successful-interrogation/ Dialogue: WBABA :   ...so in summary, we complete analysis on each story card, and then we support the developers as they build it that same iteration! Corporate Standards Guy:   but how do you do traceability in agile?  You have to have traceability.  It's broadly recognized as an important factor in building rigorous software systems. These software systems permeate our society and we must entrust them with lives of everyday people on a daily basis. [The last two sentences are an actu...