How Do I Use Strategy?
Explore how to use strategy effectively in your software engineering career by making informed decisions amid uncertainty. Understand key strategic aspects like technology choices, specialization, and business models. Develop a mental framework for navigating tech trends without overanalyzing, while appreciating the role of culture and people in career success.
We'll cover the following...
Where we can apply strategy
Everything I have described may feel a bit out of reach. You aren’t a general or a founder. You aren’t even a senior engineering leader yet. I get it.
However, strategy applies anytime you make major irreversible decisions in the face of uncertainty. This makes intuitive sense. If a decision is reversible, you’d just try it and “see what works.” And if you have no uncertainty, your decision would be obvious. As with all decision-making, “no strategy” is also a strategy; it is you trusting your fate to the strategic choices of someone else. If you hope to grow professionally, nondecision will be increasingly less valid.
Major strategic aspects of a coding career
This section will help you think through major strategic aspects of a coding career, including how to bet on technologies, whether you should be a specialist or generalist, technology business models, and everything in between.
You should also try to develop a mental framework for understanding reality. Yes, that felt as absurd to type as it was to read. Tech is immensely complex and noisy, yet there are clear supercycles and winners that you need to stay on top of. You need a way to filter and organize information about information technology. We will touch on systems thinking, ecosystem awareness, and megatrends.
Because you should understand the economics of what you work on, I will also introduce the basics of tech strategy: Advertising vs. SaaS vs. Marketplace business models, Horizontal vs. Vertical, and other ABC’s of the Business of Software.
Teaching strategy is an ambitious task. I’m not an expert. I don’t know your specific situation, and the experiences of me and my friends may not be representative. I hope to teach you to think about strategy rather than think for you.
Don’t stress too much
It takes a rare genius to understand strategy. I certainly don’t, but I know to spot people who do, really listen to what they say, and translate it to my context. I hope to open your eyes to this as well.
I also want to caution against getting too swallowed up in strategy. Analysis paralysis helps nobody. You will make missteps. Don’t try to undo them. What’s done is done, so reassess without sentimental attachment to sunk cost.
As a software person, your skills are transferable, so you are less locked in than people in other professions. Finally, on a long enough time horizon, most decisions become reversible. If you feel stressed out, take a longer view. This, too, shall pass.
A final thought: Peter Drucker is famous for saying that “Culture eats Strategy for breakfast.” Whatever fancy strategy you or your leadership adopt, remember that people are always at the heart of your work, and great people can overcome bad strategy when united by a strong culture.