Category Archives: scrum

How Flexible Should an Agile Team Be?

There are different tricks to balance skill sets on a team for long-term performance.  Relying on pure “generalists” isn’t the only option.  (Some folks think Scrum demands this, but it doesn’t.)

In a recent blog post my colleague Steven asks the question, “Do Teams of Cross Functional Individuals Hide Dysfunctions?”  This grows out of some conversations we’ve had around the office about the intended meaning of “cross-functional” and whether it’s a virtue or a vice.

When I joined Northwest Cadence, which as we’ve established was not so long ago, I found earlier training materials referring to the need for “generalists” in Scrum, and some diagrams showing how team members might shift to other types of tasks during a Sprint.  But since my formal training in Scrum has been more recently, I recalled that the Scrum Guide calls for the team to be “cross-functional, with all of the skills as a team necessary to create a product Increment” (emphasis mine).  As I read it, this means the Development Team should have all the skill sets represented that it needs to complete the work of the Sprint, but it doesn’t say a thing about every team member needing to possess every needed skill, or even multiple needed skills.  (What if what the Development Team really needs in a Sprint is a specialist?)

Anyway, around the office we’ve started making the semantic distinction between “cross-functional individuals” (generalists) and “cross-functional teams” (generalists or specialists or a combination of both who provide in aggregate the needed mix of skills).

In our Scrum vs. Kanban Smackdown on Friday, Steven and I dug into the issue a bit more, and he mentioned that while single cross-functional individuals are less productive than specialists, he found it curious that the opposite is true in teams: teams of cross-functional individuals are more productive than teams of specialists.  (Source: Capers Jones, Applied Software Measurement.)

Fantastic Four's Mr. Fantastic, a.k.a. Stretch

It seems to me that there’s a delicate balance to be achieved between focus (preventing context-switching) and flexibility.

Particularly in Scrum, it’s critical to have a cohesive team, and one of the strengths in Scrum is that the team learns to work together more efficiently over time.  A Scrum team’s membership should strive to stay stable.  But given that the Product Backlog and the Sprint Backlog’s contents are variable, how can the team maintain a stable membership while ensuring it has all necessary skill sets for any work that may be thrown at it?

In Kanban, of course there’s no prescribed process: the first step is to visualize the existing flow of work, identify bottlenecks, and then address bottlenecks to promote flow. Again the question is, how should the team address them, especially over time as a variety of development items enters the work stream?

I think there’s no simple answer, but I have a few ideas, and I think they’re potentially equally applicable to Scrum and Kanban.

  • Swap Out Team Members.  I think this is a non-solution for both Scrum and Kanban.  If we weren’t trying to build more effective teams, we wouldn’t be here, right?
  • Balance the Backlog.  Items in the backlog or queue should already be right-sized and should represent standalone stakeholder value.  If the team works from a consistent Definition of Done, then it should be possible to figure out what skills are needed to deliver a particular item – and to break down an item if any stage of its delivery is too big for the team’s capacity.  However, this won’t always be perfectly possible: for example, some features may lend themselves to more test automation, while others demand more manual test, and these call for different skill sets on the team.
  • Negotiate.  In Scrum, the Product Owner and the Development Team work together to select the Sprint Backlog and they don’t always have to select the stakeholders’ highest priority items.  If it makes sense, they can pull a different mix of items into the Sprint to keep the workload balanced to the team’s capacity. Similarly, a Kanban team can pull new work into the work stream for any reason at all, and can choose to pull items that balance better with work already underway. However, this must not be used to mask dysfunction, especially because it risks taking the team too far afield of the stakeholders’ priorities.
  • T-Skills.  Team members who have needed depth in a few areas, but breadth and willingness to help out in others (“T”), can give the team the flexibility it needs to accommodate shifting Work In Process loads.  I think this is what most people really mean when they say “generalists”.  This can be effective when role-based bottlenecks are occasional and temporary.  However, this must not be used to mask dysfunction; if team morale is affected or the team resists seemingly reasonable calls to “swarm”, that’s an indication that their willingness to flex is being overused or abused.
  • Expose the Pain.  If the team’s skill sets are out of whack due to external constraints, it may be to the team’s advantage not to solve or compensate for this problem.  Instead, making the effects of the imbalance transparent to decision-makers and stakeholders may be what’s necessary to get a real lasting fix.
The Incredibles

Elastigirl rocks, but she still values her team.

In all cases, the entire team needs to be involved in and accountable for the solution, and as you see from some of the ideas above, the solution may need to start well before the work hits the dev/test phases of the team’s process.

Advertisements

WWKD?

My Scrum knowledge was out-of-date.  The new Scrum guidance is streamlined to essentials and I like that.

Last Friday I was privileged to serve as a guinea pig for my colleague Martin‘s Professional Scrum Master course.  The afternoon prior, he asked me and my colleague/classmate James to read the Scrum Guide and take the Scrum Open Assessment, specifying that we should score at least 75% on the assessment to show our readiness for the level of the course.  James did exactly as asked, posted a fine passing score, and thoughtfully generated this blog post which instantly became the most-viewed in Northwest Cadence blogging history.  Meanwhile, I flunked the assessment and wrote a blog post about how my new USB adapter has googly eyes.

Not the best student, me.

On Friday it was time to double down, literally.  As a practice run, Martin condensed the two-day course into one long day.  With only the three of us, we had lots of opportunity for discussion and debate as we worked through the PSM material.  Martin’s insights, having used this stuff in the real world, are invaluable too.

Mid-morning, our new social media guru Laura asked us to live-Tweet or Facebook our thoughts about the course… a request she may swiftly have come to regret, as we were feeling feisty and immediately began Tweeting helpful suggestions such as marketing “WWKD?” beaded bracelets.  (Hmm… chicken & pig Bandz!  Calling patent office…)

At the end of the day, we took me up on my (frankly self-defensive) suggestion to use our prior scores as a baseline and take the Open Assessment again to see how Martin’s teaching had helped us to improve.  Both of us had higher scores, but if mine is to be believed, Martin’s definitely the best Scrum instructor out there:

My score on the assessment, after a great class

Didn't just ace it... did so in 4 minutes, 49 seconds

No, I didn’t cheat.  Yes, I’m kind of one of those annoying good-test-takers.  (Which, as with SAT and the like, should not be confused with “knows the subject matter any better than a non-test-taker”.)

But let’s get serious for a moment.  The questions that tripped me up the first time were, in fact, meaty and interesting.  Scrum has evolved and simplified in recent years.  Before joining Northwest Cadence, I spent nearly three years on a reasonably effective Scrum-but team (which I guess really does make me a Scrum-but Master), and as I spent the day learning new insights about the Product Owner role and its responsibilities, the Scrum Master role and its limitations, I recognized so many nifty little practices – some we used, some I wish we’d used – that either solved or might have solved real issues we faced in the wild.

My favorite part, by far, is the way in which well-defined roles in Scrum empower the development team.  Martin recently posted about the Rolled Up Newspaper Method of bringing developers around to Scrum.  I understand it makes me a filthy tree-hugging hippie, but I don’t believe in the rolled-up newspaper for dogs or developers.

As it happens, I train my dog at Ahimsa in Seattle, an amazing place with fantastic results, run by a rock star genius mathematician who left academia to train dogs and their owners to get great results using positive methods that empower the dog.  Hmm!

(Those who know how much I adore my dog, and how much I adore my former development team, won’t blink at the comparison of developers to dogs.  Also, Martin started it.)

My lovely little dog, peeing outside like he is supposed to

Dogs, like developers, can be trained to pee outside using exclusively positive methods.

For at least the last three years, I’ve said that if developers understood how much Agile, and specifically Scrum, helps them with problems they care about, they’d demand it. That’s exactly what I did, although I understand that as a “developer” I’m a bit of an odd duck.  (Odd pig?)

Anyway, here are a couple of specifics I find intriguing:

  • I like the way the Product Owner has absolute control over the Product Backlog and its sequencing.  I like how “prioritization” has been changed to “ordering” to emphasize that it isn’t just the stakeholders’ priority or preference that drives the sequence: any number of other criteria may be used, and the Development Team is free to negotiate with the Product Owner on this matter.  The Product Owner is accountable to the stakeholders for satisfactory results, let’s say for delivering value, but the stakeholders don’t control the details of how this is accomplished.  I like how this gives the Development Team opportunities, e.g., to propose knocking out valuable low-hanging fruit, or to request re-sequencing to smooth out architectural or infrastructure dependencies.  A strong, positive relationship between the Product Owner and the Development Team (and the stakeholders) will yield great results and a better quality of life for developers.
  • I like how the Scrum Master’s job is to get the hell out of the Development Team’s way.  I like the emphasis on Servant Leadership in this role.  Over and over again, Scrum training questions and scenarios beat this point into the student’s head: the Scrum Master doesn’t solve problems or make decisions.  The Scrum Master only preserves the Development Team’s autonomy and provides them with any structural assistance needed for them to solve the problems or make the decisions themselves.  This is exactly what we devs say we want – hire us to write great code, then leave us alone while we do it.

On my former team, I was simultaneously Scrum-but Master and Technical Lead.  This was ill-advised for at least two reasons: Dev Team members shouldn’t have titles, and my combo-role seems like a conflict of interest.  But looking back on it, I can see the beginnings of some really nice practices: as Lead, I had the opportunity to participate directly in Product Backlog grooming throughout each Sprint, giving the team’s technical feedback on complexity, dependencies, and quick wins.  Two successive Product Owners were great to work with and did a great job of synthesizing technical recommendations with our stakeholders’ priorities – no small feat, considering how stakeholders proliferate and conflict with each other in higher ed.  Even struggling with Scrum-but, we did some amazing things as a team and delivered some really cool software in the federal compliance space.

  • I like the way Scrum is a framework, within which the Scrum Team has total freedom to write PBIs, decompose requirements, and develop, test and deliver software in whatever way works for them.  It doesn’t prescribe the SDLC: it fosters an environment in which an SDLC can happen reliably, because they can adapt and grow one that works well for them.  In this sense I’m seeing similarities to Kanban but with a lot more structure.  I don’t mind structure and neither do developers generally, if it’s a good one!

I came to Northwest Cadence expecting to be a defender of Scrum-but, which might yet occur, but for the moment I’m really fascinated by the framework itself, straight up.  I’m excited to dig in and put my public-sector experience to work with a more diverse clientele. I have some cool things I can teach already, but test scores notwithstanding, I also have a lot to learn.

Look for me to test and grow these Scrummy ideas in our upcoming public events!  I haven’t heard back yet on my idea for a bracelet giveaway…