Accelerate Developer Productivity
I frequently come across SAP developers that are eager to innovate but face technology hurdles that limit them. This is particularly frustrating since technology should serve as an engine for growth. This is not just my opinion; it has been proven by all the world’s largest companies. If you are not innovating, you risk being passed up by companies that are. So the question arises, how can organizations accelerate developer productivity in an environment where waiting months for a shared development system is the norm?
To answer this, first, we have to thoroughly understand the motivation.
Can Technology Drive Business Value?
Top-performing companies know that internal IT is as critical as customer-facing technology. However, metrics for internal IT are not as straightforward, leading most companies to only see it as a cost center. Too often, the inability to correctly measure ROI leads to missed opportunities.
IT becomes a value driver and innovation engine when the ROI is measured correctly and a framework to improve productivity is in place. Organizations that do not leverage IT as a value driver risk being surpassed by those that do. This blog explores how improving developer productivity is the catalyst for building and scaling high-performing technology and organizations.
Measuring the Unmeasurable
How do you measure developer productivity? It is not as easy as it may seem. If developers are evaluated against the wrong metrics, they will learn to game the system.
For example, if you measure lines of code, it’s easy to write overly complex code for simple things. This is not the right approach, as it will quickly lead to technical debt.
So then you might think, let’s measure productivity based on the number of transports. That can lead to increased risk as developers may rush to create a high number of transports, increasing the likelihood of a failure in production. Not to mention, transport management also poses risks.
What if you instead focus on the number of features completed. This is not fair since not all features are equal; some are more important than others and vary in implementation difficulty.
An observant reader may note that the metrics above are sacrificing speed or stability. And, of course, we want it all!
No Trade-offs Between Speed and Stability
Instead of measuring productivity via isolated metrics, consider adopting the framework based on Accelerate.
- Delivery lead time – the time it takes for a feature to make it from the first line of code to production
- Deployment frequency – the number of deploys to production
- Time to restore service – the time it takes to correct an issue in production
- Change rate fail – the percentage of deploys that cause production issues
When these metrics are optimized collectively, you notice that there isn’t a sacrifice between speed and stability. Instead, you set the foundation for becoming a high-performing organization. Elite IT teams achieve the following results:
- Delivery lead time – less than 1 day
- Deployment frequency – on-demand
- Time to restore service – less than 1 hour
- Change rate fail – 0-15%
Culture Guides Everything
Metrics, frameworks, and technology are valueless if you don’t also establish a healthy organizational culture.
The right metrics are used for positive change
Metrics are used as tools for control and culpability
Culture and process go hand in hand; they can be mutually reinforcing or mutually destructive.
Consider the shared DEV and QAS systems we’ve grown used to in the SAP world. These shared systems are intrinsically risky. As developers, we have the potential to break them, which would negatively impact everyone else on the team. So to mitigate the risk, companies put in processes and procedures that adversely affect productivity. With containerized SAP systems, you can eliminate the risk of adversely affecting others, allowing for a culture where you are free to try anything in your container.
The Modern Approach to SAP Development
You’ve likely heard it, “implement DevOps!”
DevOps is a broad term that is often overused or misused. Instead, you should focus on implementing CI/CD pipelines. Leveraging several established best practices that include:
- Isolated development (ideally using containerized SAP systems)
- Intuitive version control (GitHub, GitLab, etc.)
- Test automation (ABAP Unit, abaplint)
- Test data management (refresh your containerized SAP systems)
- Git-based workflows (abapGit, GitHub, etc.)
Implementing these best practices puts you in a promising position to increase productivity. Coupled with a healthy culture, your IT team can provide a competitive advantage and pass up competitors that do not value the performance of software delivery teams.
Accelerate: The Science of Lean Software and DevOps: Building and Scaling High Performing Technology Organizations by Nicole Forsgren Ph.D., Jez Humble, Gene Kim
Photo by Carl Heyerdahl on Unsplash