Writing an engineering strategy
lethain.com
lethain.com
Strategy needs to be tunable: with an understanding of all of individual parameters, it is possible to adjust strategy for different requirements. That makes a “boilerplate” engineering management/strategy document more useful. One size never fits all.
Yes yes yes!
https://armypubs.army.mil/epubs/DR_pubs/DR_a/ARN30101-PAM_70...
https://safety.army.mil/Portals/0/Documents/ON-DUTY/AVIATION...
https://www.globalsecurity.org/military/library/policy/army/...
https://www.chemeurope.com/en/encyclopedia/Standing_operatin...
https://clik.dva.gov.au/sop-information/guide-using-sops
https://www.ncbi.nlm.nih.gov/pmc/articles/PMC3056180/
https://info.publicintelligence.net/ANA-7-10-2.pdf
https://www.cdc.gov/vhf/ebola/pdf/air-ground-patient-handoff...
Take your pick....
On Brevity, a personal favourite and a classic W.S.C piece: https://policymemos.hks.harvard.edu/files/policymemos/files/...
On leadership, the following manuals are very organised and written well even the prefaces by themselves are succinct and take into account organisational conditions that could similarly occur for an engineering-focused org.
The U.S. Army Leadership Field Manual FM22-10 (1951): https://www.bits.de/NRANEU/others/amd-us-archive/FM22-10%285...
The U.S. Army Leadership Field Manual FM22-100 (1999): https://www.armyheritage.org/wp-content/uploads/2020/08/FM-2...
On technical writing aimed at and for an engineering team, since our subject is engineering strategy. Similar to the manuals above, these are succinct and cover a lot of ground.
U.S Department of Army Engineer Troop Organizations and Operations (1965): https://ia802804.us.archive.org/13/items/FM5-11969/FM5-11969...
On technical writing, this is a medical manual thats detailed and limited in scope for good reason. Look through and you can that it primarily serves as reference with the assumption of limited yet enough competence to do any medical work.
U.S Army Special Forces Medical Handbook ST 31-91B (1982): https://ia800606.us.archive.org/18/items/milmanual-st-31-91b...
On documenting use case scenarios and instructions related to that specific scenario.
U.S War Department Technical Manual 6-Ton, 6x6 Truck TM9-813 (1944): https://ia600202.us.archive.org/25/items/TM9-813/TM9-813.pdf
Additional references to look through, courtesy of the Internet Archive:
U.S Military Manual Collection: https://archive.org/details/military-manuals
The Manual Library Collection: https://archive.org/details/manuals
Edit: formatting and one more resource:
Army OE Program: https://armyoe.com
I think one of the key principles he’s trying to say here is that having a bad strategy is similar to no strategy. Aligned with Rumelt’s wonderful book.
The big challenge for said good strategy is how certain decisions have been made. Most people just see a resulting backlog and ask questions accordingly. But if you knew the underlying strategy going into these backlog decisions, you’d focus more time on assessing if that strategy matches with the business and product needs.
I think many groups would benefit from hearing about their engineering strategy from their leaders. Which seems non-existent in most places.
He says here that most companies/orgs don't actually write this stuff down, and he himself only did it at his most recent gig. Has anyone seen this done well in their own companies? Are there well-known companies with a culture of this kind of writing, that is generally agreed to be effective?
Do I fundamentally misunderstand what engineering means?
I would have expected something along the lines of explaining the goals and how to measure things like:
- performance, latency and throughput, ball park estimations
- robustness and correctness, which parts are critical and prioritized, what kinds of bugs can or cannot be tolerated, when are they being fixed
- resource usage, devices/hardware, deployment targets
And secondarily perhaps topics like:
- protocols and standards to adhere to
- open source and dependencies
- automation and tooling
- dev environments, version control
- testing and feedback loops
User 'jschveibinz' describes it well.
Really weird, as someone who works as a Software Engineer in systems. The number of infra programmers you have is not a ratio to be kept with product developers. It's dependent on the versatility, modularity, reliability, and performance of the platform you have internally. More plainly put, if you want only VM orchestration with very minimal features, that's a different head count that support virtual machines, FAAS, and container orchestration.
Otherwise it really doesn't make much sense at all.
What would those 100 engineers even do? For the longest time, we had ~10 sysadmin and devops staff supporting 300 engineers. Nowadays, everything is run by AWS anyway--there's hardly any real infra to manage.
You’re likely wasting resources or doing other dumb things (bad AWS role management) if you don’t have someone who owns that stuff.
With that said, yeah, I think "a static ratio" vs "a flat count based on desired features" vs something else is an interesting discussion! My experience is that more product means more usage of the breadth of infrastructure, and requires both more infra development and more support, but I haven't worked in large orgs, so I don't know how this nets out as size grows.
If we didn’t increase the number of infra engineers with product engineers, we’d very soon be unable to deploy anything.
That’s less than desirable of course, but as long as it’s like that it may be good to have a fixed ratio.
I think if you work backwards engineering strategy should become more clear. That’s the part I found strongly missing in that article.
But if you don't let the tail wag the dog you'll find you have a very disaffected tail.
Turns out putting those three circles at the same table solves this.
Much easier said than done.
The article is to guide Executives on how to write a company-wide Engineering Strategy document for medium and large organizations.
It is like microservices. Looks nice on paper. Taken blindly and misery ensues.
The only actionable item is resource allocations coming out of those strategy documents. The rest is pretty much fluff.
When an engineer joins the team 6 months into the project, it's important for them to have context on why you're doing what you're doing.
Even if you have to qualify it with a bunch of "oh yeah, we're not doing X and Y, and we're doing a different version of Z," it's really nice to get an overview.
It's about running a TV show - which has to be one of the most challenging management exercises out there: you have a limited budget, a hard deadline, activist investors ("the network"), you need to recruit 100+ different people in a very short amount of time... and you're also expected to write the first and last episode of the series too!
The reason this document is relevant here is that the it talks about the importance of having a clear vision. If you can express a clear vision for the show, you can then distribute that vision amongst your lieutenants - who are then empowered to go and make good decisions without you having to micromanage every step.
To my mind, this is the value of strategy and vision documents: they're about helping people in your organization make good decisions independently of top-level leadership.
You’ll recognize this isn’t always the case in tech. Your startup may not know what to build yet and is simply exploring the problem space as quickly as possible; your team may not be staffed up yet; your team may be staffed and very senior, which requires a peer relationship instead of delegation; etc.
The skill of a good leader is to match their approach to the situation.
Great great write up. Obviously it's about making a tv show, but pretty much all of that is applicable to any leader.
If I disagree with my management chain and know the CTO ultimately wants a specific thing to happen, then I can happily escalate until it reaches his desk.
> Once you become an engineering executive, an invisible timer starts ticking in the background. Tick tick tick. At some point that timer will go off, at which point someone will rush up to you demanding an engineering strategy. It won’t be clear what they mean, but they will want it, really, really badly.
That said, the actions section does feel too tactical to me. Strategy would be more about the goals and targets.
I can really recommend the book. It basically boils down to how to take Strategy documents from the classic high-flying, bla bla visions, values etc that employees (incl midlevel mgmt) read and forget about again because its too far removed from their actual work, and instead write a Strategy that is both based on what actual problems/threats are, and that communicates in a concrete but not too specific way how to execute the Strategy.
Writing Strategy documents that are actionable are important, I think, to try and deal with the old but very true “culture eats Strategy for breakfeast”