Let Them Eat Cake

How do you proceed to eat an entire elephant?

One bite at a time.

Wait – I thought this was a post on cake? Why are you talking about eating an elephant? Let me get to that in a moment. (Unless you made an elephant cake, of course.)

I’m not trying to be facetious here with the eating an elephant analogy. I’m highlighting a struggle that many Agile teams face when they are first going about their Agile journey. How do you break down a project or product delivery into smaller pieces? How might you deliver something that has value to someone every two weeks (or even much less, like three or fewer days for Kanban)? You will need to create small bites – or slices – that someone can use if you want to deliver within your iteration. In other words – it has some value to someone. 

Marie Antoinette and Cakes

Think of it this way – say you’re serving a 5-layer cake (are you noticing copious food analogies here? 😉 ). When you give the cake to someone, you don’t give them the entire bottom layer (since it’s the only one you’ve finished baking, perhaps), and then wait for them to finish before giving the next layer (which hopefully is done by the time they consume the first layer). That’s just too cruel and disappointing, right? No, you give them a slice – a small sliver that contains all five layers and icing.

When you break things down to their smallest value, you have to think about delivering in terms of valuable (consumable) slices (of yummy cake). You might say – yeah – but I still had to bake all five layers, make frosting, put it together, and then get a slice of cake to serve. For cakes, yes – you have to do that. But when it comes to work and what you deliver, do you genuinely need to build every layer?

A Simple Slicing Strategy to Start

One of the most common ways to start slicing is looking at the Happy Path Scenario and building that. We solve for all sorts of flows, where someone starts from point A and ideally ends up on point B. 

For example, if you’re building a website, one small flow you can work on is creating an account. The Happy Path here is landing on a sign-up page, providing an email, providing a password, and voila – you now created an account. 

Does your sign-up page have to be high-fidelity at this point? Not necessarily. When Google first started, all they had was a simple space bar and a Search button.

What if the user entered an email that already existed in the system? Well, you may not have built that yet. As I said, this slicing example is the Happy Path. This example is what I mean by a slice. A slice is a small piece of work that is achievable in a tiny amount of time. And it has value – we enabled a user to create an account. And we can get feedback to help us enhance and modify what slice we potentially will do next: Do we continue with the current cake? Or do we pivot to another part of the cake? Or do we make another cake entirely?)

You might be saying, “Yeah, well, if this was your cake, you still can’t serve one piece to the customer. They are buying the entire cake.” Yes, you are correct. The beauty here is that you’ll find yourself building a bunch of small slices. And when you aggregate these slices together, you will end up with a “good enough cake” that you can serve. It’s valuable enough for people to use. You may not have built everything you wanted yet. But you may have something usable by a small but sufficient amount of people to be valuable enough to release.

Other Slicing Strategies

In the previous section, I already alluded to two other slicing strategies. Were you able to spot them?

The first one that may be obvious is slicing for different error conditions: What if the email account exists? How do we prevent a bot from creating a bogus account? And so on.

The list of error conditions can be infinite. Do you need to build for all of them? Not necessarily. You can now look at prioritization strategies. You might create a variant of an Eisenhower Matrix. Your X-axis can be the probability of the error (low probability to high probability). The Y-axis considers your risk (low risk for the customer to high risk for the customer). You can target the error conditions in the high probability, high-risk quadrant as the ones to build out first. (Or, another alternative instead of prioritization is to build a story map.)

The second strategy may not be as evident with the Google Search example: start at very low fidelity, and build up from there. Using this strategy is most effective when you’re collaborating with UX Researchers and Designers. Working together, you might target a low fidelity scenario for the first slice of cake you’re producing to get feedback on what you’re creating. You’ll be continuously learning from feedback while still building for the whole.

Beyond Software Delivery

You might be saying to yourself, “JF, this is fine and dandy for software product teams, but I’m not in software.” 

The same slicing strategies apply. For example, let’s take a look at HR and onboarding a new hire. From the moment a new hire clicks on Accept on their offer letter to the first week they start, an onboarding flow exists. And you might want to build a flow that is engaging and frictionless for the new hire.

As a startup company, your new hire flow might be somewhat low fidelity. You might start with a simple document that they sign, a questionnaire for what machine and login/email name they’d like so that these are ready on their first day. You might start sketching out a manual process to start and then slowly automate it over time.

As the startup gets bigger, your onboarding flow might become more complicated since your company may be hiring many people. You might want to automate the procurement of laptops, for example, so that it gets automatically configured and delivered to the new employee in these times of pandemic.

And here’s the third slicing strategy that you can use. When you have a long and complicated flow (whether existing or new), you can break down the long, complicated flow into smaller flows that you can target. 

It’s like driving from San Francisco to New York. You can do it one straight shot, but that’s going to be too tiring and leave you with no time for enjoyment. You can break the trip down and have some pit stops for exploration and fun. You can design your trip to stop in Arizona to explore the Grand Canyon. Then head on over, making a left at Albuquerque so that you can grab some good ol’ barbeque in Kansas. 

You can do something similar with HR onboarding. You can concentrate on a subsection of the flow and fix problems. You may want to modify it. You can also add new, additional flows to make the whole onboarding process better by adding one small flow at a time.

These are just a few quick ways to break down things into deliverable pieces of value during each iteration. There are many other slicing strategies that people have written about, which you can find through Google. I typically start with these strategies when I’m coaching teams that are new to Agile. Hopefully, these few suggestions can help you on your path to getting comfortable with breaking down items that fit in an iteration.

An Alternative Way to Teach, and Estimate with, Story Points

I recently gave a lightning talk a few weeks ago at the Cambridge Agile Exchange MeetUp. The topic I covered was about an alternative way to teach and do story pointing. This alternative technique was something I came up with back in 2008. Why did I come up with a new way?Photo of JF Unson giving a lightning talk at CAE, 2020-11-12

Well, when I first learned about Story Points in 2005, the theory behind the method was easy to understand, but the actual practice of it was another matter. I wasn’t alone – my team was also having a hard time figuring out and how to actually do it. It took me about a year before story points really clicked in my head.

In addition, playing Planning Poker, especially for large backlogs, took a long time. Our team would get tired going through each item in the backlog. We’d notice we’d take short cuts. As a result, bad practices started cropping up. People would immediately give in and just go with the higher number. Or people would say “Let’s average story points” if people couldn’t agree.

When I was an Agile coach at Yahoo back in 2005-2008, I saw the same struggles with the teams that I was coaching. At that time, Yahoo was the first-ever company to roll out Agile to the entire company at enterprise scale. The teams easily understood the theory, but in practice, they were getting frustrated. For example, people found it hard to leap to story points, and so they were translating points into hours to kind of bridge the gap. The teams who struggled and persisted over time eventually got it. 

I told myself – there has to be a better way. Around 2008, I went to a startup. And in a moment of inspiration, I came up with an idea of how I could teach story points to my new team. I also came up with an alternative to Planning Poker. The new way of teaching and the new method of pointing worked very well. My immediately got it, and instantly understood the concept of story points. And rather than spending hours on backlogs, we actually got it down to 20 minutes or less. 

Since then, I’ve taught this at 3 other companies and found the same success. Here’s the video taken at the Cambridge Agile Exchange MeetUp. (If it doesn’t start at my talk, please fast forward to 24:42.)

 

If you want to teach it…

And for those of you who want to try this and teach this to your teams, here are the slides I presented that go with the video.

 

A Lightweight Template for Monthly Performance Discussions

In my series of newsletters on preparing for your performance review, I mentioned a template you can use when talking with your manager during your one-on-one meetings (1:1s). A colleague and I have also mentioned this template in our talks on performance assessments, rewards and recognition systems, and how to make them more supportive of Agile. Several people have requested the template, and I’m sharing it here.

I have used this template (or variations of it) in at least four companies I’ve worked in already. I use it when I meet my manager during my 1:1s, or with my direct reports when I have 1:1s with them. I do have some guidelines, so feel free to use, modify, or even add to them.

1:1 Performance Review Template ImagePerformance Review Template

Usage Guidelines

  • Use the template once each month during your 1:1 with your manager (or direct report). The idea behind the template is to get performance feedback early and often, as opposed to once a year, when HR calls on the entire company to do their performance appraisals and reviews. (And if you don’t have regular 1:1s with your manager, you should consider starting the discussion from there.)
  • The idea behind the template is that it is lightweight. You don’t need to fill in every line or go into the minutia of the details. You want the right amount of discussion, and add those as highlights to capture the key points about your performance – the good, the bad, and the ugly. Most often, the good stuff – even the regular, day-to-day wins or the win of the week, aren’t brought up. People then forget these when the yearly performance review cycle comes around. And as for the bad stuff, you usually get it right away. And it can linger and follow you for ages. As Mark Anthony said in his eulogy to Caesar in Shakespeare’s play Julius Ceasar, “The evil that men do lives after them. The good is oft interred with their bones.”
  • Tailor the template to your needs. Modify the template depending on your context. For example, I’ve modified it to conform to an Objective and Key Results (OKRs) style at one company where I was working. You can do the same if your company uses Management by Objectives (MBOs) or something similar.
  • Highlight outcomes and impacts, not outputs. People often write outputs on their performance reviews – like “refactored the architecture for our product.” Yeah – we all know you reworked and coded this, but what was the impact of that effort? Did your team get to release the product faster, positively impacting customers who were about to churn? (And mind you, this is great to bring up in your resume – recruiters and hiring managers love to see these outcomes and impacts.)
  • Always move forward. The goal is performance discussions is to grow yourself – whether it’s learning new skills like become a team lead or using new technologies. It’s about learning from mistakes – how you and the team can mitigate issues that came up, or how you all can improve and become more Agile.
  • And lastly, highlight yourself AND your team. Most performance reviews typically highlight the individual. Agile emphasizes team collaboration. Don’t just talk about yourself. Talk about how you and your team get together or do things together to amplify successful outcomes – not just for you but for the team and the company.

When you do these things, you will end up with 12 templates filled out – one for each month. And guess what happens when HR sends out that email informing everyone about the upcoming performance review cycle? You’ll be very prepared to fill out your performance assessment.

Having these monthly filled-out documents, joyously made it easy for me to fill out my assessment (or my direct reports’ assessments). I didn’t have to stress out remembering what I accomplished the past 12 months. I mostly ended up copying and pasting what I had written, with maybe a little bit of wordsmithing, to fit the assessment outlines provided by HR.

I do hope you find value in this template. I would love to know how you modified it to fit your context. I’d love your feedback on your experience using it – the good, the bad, and the ugly of it. I’d love to hear from you.