Pacing: the most important skill in startup engineering leadership
danielmangum.com
danielmangum.com
I know it's not a popular opinion, but I hate sport metaphors for business. They make no sense even with tiniest scrutiny.
Isn't endurance running as mean of transportation completely disrupted by bicycle, cars, or public transportation? Wouldn't endurance running even with perfect pace actually kill you if you don't stop?
- look backwards from time to time (so you'll know from where you came in case it's necessary to backtrack)
- know where you think you should be after X hours hike, and compare your actual surroundings to ensure they match sufficiently with the deduced location
- if you do get lost, never leave your drainage (when things are going poorly, don't make them worse)
We later learned he was a program manager for the https://en.wikipedia.org/wiki/Rockwell_X-30 , and not only did we use all three rules literally when got lost about half a week later, I've used them metaphorically on all manner of software projects since.
Also, what does drainage mean in this context?
Retrospection: Periodically examine what you've made and how, identifying the good, the bad, and the ugly. Try to structure your future work to produce more of the good and less of the bad and ugly.
Orientation: Periodically check to see if you're making what you meant to make, is what the customer wanted you to make, and is still what the customer wants you to make.
"Stop digging": Ok, you have a bit of code that's almost right, but it fails some tests. Add an extra conditional here, copy/paste a function there, change a constant in the copied code, voila problem solved. Oh, failing another test, let's repeat, and repeat. In the end you have 10x (or more) the necessary code and anyone looking at it would, rightfully, mock you for copying a 10 line function multiple times to make "render_with_black_background", "render_with_blue_background", "render_with_green_background", etc. when you, maybe, could have made it a parameter (with a default value) instead. It's related to the previous two in the sense that if you're actually retrospecting and periodically orienting, you probably won't dig the hole too deep.
3/ "never leave your drainage" - a river-system drainage. for hiking, go downstream when lost: this will narrow the area you might be in, and tends to take you towards civilisation rather than away from it. for software, more metaphorical: debug by figuring out what's working as expected and ruling it out, thereby narrowing the area the bug might be in; the equivalent of leaving a drainage —hiking across a pass into new drainage— would be "fixing" an issue based on what you think the problem is, rather than what you know the problem is, only to wind up with a system that still doesn't work, and now not having any idea if odd behaviour comes from the original problem or from the "fix".
I read drainage as a water source and it might still work. In general rivers or any type of running water will have a higher chance of leading to another human being vs not with no other context.
You could relate that to software development by emulating running water in the sense that progress is being made if you're moving in a direction that's not fighting the current or stagnating. This could be taken in a number of different ways such as working on things that naturally let you make progress instead of fighting against it or getting lost and going in circles.
I've been on a hike or two with my wife where knowing where the running water is versus where it should be saved us several hours of being lost.
Sports metaphors are common because the are usually easy to grasp.
And I think in this specific case it makes a ton of things to not pick any metaphor, but an endurance run as opposed to … a sprint, which is currently THE most common (albeit only implicitly used)sports metaphor in the software engineering industry.
Endurance racing, which is what they're actually talking about as they care about "making time", is a sport that also appears almost identically in cycling and driving. And in all those contexts it's just an elective hobby that helps paint a picture about pacing, goals, and burnout. It's not about transportation at all.
But as far as running goes for transportation, it's 500,000 year old technique that ultimately requires no manufacturing or contraptions and runs on foraged berries. Other options may creep into use for a millenia or two, but it's not going anywhere.
As a cross-country mountain biker and long-time software engineer, there is a hell of a lot of analogues between mental and physical endurance even if the activities are completely different.
Ehhh. I would go so far as to say, pacing in general is not something management really has any control over. I don't recall ever in my career that a manager "pushed" a team to appreciably increase their real productivity.
Your best bet is to just get in tune with your team's pace, then plan based on that. Good managers don't "push", they prioritize.
"Missing a goal is not necessarily signal that your pace is too slow. In fact, it often means that you simply didn’t plan well for a more difficult portion of the race."
He did try to stretch the metaphor by mentioning inclement weather, but overall, software engineering is not similar to running a race.
For some features, you literally do not know what could be around the corner. It could be a huge crevasse. There is no known accurate map of the area. Your plans are more like wishes you make in front of a well before you throw a coin in.
If you had a good map then you wouldn't necessarily be doing software development. It would be more like just configuration and deployment.
That is why I would like to add that if you run into what seems like a roadblock, don't blame the staff. They didn't put it there. Give them time to figure out how to dismantle it or go around.
The first two are payed only lip service in all but the most exceptional startups. My last one there was so little honesty and transparency despite the outward appearance of such being polished to seem as if it was.
I think the problem is the boards, especially when you have an engineer heavy founder set, those savvy investor types run circles around the C-suite. I literally had my CTO tell me when complaining about some big partners "there is a power imbalance and they know it" as an excuse to not even try to stop their bad behavior!
Add in sleazy lawyers and it's a recipe for culture disaster.