Skip to main content

Staffing for Scaled Agile: Retention is Better Than Acquisition

As you begin your large-scale agile transformation, you may find yourself printing out posters of The Big Picture, jack-hammering cube walls into pulp, and negotiating an awesome corporate site license for an Application Lifecycle Management (ALM) tool.  Plus you are likely putting rigorous product management, architecture and continuous integration practices into place, along with test driven development, and automated functional testing, without the last of which you will be completely helpless under your regression load.

This is all heady and exciting stuff, and just keep doing it, but I would recommend that as you do, you put staffing at the top of your list of concerns, and put a fair amount of energy into the effort.  The Agile Founding Fathers weren't messing around when they put the words "Individuals and Interactions" at the very top of the manifesto.  Make no mistake--agile lives or dies by the quality, motivation, and communication of the people practicing it, regardless of methodology and tools.

Resources are People Too!
No matter how comfy the bean bag chair, it can never support production of high value software if it is occupied by the wrong person, organized into the wrong team, doing the wrong thing.
amazon.com image of the Eazy Bean Bag(TM) chair
So who is the right person, what is the right thing for them to do, and how should teams be organized? Who manages them?  And what's all this about "self governing teams?"

Your Agile Organization
Despite what you may have pictured in the dark of the night, your key to success as an officer, executive, or manager in a scaled agile enterprise is going to be "self organizing" teams, not "self-leading or self-governing" ones.  I really like the way Steve Denning graphs the difference.  Here is his menu of organizational structures:

On graphs such as this one, in a book with "Radical" right in the title, one might expect that the team structure on the far right is going to turn out to be the most productive.  But one would be wrong, or at least, wrong in most actual corporate entities.  Here is Denning's chart of the team structures' comparative productivity:


Within the team, self-organization towards a shared goal is of paramount importance to productivity.  But all of this is for nothing without a well-communicated feedback loop with company management to provide those shared goals in the first place.

Self-organizing teams are not "natural."  Denning goes so far as to call them "precarious."  A whole team of people (that would be you, management people!) needs to be constantly in motion in order to create, protect, and maintain the ongoing health of those teams in a corporate environment.
In effect, a set of management practices needs to be put in place that encourages self-organizing teams to evolve into high-performance teams.  When things go wrong, as they inevitably do with something as precarious as self-organizing teams, safety devices need to be in place to identify and rectify the situation quickly and decisively. [The Leader's Guide to Radical Management2010)
Denning's book has a whole recipe for what these leadership and governance practices need to be, and I recommend you read it, but for purposes of this blog post, suffice it to say that you should not picture a bunch of wild agile teams running the world through their whims.  Scaled agile requires scaled leadership, communication, and governance.  So on to the next question:  where do we find the type of people who we can entrust to self-organize their team practices?

Your Agile Staff:
With few exceptions, the standard business rule that "retention is cheaper than acquisition" applies here. Your best agile people are almost without fail your best current people, whose numbers can be maintained, refreshed, and augmented as needed through high quality recruitment practices from the global job market.  What you need is training, and communications.  What you do not need is a wholesale house-cleaning.  Or if you do, please don't blame "the agile transformation" for it!

In particular, please be very thoughtful about your approach towards your current software functional testers as you embrace test automation.  People who are currently employed under the title of "Manual Tester" typically take one of three paths during an agile transformation:
  • Out.  If your people are manually tapping out steps from scripts they did not write themselves, and if they don't understand the application or the script, and if they are not interested in learning anything new, then you probably don't need them any more, right?
    • This is a particularly good context for applying the rule of "not throwing the baby out with the bath water."  If you have employees who truly do nothing but pound keys mindlessly, by all means, replace them with a machine.  
    • But be aware that you have two specialized testing positions to fill which can best be handled through retraining and enhancing the jobs of current testers with mental curiosity, an endless excitement about breaking software, and either analytical or automation skills.
  • Up/"The Devster."  This one you are probably familiar with--agile teams are often populated with testers who can code, and with coders who can write test automations.  Proper automated functional testing requires specialists in test environments, tools, tooling, widget-writing, data store versioning, and so on.  This is a great path for your more technically oriented testers.  Devsters could either be cultivated from your pool of:
    • Current testers with junior or senior software development skills, or
    • Developers who have a specific interest in building test tools.
  • Up/Functional Test Architect/Analyst:  What you may not know is that modern agile teams require an extremely well-crafted test strategy, based on an initial operational architecture for the system comprised of individual operational roles and end-to-end tests that represent user-testable paths through the system.  
    • Someone has to document that architecture with user acceptence in mind.
    • Someone needs to do an impact analysis per story on how that story changes existing or to-be end-to-end tests, and build out the documentation on that operational architecture as more is learned.
    • Someone needs to build out a proactive strategy for handling masked and synthetic test data, combinatorial analysis of how many scenarios must be run, and curation of reusable test modules, along with one-off tests specific to context.  
    • And all of this must focus on appropriately building out supplied acceptance criteria, which are often phrased positively, into appropriate positive, edge and negative test cases.
    • In sum, be very careful about your diamonds in the rough.  It would be sad if you find yourself surrounded by eager-beaver young people bristling with automation skills who don't have half the experience and talent needed for your test architect/analyst role.  Those skills are best found in your current staff: testers who can routinely design and implement the right set of test scenarios, composed with the right number of combinatorial data runs, and comprised of exactly the right test cases.  Hang on to those people.

And all of this segways, neatly, into one last point:

What People On Your Agile Staff Do
Oh!  Oh!  I know all about that!  You say.  There are three standard Scrum roles:  "Product Owner," "Scrum Master," and "Team."  I'm not sure how we're going to retrain everyone to do everything, but it's got to be done!  Otherwise we have SILOS and that is BAD.

The fact that an agile team needs to do an assortment of tasks doesn't lead to the inescapable conclusion that everyone on the team needs to do everything equally well.  In fact, I have seen and agree with the ideal of a team which evolves into a set of "T-shaped" individuals--each individual having deep knowledge of one or two sets of techniques, and enough to get by on the others.

For best results, in fact, you want people to be able to fill in for each other gracefully as needed, but that's not the same as posting an advertisement for a position in your organization as "agile team member."  Ask yourself, do companies who deliver custom software using agile techniques hire that way?  No, they don't, even the ones that let youself create the job title on your business card as "Disruptor" or "Hard Rockin' Rocket Scientist.". Professional agile software delivery firms classify people into the same types of roles that non-agile IT organizations use: "application developer," "analyst," "project manager," or "tester."

Please remember, until the revolution is complete, your agile team does not exist in a void:  you need to avoid crippling people by giving them a goofy non-fungible title.  Picture your smartest software developer at a job interview after she moved to Dubai to take care of her niece and nephew after their parents' tragic helicopter accident.  "Agile team member?" the interviewer would say, coldly.  "I was a developer," your smartest person says.  "Right, we'll hire you as a junior analyst." the interviewer says.

Don't let this happen to your best people!  And don't reinvent the wheel.  If you're a scaled organization, you're probably already running your business with a matrixed structure where individuals report to a line manager for practice guidance (Analyst Lead, Dev Lead, Test Lead), but get assigned to a team for project purposes, with that team lead by a project manager of some kind.  Here's what you do:

  • Leave your organization intact, with individual practitioners reporting to thematic line managers who, in turn, report into a management hierarchy as deep as is needed to do proper support of individuals' careers.
  • Allocate those same individual practitioners, already blessed with the titles "tester, developer, analyst, project manager," etc, to agile work stream groups.
  • Encourage and reward people if they pick up new skills, and allow them to recategorize themselves, if they qualify.
  • Ensure the project managers are "scrum master/facilitators" not "managers" in the old command-and-control sense of the word.  Empower scrum masters to escalate problems to program and line line management as needed, including people who are a bad fit for the team.
  • Leave your PMO intact, or create a small new one, to monitor metrics which you collect automatically from your teams for governance purposes.
The power of the agile team is in self-organization.  But the power of the agile organization is in...organization!  You need leadership, you need vision, you need energy, you need fair and automatically created metrics about progress towards well-understood goals.  Agile has a way of exposing people who have been free-riders in the past, so expect a certain amount of "Emperor's New Clothes" moments, and expect to act on them.  But in general, your staffing plan should be to retain the good people, the good leaders, and your existing good practices for leadership and governance, to ensure that your newly fostered hyper-productivity has the right channels for self-expression.

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...