Agile Accelerate

Leave Nothing on the Table


Leave a comment

Extending Cross-Functionality to Programs

There is an excellent rationale for cross-functional teams.  For large programs, that rationale can be easily scaled to the program-level.  But, for some reason, this isn’t always recognized.

TEAM CROSS-FUNCTIONALITY

Let’s say you have a team with the following profile of highly siloed individuals:

xfunc1

This is great if you have a profile of stories that fits it perfectly, as follows:

xfunc2

But what if your set of sprint stories looks more like this?:

xfunc3

In this case, you have a deficiency of analysts, back-end developers, and QA people to implement the stories that your aggregate team capacity might otherwise support.  And, your UX folks and front-end developers will be twiddling their thumbs for part of the sprint.

So, what to do?

Since you are only as good as your lowest capacity component (which appears to be QA, from this particular example), you will have to scale back the number of stories to fit the profile, as shown:

xfunc4

Now, everyone is underutilized, except for QA.  Good luck finding something useful for everyone else to do in the next two weeks.

The net result is that your team is perhaps 30% less productive than it could be (eyeballing the graphic).

However, if you take advantage of standard cross-functional teamwork, your team’s profile may look something like this:

xfunc5

Note that by “cross-functional” we do not mean that everyone should be able to do anything.  There are very valid reasons (education, experience, proclivity, enthusiasm) why certain people are ideally suited for certain kinds of work.  Think of the cross-functional nature of someone’s role on a team as a bell curve (alternatively, some talk about T-shaped employees – the T is just the bell curve upside down, as the Y-axis orientation is arbitrary).  The more the curve is spread out, the more they are able to take on other people’s roles.  On a good cross-functional team, the bell curves overlap “somewhat,” meaning that everyone can take on a little bit of someone  else’s role, although perhaps not as efficiently.  Still, this allows a team to take on a wide variety of “profiles” of sprint work, as will always be necessary.

So, for example, in the case above,

xfunc6

people will adjust to the desired “sprint needs” profile as follows:

xfunc7

PROGRAM LEVEL CROSS-FUNCTIONALITY

Don’t forget that this model can be applied to more than just teams.

For example, there can be a tendency for teams to develop “specific expertise”, due perhaps to knowledge held by certain BSAs or specific architectural or design skills in the development team.  The program may then tends to assign stories based on this expertise under the theory that this is the most efficient way to get work done. Unfortunately, this has the effect of only further driving each team into a functional silo.  It can become a vicious spiral and soon you may hear things like “well, we don’t have generic teams and, at this point, the schedule is paramount, so we need to keep assigning program work according to the team best suited to do it.”  As a result, program backlogs will consist of stories pre-targeted to specific teams, even arbitrarily far out in time.  Imagine what happens when the stakeholders decide to re-prioritize epics or add new features, or a new dependency arises that doesn’t line up with the ideal team at the right time.  The result will be a work profile that doesn’t match the “team profile,” as follows:

xfunc8

Enter a cadre of fix-it people – project managers, oversight groups, resource managers, program managers – all trying to re-balance the backlog, shuffling stories around, adding people to teams, squeezing some teams to do more work, while other teams tend to be idle, therefore resulting in the assignment of less than necessary filler work.  It is the same wasteful resource management nightmare that is so easily solved by cross-functional teams, except this time at the program level.

So, eliminate the waste, and follow the following simple program level guidelines:

  1. Create a fully prioritized program backlog without consideration for the teams that will be executing the stories.
  2. Once per sprint, have a program planning session or meta-scrum (Uber-PO, Uber-SM, team representatives) where the candidate stories for the upcoming sprint are identified for each team.  Include a little more than each team’s velocity would otherwise indicate in case they are able to take on more than their average.
  3. Make it a goal to avoid specializing teams.

All team “profiles” will be identical and program needs can easily be accommodated.

xfunc9

There may be a little bit of short term inefficiency resulting from having the “slightly less than ideal” team work on particular stories, but the more you do this, the more that inefficiency evaporates.  And the advantages are significant:

  • Holistic view of program backlog allow you to focus on what is important – delivering value
  • No need to engage the expensive swat team of fix-it managers to shuffle around people and project artifacts
  • All team members gain experience and learning, often resulting in greater job satisfaction, and higher performing teams
  • No more single point of failure; no more critical path team
  • Far less chaos and confusion, resulting in more focused individuals
  • Extremely easy to manage – program progress is measured by the simple rate at which all teams work through the stories.  Any gaps in targeted scope versus expected scope is easy to identify.


Leave a comment

Treat Ideas Like Stories and Your Community Like Your Team

Many of us are working toward the same objectives – improving our organization’s creativity and effectiveness, transforming our workplaces into environments that make us eager to get to work in the morning, maybe even developing ideas that “put a dent in the universe.”

If only we shared ideas the way we develop software – in little chunks, partially formed, and with complete transparency.

Problem is, there are two forces that work against this:

  1. The tendency to polish
  1. The tendency to protect

First, we polish because we feel that our output is a reflection on ourselves.  This is largely true – people do form opinions based on whether or not I dangle a participle.  But isn’t that the same pattern as being afraid to demonstrate an unpolished prototype (or worse, a paper one)?  Yet in agile, we slowly condition our stakeholders to accept ambiguity and imperfection, in the greater interest of earlier feedback and learning.  And Lean Startup shows us that a faster way to our goal is likely to be one that includes coarse validated learnings to help us make optimal decisions.

So why not apply the same principles to idea-space and our community (by community, I mean those who read blogs such as this)?

Second, we protect because of fear.  As countries, we fear that our secrets will get into the hands of enemies and risk our security.  As companies, we fear that our IP will get into the hands of competitors and risk our edge.  Good thing that the folks that developed Linux, WordPress, and Drupal didn’t feel that way.  In the agile community, we should have no such fears.  We should feel free to apply to our community the same transparency we apply to our teams.

Small ideas germinate and beget large ideas, possibly universe-denting ones.  Let’s get them out there.

Sorry this was kind of a partially formed idea, but having early dinner plans, my blog couldn’t wait for me.


Leave a comment

A Cure for Parkinson’s

Parkinson’s Law – “Work expands so as to fill the time available for its completion

– Cyril Northcote Parkinson

Your agile team can be following 99% of the principles and practices behind Scrum, XP, and/or Kanban and yet still working at half efficiency, or worse, due to Parkinson’s Law.

There is very little in the prescribed principles and practices that directly address the efficiency of executing tasks, save the concept of eliminating waste, but even that usually centers on eliminating workflow waste, not task or work item waste.

The good news is that while your agile team may have tremendous untapped potential, realizing that potential may be as simple as setting up the right environment for them.

It is a natural human behavior to allow work to fill the time allotted.  We have all done it. The reasons are many and various: Overanalysis, not balancing task elements across the work item, struggling with a blocker without asking for help, procrastination, lack of a desire to work faster, lack of motivation, distractions, not managing interrupts well, multitasking, and so on.

Note that every one of those behaviors can be identified and remedied.  But where to start?

Empowering Agile Teams

The first place to begin to solve the Parkinson’s Law problem is with empowerment.  An unempowered agile team is a team that doesn’t care.  And that is a prescription for a bad case of Parkinson’s.

Here is one recipe for curing Parkinson’s within an agile team.  The order is logical: Start where the answer to the leading question is “yes” and work downward:

  1. Have non-team members (by “non-team members” here, I mean anyone other than the team; it could be any level of management, the client, the business, the PMO, etc.) set an unrealistic goal for the project?  This situation will make people feel that they have no control and that if the project fails, it is someone else to blame.  A solution may be to improve transparency around the release burnup.  Is there a release burnup?  If not, start there.
  • Create a clear burnup from empirical velocity and an agreed-upon backlog and distribute it to all stakeholders.
  • Make sure that the release backlog is reasonably well sized.
  • Make sure that the velocity is based on empirical data, not wishful thinking.
  • Ensure that the burnup accurately reflects the backlog and velocity.
  • Make sure that everyone sees it – client, PMO, business stakeholders, various management levels, other potentially impacted teams.  Obfuscation occurs when different groups use different artifacts to present information, so ensure that they are all using the same artifact.
  1. Are non team-members selecting the stories to be run each sprint?  This can serve to prevent the team from feeling ownership.

Tip: Put the Team in Charge of Their Commitment

  • Stop the practice of external story selection and have the team select only enough stories to get to the point that they feel that they can commit to complete those stories and not one more.
  • Have a discussion around the meaning of “commitment.”  Make sure that this is one of those things that require unanimous team agreement, like a jury.  There are some decisions that can be made by a democratic majority, others that are okay to be made by an oligarchy.  But, commitment to a Sprint plan should be unanimous across the entire team.  Without that unequivocal commitment, unspoken naysay remains unchallenged, that could spoil morale right when you need it.
  • Then, during the planning session, ask for that one-by-one commitment to the sprint.
  1. Is a “chicken” (e.g. project manager who is not part of the team) selecting work for people, assigning tasks, assigning story owners, assigning roles?  How can they possibly know better than each team member how what tasks are needed for each story and how long each will take?
  • Eliminate that practice.  Only when the team selects their own work do they feel ownership of that work.  And it is only when a team feels ownership that they will begin to have the motivation to work at their full potential.
  1. Are story sizes small enough that each person can work on at least two stories per sprint?  Large stories that take most of the sprint to complete can create a Parkinson’s effect.  People get used to the idea that they work on only one story per sprint, and so, consciously or subconsciously, allow each story to expand to fill the sprint.  Sometimes you can have a breakthrough in velocity just by breaking that pattern.
  • Size stories such that at least two or three can be worked on by each person in one sprint.  This gets people used to the feeling of finishing and then pulling something off the backlog mid-sprint.
  • It might be necessary for the ScrumMaster to keep close watch on stories to ensure that they don’t languish uncompleted for days.  Once the pattern is broken, this is usually no longer a gating concern.

OK, great.  The team is fairly empowered at this point and work should be flowing smoothly.  Still, they may not feel full ownership and commitment.  One of the problems is that they team may still be looking to their PO and ScrumMaster as their “leaders,” and consciously or subconsciously feeling that the ultimate accountability for the story or the work item or the task is more with these “leaders” than themselves.

So spread out the “leadership”.

Tip: Spread the Spotlight

  1. Do the ceremonies revolve around the same people?  Is it always the SM or PO that facilitates the planning sessions, retrospectives, and sprint reviews?  Do people talk to the SM during the standup?  Start by broadening the leadership.
  • One method is to have story owners.  Ultimately, it is probably ideal for the entire team to feel fully accountable for all stories, but it can be difficult to get there in one step.  So, an interim step may be to have designated story owners, whose job it is to drive the story to completion.  They should ensure that there aren’t gaps in time between sequential tasks of the story and help resolve impediments pertaining to that story.  This can have the negative consequence of individual team members still not feeling accountable to that story being complete, but at least the feeling of ownership has been somewhat spread out.  Individuals who have been story owners can then spread that feeling of commitment to others on the next stories.
  • Ensure that BSAs, QA, and developers all get the chance to be story owners.
  • Once everyone begins to demonstrate accountability to all stories, the story ownership may be dropped.

And yet still it may seem like some stories and tasks are dragging on longer than they should.

Tip: Use the Buddy System

  1. Do people tend to hand off work to each other via documents?  Do they communicate via email instead of in person?  Lack of collaboration can lead to low transparency silos, which are a breeding ground for Parkinson’s.  It is very easy to hide when no one else interacts with you.
  • Encourage collaboration sessions around story acceptance test writing or reviews, perhaps even kickoff sessions for each story.
  • Make a habit of including everyone involved with a story in ad hoc discussions.
  • Encourage pairing; not necessarily for just development, but any functional area, especially where Parkinson’s might be lurking.  Pairing generally speeds up tasks, and many in the XP world even observe that pairing can even reduce overall net effort on a task.  But even if it doesn’t, the payoff in terms of reducing the Parkinson’s effect will probably offset any net effort increase due to the pairing.

A healthy pattern will be established which should stick.  It is hard to watch your velocity drop and hard to let Parkinson’s set back in to a team, once good collaborative patterns have been established.

Tip: Focus on Focus

  1. Do people tend to complain about interrupts, or that they have too many responsibilities outside of story work?  Perhaps it is time to retrospect on those problems.
  • Solutions may exist in process changes.  For example, rather than have everyone on the team be interrupted by a production support broadcast, have level 3 support designates that periodically rotate through the team.
  • Practice good interrupt management. Does everyone on the team understand the evils of multitasking, both from the standpoint of flow as well as context shifting?  Perhaps some education is needed.  Spend a sprint recording what you are doing once per hour (set an alarm) and aggregate the results.  See anything surprising?
  • As a Scrum Master, check to see if people are burning down tasks on multiple stories at the same time, rather than working a task to completion before moving on to the next one.
  • Question the interrupt requests.
  • Give feedback to habitual interrupters,
  • Recognize that you are not indispensible and don’t need to always be the hero.
  • Turn off distractions if you can, like email popups.
  • Resist the urge to check email.
  • Manage time in blocks.

There are many more time management ideas that you can find via a few specific web searches.

By now, we should be seeing a healthy buzz of collective ownership and collaborative practices, and Parkinson’s Law should be all but eliminated.

Parkinson’s is all about lack of motivation.  Therefore, it can be cured by taking steps to establish a team environment where motivation comes naturally.  Any steps that serve to improve empowerment, teamwork, collaboration, and the feeling of collective ownership will have the greatest effect.


Leave a comment

Agile Myths Busted

Ever run across these guys?  People whose lack of experience or fear of change cause them conjure up all kinds of reasons why agile won’t work for their project?

Let’s bust those myths!

Myth: Agile Doesn’t Work for Projects in the Highly Regulated Medical Environment.  (The reason usually given is that FDA regulations require detailed requirements prior to project approval; hence, waterfall.  However, in reality, you can develop in phases, with small incremental sets of requirements and the FDA requires only enough documentation to demonstrate your process.)

Truth: Abbott Labs overcame medical device regulation and stringent Class 3 certification and developed the m2000 Real-time PCR Diagnostics System, a human blood analysis tool, with four agile teams.  Compared to the prior methodology in use, this project resulted in a less cumbersome process, fewer defects, a reduction in costs of 43%, and a reduction in cycle time of 25%.

(Rasmussen, R., Hughes, T., Jenks, J. R., & Skach, J. (2009). Adopting agile in an FDA regulated environment. Proceedings of the Agile 2009 Conference (Agile 2009), Chicago, Illinois, USA, 151-155)

Myth: Agile Doesn’t Work in Government

Truth: The FBI overcame a CMMI level 3, ISO 9001, government-mandated document-driven waterfall life cycle and developed the Domestic Terrorist Database & Data Warehouse with three agile teams.  Compared to the prior methodology in use, this project resulted in significant improvements in release planning, developer satisfaction, and a focus on the true goal: “to catch bad guys.”

(Babuscio, J. (2009). How the FBI learned to catch bad guys one iteration at a time. Proceedings of the Agile 2009 Conference (Agile 2009), Chicago, Illinois, USA, 96-100.)

For another example, the U.S. Department of Defense developed the Strategic Knowledge Integration Website utilizing three agile teams.  Compared to the prior methodology in use, this project resulted in improved quality, fewer defects, better teamwork, and a 200% productivity increase.

(Fruhling, A., McDonald, P, & Dunbar, C. (2008). A case study: Introducing extreme programming in a U.S. government system development project. Proceedings of the 41st Annual Hawaii International Conference on System Sciences (HICSS 2008), Waikaloa, Big Island, Hawaii,USA, 464-473.))

Myth: Agile Doesn’t Work for Large Products

Myth: Agile Doesn’t Work with Distributed Teams

Truth: Google’s AdWords product busts both of these myths.  With 20 teams and 140 people across 5 different countries, this large agile program was a groundbreaking success at Google and resulted in more predictable releases, higher quality, and an improved ability to accommodate changes, as compared to the prior methodology in use.

(Striebeck, M. (2006). Ssh: We are adding a process. Proceedings of the Agile 2006 Conference (Agile 2006), Minneapolis, Minnesota, USA, 193-201)

Myth: Agile Doesn’t Work in the Regulated Telecom environment

Truth: British Telecom moved their entire IT department to agile, starting with 2000 people from 2004-2007.  This large transformation resulted in an improvement from 10% value stream effectiveness to 55%, created an attitude of delivering real value to the business through IT, and shifted the company’s perception of IT from a service provider to an integral part of the business solutions.

(http://www.agilistapm.com/casestudy-british-telecom/http://scalingsoftwareagility.files.wordpress.com/2008/06/scrumbt-v14.pdf)

Myth: Agile Doesn’t Work for Client-based projects

Myth: Agile Doesn’t Work for Fixed Price projects

Myth: Agile Doesn’t Work well when integrating a Third Party Product

Truth: I coached an agile team at a prominent consulting company through a project with a client who was a well known record label.  They built a new, fully rebranded, eCommerce website using open source CMS and Search engine, and a third party eCommerce provider.  The site included product bundling, integrated music player, and social networking integration.  It was implemented using Scrum/XP with a single team of about 12 people over 5 months.  The result was an award-nominated site that improved conversion rates dramatically, ultimately profitable for and considered a strong success for both the agency and the client.

Myth: Agile Doesn’t Work for Manufacturing Vehicles

Truth: Wikispeed developed a 4 passenger, 100 mpg, street-legal road car in 3 months using modular, off-the-shelf, carbon-fiber body construction, with no capital investment, and no paid employees.  Agile processes were utilized with a single international team.  The project went beyond the prototype phase and cars are available online.

(http://www.solutionsiq.com/the-agile-ceo/bid/51480/Agile-Innovation-or-How-to-Design-and-Build-a-100-MPG-Road-Car-in-3-Months)

What else ya got?

(note: leads for some of these case studies came from David Rico’s presentation on Lean & Agile Project Management for Large Programs & Projects)


Leave a comment

An Agile Vacation: Why Agile Coaches Shouldn’t Take Stickies Abroad

Some of the people on my teams like to play a game called “Tease the Agile Coach by Pretending Everything He Does is Agile.”

Last fall I went on a 2-week vacation with my wife in France.  When I returned, of course, the gag was “Did you run your vacation agile style?”  “Did you start every morning with a scrum?”   I love playing along, but as I thought about it, to my horror, there was a lot of “agility” to my vacation, and maybe their teasing wasn’t so far from the truth.

As an example…eiffeltower_stickies3

We spent three days in Paris and the rest of our time roaming around the country in a car.  It was essentially a sightseeing vacation.  I maintained a big list of things that we intended to see.

A Backlog.

Much of the time, we woke up in one town and the only real objective for the day was making it by nightfall to a town where our next reservation was.

Sprint goal.

While we might have several things we wanted to see and do every day…

Sprint backlog.

…there were always things that got in the way of our plans, like unexpected traffic or bad weather.  Sometimes we simply left a little late having spent extra time savoring our croissants and café au lait.  As a result, we might have to drop the least important excursions.

Continuous prioritization.

We wouldn’t always have a clear idea of exactly what we wanted to do once we arrived at a new destination, but we usually had no problem coming up with a plan.

Grooming the Backlog.

At one point, we found ourselves in the Alps with inclement weather.  My plan to take the cable car up to the top of Mont Blanc fell apart because they were having snow and whiteout conditions at the top of the mountain and high winds closed the cable car.  So we changed plans and headed south to the Riviera one day early.

Sense and respond.

At the end of the trip, during the TGV ride back to Paris, we reflected on our trip.  I asked my wife if she were to plan the trip all over again, what would she do differently?

Retrospective.

I don’t know whether to be embarrassed or proud.

At least the inside of our car wasn’t covered with stickies.