How your company’s vision and values affect developer experience
Welcome to the fourth installment of the DevEx Series, where we talk about all things developer experience. To date, we’ve covered topics such as tooling and communication, and how they each contribute to DevEx. You can find all of our articles in the series here.
Today, I’m taking a closer look at how corporate vision and values impacts the developer experience. Great developer experience occurs when your developers can easily get in and maintain flow state. In this article, I will explain why vision is crucial to achieving this.
TLDR
- Vision and values are crucial for providing engineers with a greater purpose. They create constraints that define the type and quality of work that should be done.
- In order to have a better developer experience, the vision and values need to align with the way that developers work to optimize flow state.
How do vision and mission differ?
While it’s easy to get hung up on the difference between these two terms, it’s not a hugely important distinction. Some companies merge these together, whereas others use their vision to voice a longer-term strategy and the mission to set more immediate goals for the company. In this post, you’ll find me using these terms interchangeably.
Why bother writing your mission statement?
Simon Sinek puts the importance of a good vision brilliantly in the following quote:
“When we know WHY we do what we do, everything falls into place. When we don’t, we have to push things into place.”
Having a vision, or a “why,” is paramount. It helps your engineering teams pick the right solutions and brainstorm the right ideas with ease. A great vision can also inspire them to work tirelessly on those ideas.
Vision paves the way into flow state for engineers by providing an overarching goal, a quest for those that have joined you on your company’s journey. Vision is purpose. Vision and values are also the parameters that define the type of work that’s important, and the type that isn’t. Without these guidelines, a company can be pulled into too many different directions. This leaves teams coming up with random ideas or continuously changing directions in response to competitors.
Vision-driven companies are proactive; companies without vision are reactive.
In his excellent talk “The Puzzle of Motivation," Dan Pink demonstrated that more money is far less likely to motivate creative individuals than autonomy, mastery, and purpose. Purpose is one of the critical ingredients in hiring, retaining, and motivating great engineering talent.
A meaningful purpose is essential to help get engineers into flow state — which we talked about in our first article of the series. It is why the highest caliber engineers and scientists would rather get paid less money to work at NASA than get rich at some ACME corporation doing less meaningful work. A great vision is inspiring.
How do vision and values affect the developer experience?
There are two critical areas in particular where your vision and values will affect the developer experience: knowing what to do and attracting the right people.
1. Knowing what to do
In our first article, we mentioned that there are seven conditions for flow; the first and most important being “Knowing what to do.”
Without a vision, it is much harder for a company and its teams to know what to do. The vision and values of a company work as constraints, telling you what’s worth investing time in and what isn’t. It is also easier to come up with ideas that are relevant and impactful when the vision and values are clear.
Apple is an excellent example of a company with a meaningful vision statement that determines how they do things:
“We believe in the simple, not the complex. We believe we need to own and control the primary technologies behind the products that we make and participate only in markets where we can make a significant contribution.”
As a result, Apple rarely ever tries to copy everyone at everything. Instead, they look at where technology is heading, and they decide to make big bets on smaller segments where they have the best expertise. Having a clear vision makes it easier for them to make these decisions, and it also helps engineers come up with solutions that align perfectly with that vision.
This clarity ensures that engineers have a direction to follow when it comes to crafting new products or implementing new features. At Apple, engineers know that they need to make highly responsive and fast products with minimal but great features that are very nicely designed, so all their ideas will be driven by those values.
2. Attracting the right people (to build the right culture)
It’s worth noting that a great vision is not absolutely essential for a company to be successful. Companies that have fluffy and vague mission statements such as “contribute to society” or “making people achieve more” can still create the occasional great product, but it is rarer for them to make products or provide services that are genuinely inspiring or differentiating. It’s also far more challenging for them to consistently deliver quality at every turn.
But perhaps the worst part of not understanding your own vision and values and living up to them is that you won’t have a culture that attracts a specific type of people. This is important because those who share values are more likely to work better together. Their egos blend together and have better team dynamics, which in turn contributes to better quality software and an enhanced sense of purpose.
Have values that put a premium on the developer experience
A company can have a great vision and values, but have little room for developer experience. This usually happens when a company is run by people who don’t have a technical background and don’t understand how developers work.
Understanding how developers work and the importance that flow state has on the quality of their output is paramount to improving developer experience. That usually means implementing engineering principles that put a premium on self-service, work that speaks for itself, and asynchronous communication.
For example, one of Google’s company’s values is “Focus on the user, all else will follow.” This is reflected in how easy their external tools are to use, but they also live up to their values internally by creating products that the developers absolutely love. This is evidenced by the amount of people who pine for Google’s internal tools even months after leaving the company:
Critique, which is Google’s code review tool, has a staggering 97% developer satisfaction rate! I have had conversations with many ex-Google engineers, and the consensus was that no other employer made it so easy to find what they needed to self-service all their needs and quickly get into the flow. A big part of this is because the tools Google creates for developers are very good.
Google achieves this success by treating their employees as end users and customers, too. All engineers are able to self-serve by leveraging internal tools to get their job done with minimal need to talk to anyone. Google has always put significant care into creating an experience where employees are comfortable and able to focus on getting into the flow and delivering software. All those luxuries that employees have at the office, such as washing their clothes, free food, and pods to take naps, weren’t just pampering engineers; this was taking care of all their worries so they could focus on coding instead.
Many companies have tried to emulate Google by providing the same benefits with mixed success, but when you copy someone without knowing exactly why they did what they did, you are far less likely to achieve success. Google knew why they were doing it; they were following their values and vision, and it worked very well, whereas others may have just been senselessly burning money on benefits.
Values that optimize flow state should:
- Ensure that engineers treat each other as customers and provide self-service abstractions so they can reach their goals without having to understand all domains from every team fully.
- Ensure that processes are as frictionless as possible, complete in one step rather than twenty, and reduce the amount of time they take.
- Favor solutions that provide instant feedback loops for engineers to be able to see the result of their work in real-time.
- Reduce the amount of interruptions, and favor asynchronous communication and communication via work.
- Provide company benefits that help achieve flow state. This could include providing the right equipment and other perks that help to keep engineers focused on the work.
- Ensure that team unity and culture are treasured. Teams that have built trust perform better; if the values and vision are aligned, you are more likely to find employees who click together.
Measuring the quality of your vision and values
As you take a look at your own vision and values and the impact they may be having on your developer experience, consider the following:
- As a leader, have you written down your vision and values?
- Do you live by your vision and values?
- Are your vision and values compelling and inspiring? Would they make the world a better place? (Even if just by a tiny bit.)
- Do your engineers understand what your company stands for? Do they know what the vision and values are?
- Are the ideas and solutions your engineers generally come up with consistent with your vision and values? If not, go back to the above questions.
- Do your values create optimal conditions for flow state? Do they encourage team members to reduce the number of meetings and interruptions throughout the day, increase the quality and user experience of internal tooling, etc.
- Do your company benefits and perks make work conditions more conducive to flow state? Do they remove concerns about daily life so engineers don’t get distracted from work?
Conclusion
A well-defined vision serves as the compass that guides developers toward a collective purpose, steering them into a state of flow where creativity thrives. The alignment of values with the way developers work is not merely a conceptual exercise; it profoundly influences the tangible aspects of a company's operations, from decision-making processes to the attraction and retention of talent. Ultimately, companies that prioritize and integrate their vision and values into their organizational DNA are better equipped to inspire innovation, enhance team dynamics, and optimize the flow state crucial for sustained excellence in software development.
Summary
Great developer experience occurs when your developers can easily get in and maintain flow state.
Vision helps define purpose. Vision and values are also the constraints that define the type of work that’s important, and that isn’t
Vision and values can affect developer experience in the following two ways:
- Knowing what to do → What problems matter most
- Attracting the right talent (build culture) → People who care about your vision and values are likely to work better.
Have a vision and values that put a premium on developer experience
- Treat other colleagues as your end users (or customers)
- Remove friction on tooling and processes.
- Improve feedback loops so the result of work is closer in time and actions.
- Favor asynchronous communication and communication via work over meetings.
- Provide benefits that help flow state.
- Treasure teams that have good dynamics and fight for their unity.
About the Author
Fernando Villalba is our Developer Relations at OpsLevel; he has over a decade of miscellaneous IT experience. He started in IT support ("Have you tried turning it on and off?"), veered to become a SysAdmin ("Don't you dare turn it off") and later segued into DevOps type of roles ("Destroy and replace!"). He has been a consultant for various multi-billion dollar organizations helping them achieve their highest potential with their DevOps processes. Now he is passionate about platform engineering, developer portals, and DevEx, which he feels is where the future of software delivery shines brightest.