Working Backwards - The Importance of defining the Target State
Say no to Incrementalism
Engineering organizations often suffer from incrementalism: Take your current state, and ponder what can be improved in the next sprint/quarter or cycle. This results in paralysis and lack of focus on the bigger picture on where the technology organization needs to evolve to. Everything is thought about in terms of small steps.
At Inflection, we prefer to work backwards. Working backwards means choosing to ignore problems in the current state and instead ask “if we were starting over, how would we build this?” Ignoring the problems in the current state helps define a clear target state we want to get to. Once this picture is clear, we map out what the steps are to get to this target state, and very deliberately plan out a quarter by quarter investment plan to get us to this target state. The process we follow is captured in this diagram:
The thinking starts on the right hand side - the target state. A target state is drawn with an explicit intent to ignore the problems in the current state. The team understands the domain, and the questions we ask is: How would we build this in the current technical era? In 2020, this includes thinking about Platform as a service, Serverless, Client side rendering and a focus on scale/security and microservices.
The outcome is a picture that defines the target state. Once this is defined, then, and only then do we look at the current state. This avoids the problem of being biased by the problems in the current state. While our target state cannot be publicly shared, a lot of ingredients will be familiar: More automation, minutes from development to production, microservices, getting closer to customers.. and a number of cultural and process elements that are covered in Part 2 of this writeup.
Start with the Strategy, then define the tactics
We start with a strategy: Get to this target state. This is aided by tactics. Both are essential1. The tactics are the financial investments in tech modernization, the quarterly plans for features and modernization, prioritization, the hiring plan and the definition of sprints. Note how deep the tactics go: It involves finance (How much money should we invest in this quarter to get to target state?) the Product team (how should we prioritize building new features to paying down tech debt?), the Talent team (how and how many do we hire?) and process (How do we define the sprints, and what do we prioritize?)
Each sprint helps us move towards the target state. However, the target state itself is not static. Every six months, the target state is reviewed to reflect the evolution of our understanding of the problem domain, the understanding in how technology around us has changed - and changes taught to us by our experiments in the real world.
Board of Advisors
The target state is not static, but dynamic. So it is important we review changes in the marketplace, business strategy and technology landscape. The first two are accomplished internally, but product and business teams. While technology changes are generally looked at, we always look for leaders who have deep understanding of key technologies and can help guide the evolution of the target state. In Inflection’s case, we are lucky to have 3 word class technology leaders on our board of advisors, particularly in the data, and CI/CD/K8s/building and deployement at scale. Thanks to Sandeep, Venki and Pratik who provide this leadership (scroll to the bottom of the page)
A CTO must understand how to allocate monies. At Inflection, we model 3 buckets of investment: Product Development, Product Support and Tech Modernization. The goal is to reduce the cost of product support to the smallest amount by efficiency and quality: and Feed that into product development. Tech modernization is an ongoing (sisyphean?) task to continually make improvements in our technology stack
Tech budgets are not static. They are defined during quarterly planning: Every quarter has its own definition of how much we need to invest in each one of these buckets, in collaboration with business leaders and product managers. The goal is to continue to squeeze the sustaining work bucket so that more of our energies can be devoted to the other two buckets.
1:Strategy without tactics is the slowest route to victory. Tactics without strategy is the noise before defeat - Sun Tzu