This is a transcript of episode 239 of the Troubleshooting Agile podcast with Jeffrey Fredrick and Douglas Squirrel.
Squirrel and Jeffrey look at two ways to “thin” features to achieve a better return on investment, for both customer features and productivity improvements.
Show links:
Listen to the episode on SoundCloud or Apple Podcasts.
Introduction
Listen to this section at 00:11
Squirrel: Welcome back to Troubleshooting Agile. Hi there, Jeffrey.
Jeffrey: Hi Squirrel. So I was looking through your Twitter timeline and I saw a tweet that I thought would be good for us to talk about. You want to tell us about that tweet?
Squirrel: I certainly can. It’s based on a conversation just earlier today. It reads: “Don’t assume business people want only features at any cost.”
Jeffrey: All right, stop.
Squirrel: I’m not done!
Jeffrey: I know there’s more, but it was actually reading that one sentence that I thought, “oh, this’ll be good to talk about.” I know that you have other things going to say, but this is enough for me to say this is worth discussing, because I think it goes to a mistake that people often make, that they think just because someone asks for a certain feature, that they are willing to pay any price for it. What I like is the idea that you can generate options and ask “what’s the budget you’re willing to spend on this feature? You’ve got a lot of features you want for this. So given this one, how much of your budget are you willing to spend? Do you want the full fancy version, a lesser version that’s cheaper? Do you want just the cardboard cut out version? We can give you different options depending how much you’re willing to spend.” I think that’s a conversation that people often miss.
Squirrel: Yeah. Often us developers are thinking, “we really need to do everything. We need to build this amazing piece of software that will scale to billions of users and it’ll be totally easy to deploy instantly” and so on. That’s the Ferrari version. But often people want the Ford version and they’re perfectly happy with that. A Ford has a perfectly good place on the motorway. Why do you need what a Ferrari can do?
Jeffrey: Good point. All right, you can get back to the rest of the tweet.
Squirrel: “Don’t assume business people want only features at any cost. Described in terms of investment and return, a process or tooling improvement can win hearts and minds.” This came from a conversation I was having earlier today with a client of mine who said:
Client: We’re working on this thing that the business desperately needs. They’re going to demonstrate it on this day. We know it has to be finished then. I also know about some improvements and I have a goal to work toward those improvements, but I’m not going to do that. Squirrel: Why wouldn’t you make some improvements to the process? Client: Well, the business have told me that this is the most important thing. We need to get it finished by the deadline. There’s no other room or consideration to be given to anything else. So I’m going to put those aside. I won’t do those for another month. Squirrel: Well, hang on. I think you’re going too fast there. Why don’t you tell me about what this process improvement would be? What would it help us with? How would it make life better? Client: Well, it would cost us about a week for one person to build, and it would save every developer on the team one and a half days per feature.
Jeffrey: Wow!
Squirrel: I said:
Squirrel: That’s pretty convincing! Client: But what do I do with it? Squirrel: Go tell the people in the business that there’s this option. Now, they might or might not take the option. They might say, “Correct, I don’t want to make a trade-off here of any lost time for the urgent deadline against significant productivity improvements that then speed up this deadline and everything else.” But I have a good bet that they would be really interested in at least hearing about the option.
Allow Decisions to be Made
Listen to this section at 03:46
Jeffrey: So it turns out this the second sentence could have stood alone as well! I love this idea of “go have the conversation!” Talk to people! Don’t just assume they won’t do it. Anytime we can get past the stereotype and actually have the conversation and discuss options, I think we’re in a better place. What you’re describing matches my experience very well. I know at TIM we made a really significant investment in changing the way that we work to adopt event sourcing. And there were some people there who were very skeptical that the business would ever invest in it. But we actually had the same kind of ROI-type discussion. The other thing we did was we took what we were doing and broke it up into smaller pieces. That’s one other way to have this conversation is not just say “here’s the overall investment and here’s the overall return and payoff,” but where possible, break it into pieces and get some of the returns sooner and make it kind of pay-as-you-go. “We’ll do a bit of of this improvement. We’ll get some of the benefit and then we’ll do a bit more, get more of the benefit.” That might delay things overall, but it can be more acceptable because we’re paying in smaller increments and each one can justify itself.
Squirrel: Well this is the key thing about the acronym ROI: it’s very easy to just use that acronym, but forget that there are two pieces to it. There’s the return, and it’s on the investment. Both things are important! What you’re describing there is a version of feature-thinning. In my case, the first sentence we were talking about was describing taking a feature that might be the Ferrari version and thinning it down to the Ford version. Here you’re taking an improvement that took took many years, a huge investment, but then breaking that into many small investments, each of which had a positive return. In other words, it was worth doing each piece of it. It wasn’t that you had to wait till the end of many years to get the return. The return was relatively quick and greater than the investment at every stage.
Jeffrey: Yeah, that’s right. One thing that it gives us is the ability to stop as we’re going. You mentioned before we want to build these features and have them scale forever. But in fact, we might not get to that billion users. I’m reminded of a conversation we’re going to have on Friday regarding lean software and practices, and the wastes such as are described in the book Lean Software Development by Mary and Tom Poppendieck. They talked about the wastes of software development, one is overwork, which is putting more into a feature then you get value out, and it’s good ROI thinking. “What do we really need for the return?” We don’t want to make so much investment that it doesn’t justify the return. So we don’t want to do the work necessary to scale to a billion users when we are going to have 500.
Squirrel: So the overall theme here is that ROI cuts both ways and is something that you can use with any business person. Money is kind of the universal language. Anybody understands money. I imagine that you had a much nicer conversation with your CFO about the return on these small investments and what the value would be, rather than if you’d shown up and said, “Hey, we got this great idea. It’s called event sourcing. We can add CQRS, it’ll solve all our problems, we’ll gain 47% on our velocity metrics.” The CFO would have turned off at the first acronym, I suspect, whereas if you talk about money, you’re going to get a lot farther.
Jeffrey: Absolutely. It’s a good way to talk the language of the people you talk to. The other thing here is have the conversation. Don’t make the assumption.
Squirrel: Indeed. Thanks, Jeffrey.
Jeffrey: Thanks, Squirrel.