Optimize for smoothness not speed
This week Gerhard is joined by Justin Searls, Test Double co-founder and CTO. Also a đ magnet. They talk about how to deal with the pressure of shipping faster, why you should optimize for smoothness not speed, and why focusing on consistency is key. Understanding the real why behind what you do is also important. Thereâs a lot more to it, as its a nuanced and complex discussion, and well worth your time.
Expect a decade of learnings compressed into one hour, as well as disagreements on some ops and infrastructure topics â all good fun. In the show notes, you will find Gerhardâs favorite conference talks Justin gave a few years back.
Matched from the episode's transcript đ
Justin Searls: Yes, thatâs a great question. And I think that a guiding light for me on the most successful teams that I have either been a part of or that I have witnessed, has always been a shared and common just understanding of what their purpose was. So I was part of an organization, a consulting company, just prior to founding Test Double. So we founded Test Double in 2011, so it was like 2009-2010. And they were in that era where it was known as like an agile software consultancy. And so they were peddling, pushing their own kind of blend of agile engineering practices like Scrum and extreme programming. But they did an interesting thing in their sales process of really pushing business value.
And so if user stories rolled up into like Epics â Epics, in their sales parlance and also in how they practiced and delivered, would roll up into business value stories, or value stories. And we would start each engagement by actually getting the whole team in a room - developers, QA, product owners, business stakeholders alike⊠So it wasnât behind some secret veil of like a product organization. I didnât even know that might be considered desirable in certain organizations; I was sufficiently naive to this experience. And what was great about it was we would just have an open and honest put up on the board, like âHey, executive or stakeholder or person who brought us in here to like build this thing, how is X, if delivered as conceived, going to make or save your company money?â And just boil it down.
And first of all, a lot of executives, it turns out, are uncomfortable with being put on the spot to answer what shouldnât be a simple question such as that⊠But when you really sat with it, and as a team forced the conversation out, and then you followed through, not just on â I donât know⊠Hereâs a project example that we did - currently, our system is so slow that sales reps who go to restaurants to sell food supplies, end up just spending multiple minutes just waiting for pages to load, and they could hit three or four more restaurants a day if it was fast. And that would result in like X dollars. And weâd follow through and be âOkay, so what is X? How would you measure X? How will we assess that X has been attained after weâve delivered it?â And not only in the kind of initiation phases and discovery of the project, but how will we, on an ongoing basis, track that as the primary metric for success for this project, as opposed to arbitrary story points, right? Because thereâs no way to know whether youâre going in the right direction or the wrong direction if you donât have a shared understanding of what the point of the thing that youâre building is. And most software teams, they donât know what the point of the thing that theyâre building is. Or in this day and age, to know it would be to not want to work on it anymore⊠You know, whether for ethical reasons, or just because itâs a lot of the stuff that gets built these days is kind of slimy.
And even though, in my practice at Test Double, our clients - they work on fantastic and wonderful products - I think that we have sort of been encouched into this default relationship where product throws âHereâs the features that we wantâ and âHereâs the things that we need.â Thereâs a disconnect at the developer level, at the team and engineering level, where we lose sight of or arenât really bought into or arenât really included in the discussion of âBut why?â
[12:11] And I have seen teams where developers know the answer to âWhyâ, and when a product owner says, âHey, hereâs how these comps should go⊠And you click this and then you click this, and then you click thisâ, a developer who knows what the ultimate goal is, in terms of like business value or whatever the overall organizational objective trying to be met is, can successfully have a real two-way discussion with that product person and push back, or offer alternative ideas, or even find shortcuts that would make things faster. And in the absence of that, everyone just becomes an order taker⊠You know, I receive these marching orders and then I go and build the thing. And I think that sleight of hand is what actually facilitates and enables a lot of the negative externalities that we see in our industry.