There is a difference between an engineer who needs to be told what to do and an engineer who figures out what needs doing. The first is executing tasks. The second is creating value. They might share the same job title. They are doing fundamentally different work.
Agency is the capacity to act — to see what matters, to decide, to move, to build a way of working that produces outcomes. It is not seniority. It is not arrogance. It is the refusal to wait when waiting is not necessary.
Waiting is a tax#
In every team there is a tax paid by the people who wait. They wait for a ticket. They wait for clarification. They wait for someone to tell them what comes next. The work they could have started yesterday gets started tomorrow, or next week, or never.
Sometimes waiting is the right move. There are decisions you should not make alone. But the default for most engineers is to wait too much and decide too little. The tax compounds: ten engineers each waiting a day a week is a full engineer of output, evaporated.
The engineer with agency does not ask “what do you want me to do”. They ask “here is what I think we should do, am I missing something”. The first question makes them a recipient. The second makes them a participant.
Default to action#
When you notice work that needs doing, do it. Do not file a ticket so that someone else can pick it up. Do not put it on a backlog where it will sit for a quarter. If it is small and clearly useful, just do it.
This applies especially to friction you encounter directly: broken docs, missing scripts, unclear error messages, flaky tests. The person closest to the problem is the cheapest one to fix it.
Decision over question#
When you face a choice, do not bring it to your manager as a question. Bring it as a decision with a request for confirmation.
Bad:
“Should we use Postgres or MySQL for this service?”
Better:
“I am going to use Postgres for this service because we already operate it, the team knows it, and we need the JSONB support for the event payloads. Let me know if you see a reason to choose differently.”
The first asks someone else to do your thinking. The second uses their attention well — they only need to engage if they disagree.
Pick a direction, ask for course correction#
When the path is ambiguous, pick one and start. You will learn more in two days of building than in two weeks of debate. Most decisions are reversible; the cost of being wrong is small compared to the cost of being stuck.
Announce the direction you are taking and what would cause you to change it. This makes course correction cheap — anyone who disagrees can speak up before you are too far down the path.
Close the gaps yourself#
Agency is not stubbornness. It does not mean making decisions in isolation or refusing input. It means closing the loop yourself instead of leaving it open for someone else.
The pattern is the same in every case: identify the gap, close the gap, keep moving. The opposite — flagging the gap and waiting for someone else to close it — is how work stalls.
Chase clarifications#
If the requirements are unclear, get them clarified. Do not wait for the next sync. Find the person who knows, ask them directly, and document the answer where the next person can find it.
When a stakeholder is unreachable, write down your assumptions and proceed. State explicitly what you are assuming and what would change if it is wrong. This converts a blocker into a reversible bet.
Find missing stakeholders#
If a decision affects a team that has not weighed in, find them. Walk over. Send a message. Put fifteen minutes on a calendar. The cost of pulling them in now is much smaller than the cost of redoing the work after they object later.
Surface blockers early#
If a dependency you need is not ready, raise it now. Not the day before the deadline. Not when the missing piece becomes the critical path. Now — when there is still time to negotiate scope, find a workaround, or escalate.
A late-discovered blocker is rarely an accident. It is almost always something the engineer noticed and chose not to flag because flagging felt premature. Flag early. The cost of a false alarm is much lower than the cost of a missed deadline.
Do not flag and forget#
Raising a blocker does not transfer ownership of it. You raised it; it is still yours to chase down to resolution. Follow up. Re-escalate. Propose alternatives.
The mark of low agency is the engineer who can list every reason the project is delayed, none of which were within their control. The mark of high agency is the engineer who removed those reasons one by one.
Build the process you wish you had#
A senior engineer does not just do the work assigned. They build the system that produces the work. They notice the friction that slows the team down and remove it. They write the doc that should exist. They start the meeting that should be happening. They define the convention that should be followed.
This is not about authority. You do not need to be the lead to do these things. You need to see that they need doing, and choose to do them.
Write the doc that should exist#
When you find yourself answering the same question more than twice, write it down. When you spend an hour figuring out how something works, leave a trail so the next person spends ten minutes.
A short, ugly, accurate doc beats a long, polished, missing one. Write it now in whatever form is fastest.
Start the meeting that should be happening#
If two teams keep misunderstanding each other, propose a recurring sync. If decisions keep getting made in DMs that should be visible, start a public channel. If the team has never done a retrospective, run one yourself.
You do not need permission to organize people around a real problem.
Define conventions before they are imposed#
If the team is making the same decision over and over — about naming, about structure, about testing — pick one approach, write it down, and propose it as the default. People are usually happy to follow a convention they did not have to invent.
Improve the systems you use#
The CI pipeline is slow. The dev environment is brittle. The deploy script has a known footgun. These are not someone else’s problems. They are slowing down everyone, including you. Fix them — or at least file the issue, propose the fix, and offer to do it.
Lead without title#
Authority follows initiative more often than the other way around. The engineer who consistently picks up loose ends, drives decisions, and produces good outcomes becomes the engineer the team listens to — regardless of what their title says.
Help others, but do not carry their work#
Agency does not mean doing everyone else’s work for them. If a teammate is stuck, help them get unstuck. Do not silently complete their task while they go to lunch.
The goal is to multiply agency across the team, not to concentrate it in yourself.
Push back, but bring a proposal#
When you disagree with a decision, say so. But do not just object — propose what you think should happen instead. “I don’t think we should do X” is a roadblock. “I don’t think we should do X, because A, B, C — I think we should do Y instead” is a contribution.
Take responsibility, not credit#
When the work goes well, the team did it. When the work goes poorly, you contributed to the outcome and you can name what you would do differently. This is not modesty for its own sake — it is the operating posture that makes people want to work with you.
Anti-patterns#
Agency is easy to caricature. Watch out for these failure modes.
Performative agency#
Sending busy updates, picking up flashy work, ostentatiously volunteering — none of this is agency. It is signaling. Agency is what you do when nobody is watching, on the unglamorous work nobody asked you to do.
Cowboy decisions#
Making decisions that affect others without consulting them is not agency. It is overreach. The test is whether you can defend the decision to the people it affects. If you would hide it from them, you should not have made it alone.
Burnout from doing everything#
You cannot single-handedly fix every gap in your organization. Choose carefully. The work of agency is identifying the highest-leverage gaps and closing them — not closing every gap you see.
Sustainable agency is selective. Unsustainable agency is heroic, exhausting, and unrepeatable.
Without permission#
Agency is not about working harder. It is about working without permission. It is the engineer who, faced with ambiguity, picks a direction and moves — and asks for course correction along the way rather than waiting for instructions before starting.
Good engineering is full of people like this. Not because they were told to be. Because they decided to be.