Giving your engineers a strong sense of agency can help build trust, improve code quality and velocity, and hopefully keep your engineers from leaving.
Engineering leaders are under a lot of pressure right now to do more with less. Maybe your technical debt is piling up and delivery is slowing down. You might wonder if your team is struggling with remote work.
In these cases, it’s always tempting to jump straight into solutions. You could set stricter expectations for when engineers will be at their keyboards and have managers keep track of this. For a while, you might see the activity inside of your engineering function increase dramatically. But is this really productivity?
Over years of research as a social scientist studying software developer teams, I’ve heard engineering leaders describe this exact scenario again and again. When we want to drive big changes, it can be tempting to grab for the things we feel the most control over, like enforcing sweeping mandates about how people work.
Even if activity remains high, you may start to realize that people aren’t working on the right things. Perhaps you start to wonder why you’re hearing less from the tech leads and senior engineers in meetings. And soon enough you’ve got a disengaged engineering organization that’s not really telling you what they’re thinking. Trust is being eroded, code quality may suffer, and, ultimately, engineers may even leave your organization.
Why does this happen? You might be missing something truly important inside your engineering organization: the importance of Developer Agency.
Developer Agency is a term for an important sociocognitive factor in our environments. It is a lever that changes how we think about our workplaces and teams. Agency refers to whether or not developers feel like they are actively involved in how their success is defined, have power to take action over their environment and circumstances, and are able to voice their perspective and disagreements. This isn’t just a cultural nice to have, it’s actually a key part of maintaining a problem-solving culture inside of your engineering organization.
More Developer Agency means more productive teams
At Pluralsight Flow’s Developer Success Lab, we study how the most innovative software teams work, learn, and thrive.
We recently asked more than 1,200 developers a series of questions about how teams were doing on four key sociocognitive factors to measure what we call Developer Thriving.
One of those key factors was agency. Developers were asked if they feel comfortable speaking up when they disagree with something, or have a voice when it comes to defining what good looks like. Developer Agency was a statistically significant predictor of how productive those teams were.
We also heard about the vital importance of Developer Agency in qualitative interviews and focus groups. One developer told us, “An environment where you know [speaking up is] encouraged makes you want to chime in if you’re anticipating something, or think that maybe another direction [should be explored].” Many engineers shared that knowing they have power over how they work gave them the flexibility to unlock better focus and problem-solving strategies.
And agency doesn’t just benefit individual problem-solving. When developers know there will be structured avenues for sharing their opinion, they stay motivated not only in the highly complex work of writing code, but also are able to find ways to share insights upward with managers.
This echoes what we have learned across decades of research on how human beings learn and collaborate. Agency is important to everyone, not just developers. In education, whether students feel agency in their classrooms or in their skill development has been predictive of long-term motivation and wellbeing.
Developer Agency is also a way to boost collaborative learning on a team. I once interviewed a junior developer about their most important “learning moments” in software engineering. He talked about a time when he watched a senior tech lead disagree with their manager. Rather than shutting down the conversation, the manager made time in her meeting agenda to hear the senior tech lead’s concerns and discuss them in front of the team.
The junior developer told me that this taught him more than anything “planned” could have. “I learned that ideas could be important, no matter where they came from,” he said. An environment that encourages high agency on teams is also an environment that will be open to new, good experiences we couldn’t have planned for. This is exactly where creativity and innovation starts.
Increasing Developer Agency
At the Developer Success Lab, we think that Developer Agency is a strong signal for important positive cycles around creativity and innovation. It’s also a particularly important thing for leaders to care about because disruptions in agency can be a serious red flag.
In a low agency environment, developers may fall silent. Engineering leaders have told us that conversations are really important for building trust and that providing information to leaders about what’s going on within the engineering function is critical.
Developers are our most accurate source of information about what is really happening with engineering work. A culture of high agency creates important protection and feedback loops for software teams. Slippage between what we are really doing and what we say we are doing happens to all people, but a culture of agency will mean we catch slippage sooner rather than later, and a small slippage turns into a learning cycle, instead of a big failure.
So how can teams improve their Developer Agency? In our research, developers shared examples of times their voices and initiatives were rewarded, such as engineering organizations giving time and credit for “code cleanup” competitions that were developer-led, and designated meeting space for their voices. Internal events that allow people the freedom to safely experiment with new skills and identities may also increase feelings of agency, such as internal team hackathons and rotational projects.
We’ve also learned that agency can be key to effective manager and direct report relationships. While every developer is different, allowing space for direct reports to share their way of thinking, perspective on problems, and unique needs is a critical part of successful management.
Developers also shared things that lower their overall sense of agency within a team. For example, feeling constrained by workplace policies that didn’t account for how they worked. Frequent disruptions and changes of plans that come from outside of software teams also exacted a significant penalty on developers’ sense of agency.
When developers put significant time and effort into solving a particular problem, and then feel that effort has no impact on the product or business, we found that this also dampened developers’ motivation to continue solving problems in code.
There are many places to start with this important concept, but one big place for leaders to start is with signaling that they understand and care about the voices of their developers.
Developer Agency might be the difference between a disengaged engineering culture that mostly only gives you status updates, versus having a culture of real, in-depth conversations with your teams about what they’re experiencing.