Skip to main content

Business Analyst Corner: Write Later, Not Less

If you are a BA looking down the barrel of an agile adoption at your work place, you may feel worried that you will be switching from reams of paper stored in large binders to index cards. And not the big cards either. You're looking at the 3x5 ones.  You feel this plan is ridiculous.  You may murmur something to yourself about "insane fads!" or "damage control!" or "keep secret requirements locked in my desk and bring them out later to save the day!"  Take heart, dear friends.
card wall from http://www.scrumology.net/2011/09/15/kanban-kickoff/ (Mr. Yuck is public domain)
Things may be different at start-ups, in small shops, and in places already whirring like Kanban tops. But in most fair-sized enterprise IT shops I've worked in, your first efforts at agile implementation will not aim to reduce the quantity of requirements documentation significantly.  Instead, they change the timing at which the requirements are written, and with that change in timing, reduce the work you will spend as a BA filing and executing change requests, and reworking traceability matrices.  The overall work may also be reduced since you don't write details for features you don't implement, but the ratio of working software to the number of words and diagrams in corresponding documentation may not change at all.

That's right:  you will still end up with high quality requirements at familiar levels of bulk.  Let's compare what you do now with what you might do with a more agile process.

Requirements-first technique (you likely do this now):
1)  You and your group may write requirements for 3-6 months.  (This may be divided into separate "business" and "systems" requirements phases).  You may then have some "architects" do some further system requirements in the form of a detailed "systems architecture document."  (SAD)

2)  Once development starts, if anything changes, you file or update a change request and re-write all of the linked requirements (and the traceability matrix that links them together!) to match the actual behavior of the working software.  Changes can occur because:
  • the market changed, so now your business needs something different
  • you have learned more about what you're doing, so you don't want exactly the same implementation you wanted before
  • the development group ran out of time, so a bunch of requirements need to be removed.
  • or for other reasons.
If development takes 3 months, and system test takes 3 months, and UAT takes 3 months, you could end up spending 15-18 months first writing, then continuously re-writing the requirements.  And if you're in the kind of shop that has to "trace changes," your resulting documents may be very hard to read, because everything you ever wrote is still there, color coded or struck out.

"Just in time" requirements technique (typical enterprise-level agile teams do this):
1)  You, the SMEs, the developers, and the testers all get together for a "release planning" workshop to determine what the high-level goals are, and what the system will look like (also at a high level) to meet those goals.  You create a flexible outline of the pieces of the system using the index cards (sometimes called "story" cards), arranged in the rough order you plan to build those pieces.  You can think of this as just writing the table of contents for what would have formerly been your requirements documents.

2)  Just before development starts, you work with SMEs and other BAs to write fully detailed requirements for each of the stories you intend to tackle in the upcoming 2-week iteration.  You may start an iteration ahead, or you may just start a few days ahead.  The fully detailed requirements attached to a story are called "narratives" at ThoughtWorks, or sometimes just "detailed requirements."  As you go, you keep writing the details, the stuff that adheres to your table of contents, just before the developers actually start coding.  If changes occur to the big picture or any of the implementation that's going to occur down the line, that's fine.  You let developers complete the work for the current iteration, but you change the remaining "release plan" cards to reflect the team's new learnings and business needs.

If your workshop took 2 weeks, and development takes 3 months, you have now completed exactly one outline of the work (the release plan), and one set of detailed documents for what you actually did (the narratives attached to the stories you did).  Roughly speaking, 18 months turns into a little over 3.

Graphically:
 

So if someone tries to tell you that agile lacks rigor, or that you don't need BAs to facilitate SME discussions and record the results any more in an agile project, you may want to take their hysteria with a pound or so of salt.  Ask them:  are they a theory-drunk zealot, or have they actually tried it in your environment?

I was originally going start the title of the post with "BA Corner," but I didn't, because my teenage daughter has confided in me that whenever I say "BA," she thinks "Bad A**."  You can imagine the resulting dinner conversations, when I attempt to talk shop.  At any rate, if you're feeling particularly fierce today, please feel free to re-read this post substituting her "BA" definition.  Power to the BAs!  

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…