You sort of do; stop doing work above a certain volume, stop meeting deadlines. This will have consequences, which may include a) firing or b) better volume and deadlines, depending on a number of factors.
Most software engineers in my experience have quite a lot of control, and a large component of growing in your career is learning to perceive the control that you have.
One common misconception the article touches on, for example, is that Jira tickets represent latent task assignments, such that you should always be working on some specific Jira ticket and immediately pick up a new one when you finish or are awaiting review on the last one. That's not how the most successful engineers work, and often it's not even really what management wants.
> Most software engineers in my experience have quite a lot of control, and a large component of growing in your career is learning to perceive the control that you have.
I've found that most of that autonomy comes with trust, and that trust gets unlocked via good relationships, and good relationships get unlocked by a history of good communication.
You are 100% correct that every person has agency, the trick is to get yourself into a social dynamic where it is acceptable to assert it.
Picking up Jira tickets could be a good way to accomplish the other goals. Suppose the ticket has a request from a user you don't chat with, it's a good time to go chat with them. Maybe you don't understand a part of the code base. Looking into a Jira ticket related to that part gives you a reason to read through it. If there's lots of tickets related to a subsystem, you might have a conversation with the product owner about what direction they're taking it. What you might not want to do is accept responsibility for the ticket until it's time to actually hammer it out.
I've worked roles where our priorities shift with the wind. Many times it is for good reason, like a strategic customer to get a foothold in a market. Other times it is just because management hyped up some effort. All's this to say, nod saying you will do it then just go about your day doing focusing on the actual priorities. Don't let workload mount up bc deadlines are all made up.
Business will take everything you give. Theyre bean counters will be always calculating when it costs more to hire and onboard a new dev than to let you take your time....
> Are you working under a continuous and immediate threat of dismissal?
Definitely! It's been that way everywhere I've ever worked. Unless you are churning out code at maximum speed then it's only a matter of time before you get fired.
You may not like hearing this - setting boundaries is a skill, and a difficult one to learn. It's also one of the most valuable skills for you, especially you personally, to learn, based on this comment.
When customers that pay you a lot of money demand resolution to issues from your higher ups, you sort of have to. Especially true if their product is not working.
It has to be a really really small place for "you're the only person we can say yes with" to be a fair note on a request. That doesn't mean there aren't plenty of people stuck with such jobs at bigger places, but it doesn't make it any more reasonable an excuse and pretty much still boils down to constant fear of being dismissed if you say no in the end.