Big companies love boxes. Policies, platforms, roadmaps. Fine. The trick is noticing the room inside the box.

This is a map of what developers and teams can actually control in that room, what can be bent without a permission slip, and what can only be influenced over time. It’s not theory. It’s the small, repeatable moves that make your day less miserable and your system less fragile.


A flat digital illustration of a weary developer sitting at a desk with three labeled boxes behind them: 'Control' with a laptop and coffee mug, 'Influence' with a small plant sprouting through cracks, and 'Mandates' filled with sticky notes, a burndown chart, and a Jira board. The developer glances sideways at the boxes, unimpressed. Warm, muted tones of orange and beige dominate the palette

The Three Buckets of Control

I think about control in three rough categories.

Stuff you can just do. No questions asked.

Stuff that’s mandated from above but can still be bent into something useful if you play it right.

And then the big stuff you can’t dictate, but you can steer over time with enough persistence or evidence.

Most developers underestimate how much sits in the first two buckets. We default to saying “that’s outside our control” when really it’s just inconvenient.


Code and Craft

Code is the one thing you own. How you name things. Whether you add a test. Whether you clean up a mess you just tripped over. You don’t need permission to do any of that.

On one project we made a habit of updating minor Spring versions. It was never a management priority. We just did it. Years later, after I’d moved on, the company stopped. The next team ended up facing a massive upgrade project. Painful, expensive, avoidable.

Leaving code a little better is professional hygiene. Same for writing the unit test your future self will be glad to have. Nobody can take that away from you. And if they try, you should be looking for another job.


Design and Architecture

This one lives in the grey.

As a team you usually get a fair bit of say in how you break things apart. Classes, APIs, module boundaries. That’s in your hands most of the time. What’s harder is the bigger calls. Which framework to use. Which database to trust. Those choices often come stamped with “executive decision.”

Doesn’t mean you’re powerless. Influence usually comes from showing, not telling. We once had Prometheus shut down as “not for us.” Too much risk, too much change. The team quietly used it anyway to help debug during development. Nobody cared because it made life easier. Eventually the value was obvious and the wider business adopted it for production. Funny how “not for us” turns into “must have” once the evidence is staring people in the face.

That’s the pattern. Push where you can. Prove the value in small ways. Let the organisation think it was their idea later.


Developer Experience and Environment

This is the layer nobody gives you permission for but you can always touch.

At one place we had a script to spin up a full dev environment on EC2. Push a button and you got all the services you needed without chasing down tribal knowledge or begging ops. It saved hours and killed the “forgot to deploy X” problem. Nobody asked us to do it. Nobody signed off. We just did it because we were sick of wasting time.

That’s the kind of control that matters day to day. A dotfile tweak. A shell script. A make target. Pre-commit hooks. Boring things that stop the paper cuts. If you’re waiting for an official “developer experience initiative” you’ll be waiting forever. Most of the best DX improvements are done under the radar by the people who feel the pain.


Process and Rituals

This is where most people throw up their hands. “We have to do standups. We have to do retros. We have to use Jira.” Sure. But how you use them is still up to you.

Standups are the classic example. Done badly they’re just a 15-minute status recital nobody cares about. But shift the focus to impediments and suddenly it’s useful. Ask why a story is still sitting in “in progress.” Make it normal to ask for help. Hold each other accountable. That’s when standups stop being theater and start being problem-solving.

I’ve also been on a team that just dropped the pretense. We admitted we weren’t doing Scrum. Internally we worked the way that suited us. Outwardly we still cranked out the burndown charts to keep the wider org happy. Not ideal, but it gave us space. Sometimes that’s the compromise.

The form may be mandated, but the function is yours to shape.


Timelines and Commitments

This is the area with the least wiggle room. Roadmaps, deadlines, release dates — they usually arrive from outside the team. You don’t get to vote.

I’d love to say there’s a trick here but mostly there isn’t. When timelines are unrealistic, you’re often left with the hollow satisfaction of “I told you so” when things collapse. Nobody wins in that moment.

What you can do is manage expectations. Surface risks early. Show dependencies. Offer ranges instead of absolutes. Sometimes that softens the fallout, sometimes it doesn’t. But it’s still better than pretending everything is fine and eating the blow-up later.

This is where control ends and survival skills begin.


Relationships and Influence

This one is harder for me to pin with concrete examples. I haven’t always been the best at playing the influence game. But I’ve seen how it works in principle. Influence often comes from showing value in small ways, or from the quiet trust built across teams. It’s not fast, and it’s not guaranteed, but it’s a lever that exists even if you don’t hold a title.


Culture and Norms

I don’t have a long list of culture-war wins. The clearest memory I have is a team that stopped pretending to do Scrum. That choice gave us room to work in a way that actually fit, even if the wider org wanted the same old ceremonies. That’s what culture control looks like in practice. Small, local decisions. The tone of your team. The rules you quietly choose to follow or ignore.

Micro-culture is always in reach, even when the bigger system feels immovable.


Boundaries and Career

This one is personal.

I’ve always encouraged the people who reported to me to balance overtime with time in lieu. Don’t donate hours. Take them back. The organisation won’t protect your balance for you, so you have to do it yourself.

But if I’m being honest, I haven’t always been good at that for myself. I’ve slipped into the pattern of late nights and “just one more thing.” It’s easier to push the message for others than it is to live it.

The wider point is this: your boundaries are part of your circle of control, even if they’re uncomfortable to hold. And when everything else feels immovable, you still have the nuclear option — leave. Your career, your learning, your willingness to walk away… those levers are always yours.


Closing Thoughts

Control isn’t binary. It’s a sliding scale. Some things you own outright. Some are fixed but can be bent. Some you’ll never steer, no matter how hard you push.

The trick is spotting which bucket you’re in and acting accordingly. Don’t waste energy fighting the immovable. Don’t shrug off the things you can quietly shape. And don’t forget the small wins in code and tests that make tomorrow easier than today.

Those small wins are yours. Nobody can take them away. And if they ever do, you probably need a new job.