logo design...copyright Elena Yatzeck, 2010-2015

Wednesday, February 15, 2012

Less Scorn, More Listening

I got a tweet this morning about the new VersionOne "State of Agile Development Survey" in which the re-tweeter used hashtags like #shocking and #fail.  Looking for a good laugh, I clicked on over to the survey, and realized I #liked the survey and I thought it was #interesting and #helpful to me.  I didn't find anything that jumped out to me as a #failure in a particularly #horrifying way.  Then for a moment I thought maybe I am not one of the #Agile Cool Kids.  Of course the moment was brief and I bounced back quickly--please don't worry. 

But as I thought it over, I realized I myself used the phrase "that's CRAZY" yesterday for a perfectly reasonable management reaction to a difficult personnel situation on a team.
Have you ever thought about how much elitism and scorn we carry around with us in the Agile world?  Every question becomes a target for someone to poop on, as Triumph the Insult Comic Dog would say.  Do you use written requirements?  Aren't you collocated?  Do you still have silos?  Do you still have a PMO?  Does your firm have management?  Are you working for The Man?  How many Agile Manifesto signers do you know?  Do they think you're cool?  Are you still using Sharpies with caps instead of the ones that click?  It goes on and on.

On the other hand, one thing we do too infrequently is stop to listen to each other and to our clients.  By "listen," I mean more than just "waiting until the other person stops talking before getting to say what you are dying to say."  You may be surprised if you actively listen to what other people are saying, rather than thinking you know what they are saying, because they've said it 1000 times before.  Did you know--stay with me--that people only hear between 25-50% of what you say?  (You skipped that, didn't you?).  Listening is a good skill to have, and being agile doesn't make you exempt from having to do it.  In fact, the fast pace of most agile projects and their reliance on spoken communication make real listening vital (at least until you know your fellow team members well enough so that you really do know what they're going to say all the time).  (KIDDING!)

Just stop.  Listen.

It's okay to feel distress on behalf of others who don't share your point of view, but it's not ever going to be productive to poop on them.

Tuesday, February 14, 2012

The Pirate Code: You and Your Official SDLC Process

Agile purists may be frightened to learn that in many enterprise environments, one of the first steps executive management may take towards agile adoption may be to establish an official agile SDLC process, and to post a diagram representing the process, along with its artifact templates, in some prominent place on the company web site.  There will be 3-D box diagrams and arrows on it for sure, along with many links and appendices.  The diagrams and artifact templates themselves will go through weeks or months of review before central posting, not to mention what will theoretically happen if your project adheres to the highly edited result.

One might think that leading with the official SDLC would seem to defeat the whole point of "self organization." Plus, one further conjectures, the kind of people who want to push agile from the top are just the ones who want to commit other anti-agile atrocities such as requiring an audit trail of changes to the plan or forbidding teams to spend company money on food.  "Run!" these pundits may tell you.  "Run away!"

Not so fast, me hearties.  In an enterprise environment, a posted SDLC sanctioned by your Chief Process Officer and/or your CIO may be exactly the friend you need to help move your pilot projects forward.  If I weren't so committed to the pirate theme, I would throw in a metaphor here about the baby and the bathwater.  Don't panic--the public embrace by a PMO of a new "agile SDLC" can be just what is needed to help trigger an organization's tipping point towards wide scale agile adoption.

How can this be?  Stop to ask yourself what the SDLC means in your context.  What's the worst that could happen?  Perhaps in your context, your executive management has indeed put the cart before the horse, the SDLC can never be followed by anyone in real life, and a swarm of "Quality Assurance Engineers" will descend on your pilot and shut it down before you even get out of Iteration 0.  You will be accused of orchestrating a flagrant violation the company's SOX and ISO policies, and ushered off of the premises with a small cardboard box of your belongings.  Kiss those Legos in the team room goodbye.

Okay, that's a pretty bad outcome for you.  You'll be forced to say things like "best thing that ever happened to me!" or "always glad to fail fast!"

The BEST outcome, on the other hand, might be the one where you get to write the SDLC yourself, and executive management agrees that just the Agile Manifesto will be fine without any further detail, and they give you a big raise and a trophy.  That might not happen though.

A pragmatic agile transformation consultant may instead want to embrace the emergence of a top-level posted SDLC as a signal that what you and your pilot teams are doing has the blessing of top executive management.  Believe it or not, in a large company, people do not want to have you show up, rub your hands, and say, "haha!  now we're going to break all the rules!  haha!"  What they want is reassurance that if they go through the pain of changing the way they do their work, the change will stick, others will learn from them, and their efforts will not be wasted.

A large organization is hard to change, and a small non-compliant pilot group runs the risk of being "first to contribute to reduced operating expenses."  On the other hand, a small pilot group on the vanguard of what is going to be the new standard operating procedure should be first in line to get those raises and trophies we were talking about earlier.

Most experienced corporate executives will tell you that the officially posted SDLC, like the Pirate's Code in the Pirates of the Caribbean movie, isn't the law on the ground, even in the case of an external SOX or ISO compliance audit.  It is, as several executives recently assured me with a piratical gleam, "more of a guideline."

Companies are always piloting new things, and teams on the ground are always deviating from central processes for reasons well understood by management and by those teams themselves.  If a process lists 150 required documents, every seasoned project manager in each line of business knows exactly which 5 they need to write out perfectly, and which others can be done largely by rote or cut and paste.  Even auditors will look for the de facto documentation on the process a team is using, and not start with the de jure information on the PMO's central web site, unless asked to do so.

You shouldn't fear a posted SDLC--you should do your best to contribute to it!  And you should be quick to mention to each new team that you coach that the corporate process now includes agile.  Send them a link!

Sunday, February 5, 2012

Delegation, meet Agile

You might not expect to encounter the "delegation" concept in a blog post about agile software development.  After all, agile is all about the "self governing team."  But in the real world, if you are in a company which is transitioning to agile, and you are the project manager of a newly created agile team, you may well need to consider how to create a situation around your team that allows self-governance to emerge without making you completely crazy.  In real life, your first few weeks with your agile team can seem like your worst nightmare.  This is not because there is something wrong with you.  This is completely predictable.  Stop blaming yourself.

If your team is used to having you, as a project manager, take all the responsibility, and you suddenly stop telling people what to do, (along with not setting up their meetings, not taking their notes, and not getting them a projector every single time for every single meeting), you should not expect them to do what is needed, no matter what the Agile Founding Fathers say.  Instead, your team members, being humans, will go ahead and take advantage of you and do whatever they feel like doing.  And remember, they are under a bunch of stress themselves with this whole "agile transformation" thing, so you're not seeing them at their best.

From http://www.careerealism.com/the-8-myths-of-delegation/
As William Godwin argued more than 200 years ago in his anarchist treatise Political Justice, your team is inevitably the product of its enterprise environment--it took years to get them to be the way they are, and they aren't going to morph into self-governing team members in ten seconds.  You can't throw a group of micromanaged developers into a team room and expect them to divide into pairs and start offering to help the testers.
It is beyond all controversy that men who live in a state of equality, or that approaches equality, will be frank, ingenuous and intrepid in their carriage; while those who inhabit where a great disparity of ranks has prevailed will be distinguished by coldness, irresoluteness, timidity and caution.  (Chapter IV)
He has quite the way with words, doesn't he?  Anyway, the point is that the first steps of an agile transition may be experienced by a project manager as a time where people keep telling her to STOP DOING EVERYTHING HERSELF, and yet the work isn't getting done.  That's not the PM's fault, but the PM is in a position to gradually bring the team around, especially if they have a coach hanging around to help.

I realized this week that this "you need to let go" message isn't something new.  This is a special case of the age-old problem of "delegation."  New managers are always taken to task for "doing everything themselves" and not "delegating" as though you should just fecklessly throw your responsibilities out there and hope for the best.  That never made sense, and it doesn't make sense now that you're a newly minted agile project manager.  So what do you do?

I have had the privilege of participating in a leadership training program headed up by Brian McDonald at MOR and Associates, and during this program we addressed the issue of delegation head-on.  In this training, we distinguished between the end goal, which is indeed to have the people responsible for their own actions (or by extension, those of their team), and the MEANS to that end goal, which have a particular shape.  Here are the phases:

  1. Request a particular action and ask for a report:  If you are working with a brand-new agile team, decide as a group how you will be accomplishing tasks, and how you, as the person who will be communicating with your funding authority, will be able to confidently describe your team's status on a daily, weekly, iteration-level, and release-level basis.  Just because you're agile doesn't mean that you are no longer responsible for letting your customer or business user know the status of their investment.  At this stage, aided by a coach, you will negotiate team rules with the group which will keep the team safe:  a new team is not going to sign up for a daily stand-up, a release plan, a story backlog, an up-to-date card wall, or pairing.  Just as in the old days, these steps in your agile evolution are achieved through the age-old process of command-and-control orders followed by feedback that shows the orders are carried out.  This is fine.  This has to happen first in many, many teams.  Do not confuse the means with the end. 
  2. Ask the team to suggest improvements, while still giving you the information you need:  the retrospective is your friend.  You should certainly make sure you hold a team retrospective at the end of each iteration at minimum, but feel free to hold them more often if needed.  During these meetings, re-affirm that you, as project manager, have to report back to your funding authorities about how well you as a group are using their money.  But be open to suggestions from the team on better ways to get the team, you, and the funding authority to your goal.  You still hold the power to say that the team suggestion does or does not work for you, but you are now actively encouraging the team to take responsibility for getting you the information and transparency you need.
  3. Delegate to internal de-facto leaders:  as the team moves forward, you will see who you can trust to ensure things get done, and who seems to be less weight-bearing on the team.  Take the de facto leaders into your circle of trust, and ask these leaders to do what it takes to ensure that internal goals are met on time.  Assign "features" or "epics" to these leaders, and ask them to run them as they see fit, but let you know how they're getting on.  Keep measures like the daily stand-up and the up-to-date card wall in place, but stop being the only person who ensures that things are happening.  Spread and share that load with the first movers in the group.
  4. When it's possible, move to an "agile" concept of the self-governing team,  which may still very much mean that there is a lead BA, a lead developer, and a lead tester whom you as project manager work with to ensure things continue to move smoothly.  You are still responsible for making sure that the funding authorities are getting the best return on your investment, and for showing them that they are.  But you have now cultivated a situation in which the team, or at least a few logical leaders on the team, are taking responsibility for those goals themselves, and you are truly able to step back to a position of removing blockers for the team.  Congratulations!  You've created a self-governing team.
Like everything else in this world that has any value at all, a self-governing team is carefully cultivated and grown.  It cannot be created by fiat.  Your goal should be that you no longer have to supply all of the passion and all the accountability, but please don't blame yourself if the team isn't able to step up immediately the first time you try it.