For most organizations, software development capacity puts a strain on innovation. But that’s not how it has to be. Are you truly enabling your development teams?
Over the past few decades, developers have been confronted with an exponential availability of technologies and tools, with most recently the introduction of widely available AI assistance. Which suggests unlimited possibilities for efficiency and productivity. What’s often forgotten or overlooked, are the skills and abilities needed to navigate a way through all of it. The day-to-day of a developer consist of constant searching, filtering, and finding information that’s relevant to do their work properly.
A recent survey [Survey reveals AI’s impact on the developer experience] by GitHub gives insight in how developers spend their time. Which amounts to a variety of tasks including writing code, fixing security issues, skills development, and meetings. As you can imagine, this impacts their productivity tremendously, and not always in a positive manner. A lack of collaboration and communication, many meetings, and time spent waiting for builds and tests to complete, can all disrupt the flow state of developers, messing with the development productivity.
This same survey indicates that wait times and current performance metrics used to evaluate developer performance, block developers from what they really want to do: Making an impact an adding value.
That raises the question: how should we measure productivity today? Aren’t there plenty of metrics and tools available already? The simple answer is yes, the real answer is no. Why? Because we often measure with the wrong metrics or with an incomplete set of metrics.
Research by Nicole Forsgren points out that there is more to developer productivity than the number of commits, or the lines of code produced. In her paper, The SPACE of Developer Productivity, she emphasizes the importance of 5 dimensions:
- Satisfaction and Well-being
- Efficiency and Flow
In our vision on building Engineering Cultures  we’ve identified pillars that correspond with these dimensions. Our main takeaway from years of experience in working with a variety of organizations: high-performance can only be achieved when ‘enablement’ is a top concern. The goal for any organization should be to remove most, if not all, friction, and unnecessary waste, to deliver more value to your customers. Removing blocking factors that disturb developers from entering their flow state, while giving them autonomy to do the right thing, is what shifts this conversation from developer productivity to Developer Experience (DevEx).
What is Developer Experience and how is it impacted?
Developer Experience examines how people, processes, and tools affect developers’ abilities to work efficiently. As GitHub explains on their blog: it’s a formula of productivity, impact, and satisfaction, in which collaboration is considered the multiplier across the entire DevEx.
Figure 1: Developer Experience (source: https://github.blog/2023-06-13-survey-reveals-ais-impact-on-the-developer-experience/)
Developer productivity is mostly impacted by an interruption of flow. This can be due to waiting time, disturbance, and having to do research or find things to complete the task at hand. This can be in the form of meetings, distraction by phone or app, but also questions from teammates, finding information about a specific piece of code, or setting up your workstation.
For developer impact, we should consider the time it takes to move an idea to production. How frictionless is this effort?
In practice, it boils down to questions like:
- What obstacles might be in the way?
- Do we need to refactor code because of bugs?
- Do we need to wait for approval from the security team?
Last but not least, to which degree is the developer satisfied with the work environment, the tools, and the workflow that he or she encounters daily?
Optimizing the DevEx is about creating a collaborative environment where developers can be their most productive, impactful, and satisfied.
Getting practical: some solutions
As we elaborate on in our Engineering Culture eBook, it’s all about transforming your bottlenecks one by one. But we do have some quick wins for you in terms of benefitting your development team. We’re a GitHub first organization, and for good reasons. The GitHub platform offers several tools and features that can help improve your Developer Experience. We’ll introduce some of the fairly new features in GitHub below.
Developers often face challenges in setting up and maintaining consistent development environments for themselves or the team. GitHub Codespaces offers cloud-hosted development environments that can be created in code and be spun up and accessed directly from within GitHub. This boosts productivity and eliminates a lot of waste for the entire team.
GitHub Advanced Security
Making impact is important. Developers wish to move code as quickly as possible from development to production. With all security risks and supply chain attacks involved, this can be challenging. We believe in secure and compliant by default. Because when it’s not part of the daily development workflow, it needs to be done after the fact. Which makes it more expensive and prone to mistakes. Nobody wants that.
By using GitHub Advanced Security, developers can integrate security in their workflow, shifting security left. Security risks are found early in the process and can be addressed appropriately, enabling a more lean and mean flow and move to production.
The latest addition to the GitHub suite: a Generative AI (GenAI) that is a true co-pilot for developers. Developers are still in the driver’s seat but can combine their knowledge and skills with the enabling abilities of an AI, increasing their productivity. For example, by making suggestions within the IDE, removing the need to Google or search Stack Overflow for answers. Copilot can also explain, interpret, and translate code, write tests or suggest changes. Literally enabling a developer. This has a huge impact on all 3 pillars of the DevEx.
Together with the rest of the GitHub tool suite, like automation with GitHub Actions, work and project management, and of course the collaborative source control, GitHub offers a set of tools that helps you improve the Developer Experience for your organization. Which can form a foundation for building your own Engineering Culture.
If you’ve made it to the end of this article, you’re probably curious to find out more, maybe have an open discussion with others, ask questions about this topic, or you’re already well on your way in putting enablement of your development teams on the top of your priority list.
Either way, I welcome you to join one of our breakfast sessions on this topic. During these sessions, we will explore some challenges or bottlenecks, best practices, and experiences regarding secure development productivity. These sessions will be followed by some feature-specific webinars in case you’re looking for a more technical side of things. Check our eventpage for upcoming sessions.