Skip to main content

Hands Across the Conference Table: Coordinating Simultaneous Agile Work Streams

Most of the people I interact with are unequivocally excited about the opportunity to try agile for the first time. Not.

Most people have doubts. And one of the top questions I often get is "can I seriously use agile for a very large project with multiple work streams, and with cross-impacts from other groups who aren't agile at all?" Yes! Yes, you can. In fact, agilists and the agile approach has a particularly strong set of tools for helping you manage cross-team interactions. These tools not only help you scale your "pure agile" project management approach, but also can help strengthen best practices in your "waterfall" PM approach, if you're working in a hybrid environment. So let's talk about that.
From https://eventioz.com/events/culture-and-projects-are-not-like-oil-and-water-th--2
First, a few myths that you might have heard, but I'm sure you agree aren't true.
  • Agile doesn't scale.  Um, wrong.  Agile Scaling has been around for almost as long as agile itself, discussed, for example, this year by Tom Grant, in his blog on Forrester, and supported for ages before that by well-known luminaries Scott Ambler (Agile@Scale) and Dean Leffingwell (Scaled Agile, Inc.).  Myths about non-scalable agile are just there to prevent poor, deprived enterprise IT people from enjoying their rightful standing in the world of agile.  You're falling prey to agile snobs who prefer to work on small teams for small companies with bean bag chairs, and they are successfully trying to make you feel bad for working in a big company.  Sometimes it's hard to be Goliath.
  • If you do planning before you start coding, in order to support agile at scale, that's not agile.  Wrong again, in my humble opinion, and of course that of many others.  
But let's say I concede the point, and agree that every single practical thing that you might do to make agile work at scale makes it not-agile.  Let's look at what you can do within a multi-stream project which has agile elements (that would not be possible in a classic waterfall implementation).

You can plan the optimum number of work streams/work teams for your project in the first few weeks after kickoff.
  • For the work you will be able to manage internal to the scope of your own project, and will therefore be able to handle in an "agile" manner, you have divided up the needed features into small enough pieces that you can see in a very granular way whether it's possible to create parallel work streams who won't step on each other by touching the same parts of the code base simultaneously, or ever.  
  • Agile release planning calls for partitioning the work across the teams after you understand the architectural direction and the full feature set, but before you even start detailed analysis.
  • If you have an insufficient number of people with analysis, development, or testing skills to keep development moving in multiple streams, you know that ahead of time, rather than hiding those details in the "batch" mentality of delivering all requirements before starting all development.  
You can plan integration strategy with all cross-impact partners proactively.   Effective agile teams will inventory their data interfaces during release planning, and for each interface, determine:
  • Is the integration partner already done?  In this case, we build to their specification.
  • Is the integration partner going to start work after we're completely done?  In this case, they will build to our specification, and we can document where we ended up later, so long as it's in time for their process.
  • If the partner is building in parallel with us, targeting the same release?  Then the next question is, is the integration partner doing their needed new work in an agile or waterfall methodology?  For waterfall partners, agile teams need to develop detailed requirements around the interface before starting subsequent work, so that the agile team can mock and stub the partner behavior correctly, even if the partner doesn't have time to collaborate beyond that.
  • But better, does the integration partner want to do proactive interface testing with you, and could that be scheduled ahead of the official "Integration Test" period for the release?  You and your partner teams can also make proactive arrangements for mutual stubbing or mocking of code, developing test sets reciprocally (you provide test strategies around your code as it interacts with their system; they provide the obverse to you).
You can still do meaningful program-level roll-ups showing progress across the disparate work streams, so long as you agree to use business-friendly metrics like "actual code complete" rather than "points burnt up."  And in fact, since the work streams which progress in an agile manner will get to the coding sooner, the program-level dashboard becomes a showcase for the delights of agile over waterfall.

Please don't let the agile-for-tiny-teams-only people get you down.  Corporate moguls running ginormous agile programs world-wide, unite!  You have nothing to lose but, hm, okay, well, it's actually quite good to be a ginormous corporation.  And agile scaling just adds to the benefits.

Popular posts from this blog

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.

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.You need your user experience people (if applicable) and your analysts at the beginning of the project, as always, b…

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.
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 actual quotation from the Center of Excellence for Software Traceability website!] WBABA: [cowed silence]Corporate Standards …

The Agile Business Case

Many agile teams have never seen a business case, ever, and they may even be proud of it.

Our mantra is that we deliver "business value," not just "software," quicker, better, and faster, but if so, we certainly don't spend a lot of time reporting on value delivery, and in fact we may be scornful about "analysis paralysis."  As software developers, we consider ourselves to be doing quite well if we can deliver the software every two weeks (or continuously).  And this is particularly if we've enabled this frequent high-quality delivery through automated testing and automated build-and-release techniques.  We've reduced business risk by making results visible more often, and allowing the business to change direction more frequently.  We assert that along the way of course we're also delivering value.  But how would we prove it?

I've recently posited that we shouldn't even think of doing agile projects without capturing and recording s…