Every developer understands getting “in the zone.” The zone is amazing. It’s gratifying to meet a flow state where you’re emptying yourself of the ideas as fast or faster than they arrive in your mind. As soon as you’re ready to express the ideas (in code, in documentation, on a whiteboard), there is minimal waiting for ideas to come.
Developers spend most of their careers chasing the feeling. They will find conference rooms to hide in, turn off their IM deliveries, close their email, turn off their phones, and get busy. The “Peopleware” book describes this at great lengths, discussing the optimal use of building space to maximize “thinking people’s” productivity. There’s a lot that can be said on this, but I think most of that has already been said and is easily intuited. Like many topics, there aren’t deep truths that are finally released from their captivity by someone’s writing on them—more often, they’re thoughts most of us have had already, and the writing simply serves as a formalization of the ideas. The writing simply gives us license to discuss the topic by creating the initial vocabulary on the subject and proposing a framing of the problem. In that spirit, I bring the next topic.
In the world of professional/corporate software development, there are two types of people
- Those who (in practicality) report to someone
- Those who do not (in practicality) report to someone
This distinction isn’t great since ultimately, everybody reports to someone else. Even the CEO has the board to report to. Even the board reports to the investors or owners. But in some context, for some specific topic, there is a body of work over which full agency has been entrusted to an individual. Inside of this agency, that person (whether they manage people or not) reports to nobody. For instance, if your very first job at a company is to turn on the lights before everyone arrives, nobody gets to tell you which hand to use for flipping the switch.

Imagine if your boss arrived one day, and upon reviewing the security video, gave you a verbal warning…
“ I see you are using your right hand to switch on the office lights. Please use only your left hand, and instead hold your coffee in your right hand.”
This is an utter violation of human dignity. I don’t think I need to explain the emotions someone would have in being on the receiving end of this, no matter how soft or polite the rebuke may be. But what is at the root, here? Why is this a violation of dignity?
In the confines of this specific job, turning on the lights, you expect to have full agency to solve the problem however you wish, within some reasonable confines. You’re OK to learn that you are not permitted to roll across the room on a chair and to flip the switch by colliding into it with your foot (which may cause injury). That’s a reasonable constraint on your agency, and part of your agency would be to self-determine that this is not an appropriate method to flip the switch. But there is no added value or avoidance of some negative effects by flipping the switch with one hand vs the other. It isn’t a matter of whether or not this imposes a burden upon you, it’s that there is no obvious, helpful reason to constrict your agency in this way. We call such constriction micromanagement.
At some point, everybody is subject to the feeling that they are being micromanaged. Everybody eventually has a superior who is enamored with a certain solution, and insists that it be done in a specific way. However, thinking back to the distinction between “those who report to others and those who do not,” we can see that the distinction isn’t about who reports to who. Rather, the distinction is where agency begins: this is my domain, do not tell me how to solve the problem within my own domain.
But that’s a pretty easy thing to say, and a much more difficult thing to fix. You can approach such a matter with the assumption that the micromanaging superior is an egomaniacal control freak. That’s possible, but it’s not usually the case. Humans also have a very poor ability to judge motivations in such a scenario. These obvious violations in dignity, caused by encroachment upon agency, probably have a cause that makes more sense than the surface-level criticisms one could muster. That is to say, if you think you’re being micromanaged (and maybe you are), it’s important to frame the situation in the most constructive way possible.
Think about human motivation: behavior is driven by incentives. Whatever those incentives are, a manager is subject to them the same as anybody else. In their position, their incentive is to accomplish the work that is within their own agency. If they perceive that this work cannot be appreciably done on the current path, they will intervene. Can the manager accomplish more or less when they must continually intervene? Clearly, unless the corporate assumption is that the success of the business is defined by removing as much agency as possible from the employees (like an assembly line requiring safe, high-quality, accurate, consistent production quotas), a manager’s incentive is to continually intervene less.
Firstly, it’s a matter of saving time and effort. But secondly, the more that a manager intervenes to directly steer an action, the more it causes a literal execution of the “orders” that were dispatched. To an inexperienced leader, that sounds great. But all this does is cause the leader to intervene again and again in a vicious cycle, correcting course each time in a different way across a number of people, since the leader did not establish agency for their reports, but rather told them what to do. And so when some very minor unforseen event happens, the reports act within their agency, which is defined as “do this specific thing that I told you to do, this specific way,” and they will do something undesirable in the name of executing the exact thing they were asked to do.
This isn’t confined to any specific section of a company’s ladder. It can happen at any level. Flat organizations see this happen more frequently than ones with a strong hierarchy, as the hierarchy is not defined by the reporting structure, but rather how agency is dispersed.
And so, the chief question becomes “how do we effectively establish agency within our organization?” Every company in the world wishes that it was easy to answer that question, but it isn’t. The best we’re able to do, it seems, is to describe observations on what successful managers do, not to describe how to do them. Or more accurately, we cannot describe how to generalize the solutions well enough that it’s intuitive how to navigate the tricky situations of being a leader within a business. Why? Because leaders lead people, not machines. Machines are deterministic, and break for logical reasons at quasi-predictable intervals. Humans, on the other hand, can radically change disposition from one hour to the next, and you cannot attach a debugger or oscilloscope to examine their non-visible state. Leading people is inherently not formulaic. It seems that establishing agency is more of an art than a science.
Sometimes, it’s easier to determine a solution to a problem by avoiding the undesired state than to pursue the desired state. If we recognize that we desire to avoid micromanagement, and micromanagement is caused by violating a person’s agency, then the simplistic answer is that we need to avoid violating agency, and thereby establish it.
Well, that’s not very helpful.
The truth of the matter is that there’s not a direct way. Managers need to know what problems to solve, and to ask the team to solve them. Each person on the team brings their own skills, life circumstances, etc. It’s the manager’s job to ensure that the problems are being effectively solved in the face of all these difficulties and nuances. It’s a complicated back and forth, with the manager learning the limitations of their reports, as well as what drives them, and to adapt the problems in such a way that their reports feel like their agency, that is, their dignity, is upheld. The only way to learn the limits is to push the limits until there’s a soft failure.
This can be invigorating, but it can also be frustrating. It’s primarily a frustrating experience when the expectations between a report and a manager are mutually far apart, as that’s when the search takes the longest. In effect, the manager is assuming more than the report is capable of, and needs to recalibrate. As frustrating as this can be for both parties, it is still preferred over assuming that the report is capable of performing less than they are. If this happens, we are in the situation where we’ve created the positive feedback loop of too-literal adherence to assigned tasking, which is much more difficult to recognize (as the report views the manager negatively, and the manager views the report as inept).
As this calibration happens, the manager and the report are arriving at the proper level of abstraction that they can work with as they address the problems. As the problems flow down the hierarchy of agency, they become more concrete and more specific. The violation of agency comes when a too-specific problem formulation is given from one level of the hierarchy to the next (or from one level, directly down several levels).
This isn’t all on the manager, either. The less that the report exists in the process as a willing participant, the harder it goes on everyone. The report must work intently to understand the problem they’re being given, and to establish a credible plan for how to achieve a solution to that problem. And so, in an iterative cycle, proper agency is created by establishing principled abstractions on the problem for each transfer of agency from one level to the next.
When this doesn’t happen, an organization needs to ask why.
My experience in my career tells me that when this doesn’t happen, it’s typically because a manager isn’t able to focus on doing that. It’s a time-consuming process, and if they are not able to dedicate a serious amount of time to it, it won’t go as well as it can. For these reasons, I’m usually opposed to roles like the “Tech Lead Manager” as the most active code contributor, as there are very few people who can effectively balance the effort required to establish agency for each of their reports and directly building technical solutions to problems. When a manager (at any level) is not able to focus on establishing agency, this dramatically increases the probability of micromanaging, because they do not find the time to do the complicated back-and-forth to establish agency.
So just like developers at an IDE, managers need to establish their flow state. As stated, part of establishing agency is for the manager to have a deep understanding of the problem. The other part is to build the right abstractions for each report for the part of the problem that they’ll solve. The difference between these flow state timelines is that the manager’s timelines are much longer; establishing agency takes considerable time on an ongoing basis. It takes a considerable amount of focus.
Clearly, this lack of focus can happen when the manager is too overloaded, that is they need more managers under them to help establish agency to solve the problems. As I’ve written before a few times, a good hierarchy is really important when the business problem is larger than what everyone in the company can simultaneously hold in their heads.
But another way this lack of focus can happen is that the manager is working on incongruent problems. The more that the efforts a manager is working on diverge, the less there is opportunistic synergy between their efforts. When there is great synergy, working on one problem is actually helping to build context for the other problem. In effect, two problems are being worked on for the cost of one. When this synergy is absent, full price is paid. The organization is well-served to keep managers working on related problems, and leading related teams.
When this all is working well, everyone is just clicking. The manager’s flow state is better established when they’re working multiple problems simultaneously as they establish agency with their reports. Each report enters their flow state as well, as they have full agency to work the problem that they’ve been given, and their creativity is not hampered by trying to achieve an overly-strict adherence to the tasking they have.