Definition
Developer agency is the belief, and the behavior that follows from it, that a programmer is an active participant in their work rather than a cog executing orders. A developer with agency questions requirements, improves processes, chooses tools, and steers their own growth.
The Pragmatic Programmer authors open the book with this idea: a pragmatic programmer takes charge. The opposite is learned helplessness, where unsatisfactory tools, broken processes, and bad code are accepted as simply how things are.
Why it matters
How it works
Agency shows up in small, repeated choices. When a build is slow, you fix it instead of complaining. When a requirement seems wrong, you ask why instead of coding it blindly. When a tool fights you, you find a better one or learn the current one deeply.
The famous illustration is the stone soup story: rather than asking permission for a large change, you start a small visible improvement and let others join. Agency is bounded by reality, since you cannot change everything, but it insists you identify what is genuinely within your influence and act there rather than declaring everything fixed.