Software development is a creative pursuit. It takes intense focus as well as time away from a problem to for subconscious work. Both of these cognitive modes are debilitated by stress and anxiety.
A major source of anxiety is uncertainty. Uncertainty is almost always deeply personal, and may be about many things:
- Are we earning enough to live comfortably?
- Are we compensated fairly for our time, effort and skills?
- Are our skills improving in a worth-while direction at a reasonable rate?
- Are we learning what we want to learn?
- Am we at risk of stereotype threat?
- Is our work of a good quality?
- How do others perceive us? (especially those we respect or in positions of authority.)
- Is our work environment comfortable and condusive to our work style?
- Does our work matter?
- Do people expect us to represent other people like us?
- And many, many more.
We may map these reasons to dan pink's three drivers for motivation:
Anxiety saps our motivation by discouraging or obscuring mastery, making us subservient to our fears, and keeps us focused inward instead of on the effect of the work we're doing. When we are anxious our conscious and sub-concious attention is drained, preventing us from executing.
In a well-adjusted team, we must make an effort to:
- Understand the anxieties we face individually and as a group.
- Take concrete steps to address and alleviate anxieties.
- Advocate for and make systemic changes which mitigate these anxieties.
Our responses to how anxiety manifests are often personal. There's no "one size fits all" approach to ensure people maintain a state of productive flow unhindered by uncertainty and anxiety; however there are some things that have significant impact:
Anxieties rooted in finances are sticky. People feel uncomfortable discussing money and companies prefer to keep personnel costs low. This is especially true in software companies which have most of their budget devoted to salaries and benefits.
Some companies are taking radical steps, such as using a salary formula and publicly publishing salary data. I'm not 100% sold on this level of transparency, but it is a powerful way to address perceived fairness. Here are a few other steps to reduce anxiety and maintain high levels of creativity, attention, and motivation:
- Pay people well and fairly, regardless of role. Pay hierarchies cause people to resent others in roles at different pay levels, especially when there's not many opportunities to understand and appreciate the work others are doing.
- Don't trade "culture" for compensation. Office toys and work-cations are fun, but it doesn't put food on the table; and they can cause unintended division. Perks can't take priority over respect.
- Don't over-sell equity. Future income doesn't alleviate current financial pressure. A high-value on equity may encourage distrust, since the founders, executives or board members "selling" the equity tend to over-value it. Plus, startup equity disproportionaly benefits owners over employees.
Many software professionals are driven by our ability to create. We want to see our abilities deepen and learn complementary skills. At the same time, we fear our work is sub-par or we don't belong.
While we can't guarantee the language or framework we're using will continue to be in fashion, we can:
- Provide a set of expectations about what skills are valued in a given role. By explicitely defining what makes a "Senior" engineer vs. a "Junior" one, we create a mirror for people to look into and self-evaluate that the skills they have are valuable.
- Focus on fundamentals and core skills instead of frameworks and technologies. New techniques, libraries, and concepts come and go in the software world. By encouraging people to level up their core skills we create current and future safety.
- Support new ideas and techniques. Discouraging teammates from trying out a new technology or user research technique is an easy way to cause self-doubt and anxiety.
- Support learning. Encourage reading at work. Provide a budget for self-improvement that doesn't have to be spent on conferences. Support people in the things and ways they want to learn, not just what a company deems worthwhile.
Layoffs and re-organizations are almost always a source of anxiety. Buffer has a very interesting approach of publicizing their financial data every month. While, again, this may not work for every business; providing reliable information that builds trust among the people in the business is crucial. Some anxiety inducing questions are:
- Are our sales healthy?
- Is there a connection between the work we're doing and customer satisfaction/financial stability?
- What are the risks people see and how are we avoiding them?
- Are there up-coming organizational changes that may affect how I do my work?
How each company addresses these kinds of questions is tough. No matter how you choose to do so, there's a few tactics that are effective:
- Terseness is a virtue. Long meandering reports are more interesting for the person doing the reporting than the people effected by it.
- Make it consumable asyncronously. Being able to read and review information at ones own convenience allows people to decide when and what to explore.
- Consistency is huge. Consistency in both delivery and type of information presented helps people notice trends.
- Don't mandate it. Not everyone wants all the information or even the same information. Distributing knowledge via a mandatory meeting can cast people who are not anxious about the information as disengaged.
Providing financial stability, direction and time for improving skills, and knowledge about the current and likely future state of a company all go a long way in freeing up a teams mental capacity.
I'd love to hear your thoughts on how anxiety and uncertainty affects software teams! Why not drop me a line?