Ankur Chauhan's Blog
Sunday, September 1, 2024
Wednesday, August 7, 2024
Staff SWE: dealing with ambiguity
Staff SWE: dealing with ambiguity
This is a really relevant article that I have followed over the years but I never documented it. The author does a good job of capturing the most important ideas. Only thing I can add is that for the decision making framework I have settled on RAPID framework – https://www.bain.com/insights/rapid-decision-making/
Playbook for handling a highly ambiguous problem/project.
- map out the state of play
- Talk to involved teams to understand what the problems at hand are, and rough sketches of what the solution might look like.
- Debug the gaps in cross-functional awareness and partnership that are making this difficult to resolve.
- Identify who the key stakeholders are, and also the potential executive sponsors for this work.
- Develop potential options to solve the state of play
- Cluster the potential approaches and develop a clear vocabulary for the clusters and general properties of each approach.
- Develop the core tradeoffs to be made in the various approaches. Be very specific to get agreement across stakeholders who may not know all the details/implications.
- Talk to folks solving similar problems at other companies. It’s one thing for you to say that you want to run a wholly isolated instance of your product per region, but it’s something else entirely to say that Amazon used to do so. As you gather more of this data, you can benchmark against how similar companies approached this issue.
- Drive a decision (use RAPIDd framework)
- Determine who has the authority to enforce the decision.
- Document a decision making process and ensure stakeholders are aware of that process. Eventually, you will lean on the authorities to hold folks to the process, but they’ll only do that if you’ve already mostly gotten folks aligned.
- Follow that process to its end. Slow down as necessary to bring people along, but do promptly escalate on anyone who withholds their consent from the process
- Align on the criteria to reopen this decision. One way that solutions to ambiguous problems die is that the debates are immediately reopened for litigation after the decision is made, and you should strive to prevent that. Generally a reasonable proposal is “material, new information or six months from now”
Despite following this, things can fail. The usual reasons when that can happen are 2 fold:
- Trying to solve the problem too early.
- Not having an executive sponsor.
Tuesday, August 6, 2024
Staff SWE: working across contexts
Really good advice from https://lethain.com/layers-of-context/ that 100% makes sense while working as a staff+ eng.
As someone who used to struggle greatly with this, I’ve found it valuable to approach problems in three phases:
- Focus exclusively on understanding the perspective of the other parties
- Enter the mode of academic evaluation where I try very hard to think about the problem from a purely intellectual basis
- Only after finishing both those approaches, only do I bring my own feelings into the decision making–what do I actually think is the best approach?
Thursday, August 1, 2024
Today #1
I got some time away from the kids and family. What do did I do with that time you ask? I selected a new font for the blog. Haha. That's funny you say, well F-ing yea it is! I love it.
Okay.... Let's start.
I will be starting my new job at Google / GCP / STS on Aug 12 and I am pretty excited to see under the hood. I spent the afternoon eating tacos and watching micrograd/makemore. Boy those math guys really worked something out for once. who knew.
Okay.... Now really start what we were here for....
Thinking in systems
The main take away that I have from this book is that we need to think not just in a reductive manner but also about the system as a whole. There are emergent behaviors of the systems that are only possible when we look at the interactions of the system instead of looking at the individual components.
To be honest, this playlist does a good job of summarizing the book as a whole: here.
Key terms and points
1. Stock: The reserve of the thing that we are accumulating. It is the thing that the system accumulates over time.
2. Inflow: Material / Information that enters the system leading to the increase in the stock if left to its own devices.
3. Outflow: Material/Information that leaves the system leading to the decrease in the stock.
The whole system can be imagined to be composed of a lot of feedback loops, these can be reinforcing feedback loop (that would increase the inflow over time) or a balancing feedback loop that would aim to stabilize or reduce the stock over time.
A system may have 1 or more stocks, 1 or more feedback loops. The result of altering the state of the feedback loops may result in increase, decrease or oscillations in the stock.
The result of the changing the feedback loops will also not be evident immediately, it may take some time for the effects to be observed. This is one of the main reasons for oscillations in the stock.
We should also think about the limiting factors. All systems cannot be scaled up indefinitely, they will all run into some limiting factors - human, technological or physical. Therefore unlimited growth is not possible and we need to be aware of the renewable as well as non-renewable resource (aspects of the stock).
Non-renewable resources = stock limited. taking out too much stock will cause exhaustion (fish in a pond)
Renewable resources = flow limited. - outflow is more than inflow would cause exhaustion
Why do systems work so well? This is primarily due to them having resilience. We want a rich structure of feedback loops at different levels so that they can compensate for different kinds of changes/breakdowns. This is a kind of systemic redundancy that allows things to evolve and develop "anti-fragility" / meta-resilience.
We want dynamic system resilience and not just static stability - a system that can only deal with resilience in a small problem space. In static stability, a common breakdown is information distortion - cancer can be thought of as a breakdown of the immune system's ability to respond to signals about bad cells.
Self-organization is also desirable as it's the capacity of a system to make it's own structure more complex in response to it's needs. For organizations, this means that it's people can organize themselves and use their imagination to solve novel problems.
Hierarchy works! It actively reduces the amount of information that needs to be exchanged at higher levels there by allowing for more complex structures to emerge. At the same time it encourages/enables lower levels to have denser connections.
End reading Chapter 3
Sunday, June 16, 2024
Father's day
Today is father's day and I had a wonderful day. It is great to know that I have two wonderful kids that love their dad and a wife that is amazing. It was a day away from technology, solving problems and thinking about computers and software for a change. I am glad for the day.
My grandfather passed away yesterday and it has been a tough time for my mother who is back home with my aunts and uncles helping my grandmother through everything. I video called them and it broke my heart when my grandmother said "Anku, Nana is gone". I had lots to say but all of a sudden I forgot all of it and I just looked at her.
I will always remember my Nana. He was a strong and gentle man who raised amazing children and was always there to love his grand kids. I love him everyday and I'll miss him.
Metallica : 72 seasons - in concert
There is nothing better than seeing the greatest band of all time in person!
-
There is nothing better than seeing the greatest band of all time in person!
-
Today is father's day and I had a wonderful day. It is great to know that I have two wonderful kids that love their dad and a wife that...
-
I got some time away from the kids and family. What do did I do with that time you ask? I selected a new font for the blog. Haha. That's...