6 key issues influencing software delivery performance
11 September 2018
The cloud improves software delivery performance. If you leverage all the essential characteristics of cloud computing you are 23 times more likely to deliver high performing software. But if you do it wrong, you will not be able to realize performance gains at all!
The Accelerate State of DevOps Report of the DevOps Research and Assessment (DORA) is the largest and the longest running research of its kind. It represents the results of five years of work during which over 30.000 technical professionals were surveyed globally. This year in the “Accelerate: State of DevOps 2018: Strategies for a New Economy”, created in collaboration with Google Cloud, researchers examined the impact that cloud adoption, use of open source software, organizational practices and culture have on software delivery performance.
“This year’s stunning finding regarding data is the compelling case of doing cloud right. Adopting essential cloud characteristics drives high performance and differentiates the highest performers from those who may say they are in the cloud. But are unable to realize performance gains because their technology and processes aren’t executed,” says Dr. Nicole Forsgren, co-founder and CEO of DORA.
Let’s have a look at the key findings of this report:
1. Software delivery and availability unlock competitive advantages, which include increased profitability, productivity, market share, customer satisfaction, and the ability to achieve organization goals.
- There is a fundamental industry change in how software and technology are perceived: what we referred to as IT performance before is now referred to as software delivery performance to differentiate this work from IT helpdesk and other support functions. Those that develop and deliver software quickly are better able to experiment with ways to increase customer adoption and satisfaction, pivot when necessary, as well as keep up with compliance and regulatory demands.
- Any team in any industry has the ability to achieve a high degree of software delivery performance. The highest performers are achieving excellence in both throughput and stability without any tradeoffs.
- The proportion of high performers (see graphics) has grown year over year, showing that the industry is still improving. Software delivery performance is a key value driver and differentiator for teams and organizations in any industry because it enables organizations to leverage software to deliver improved outcomes. Measured by: productivity, profitability, market share as well as non-commercial measures such as effectiveness, efficiency and customer satisfaction.
- High performers do significantly less manual work across all sectors by automating processes, spend more time doing new work and less time remediating security issues. They build quality in, so they spend less time fixing problems downstream, freeing up more time to do value-add work.
2. The chosen method of implementing cloud infrastructure matters. The cloud improves software delivery performance but teams that leverage all of the essential characteristics of cloud computing are 23 times more likely to be high performers.
- Many companies using cloud computing haven’t actually adopted the essential patterns that matter: on-demand self-service, broad network access, resource pooling, rapid elasticity or measured service.
- Another way to provide a better service to application developers is through implementing a platform as a service (PaaS) „in which the consumer does not manage or control the underlying cloud infrastructure including network, servers, operating systems, or storage, but has control over the deployed application and possibly configuration settings for the application-hosting environment”. Examples of a PaaS include: Heroic, RedHat, OpenShift, Azure App Service, Google App Engine, AWS Elastic Beanstalk and Cloud Foundry.
Read more: „Serverless. It really saves resources”.
3. Open source software improves performance. Open source software is 1.75 times more likely to be extensively used by the highest performers, who are also 1.5 times more likely to expand open source usage in the future.
4. Outsourcing by function is rarely adopted by elite performers and hurts performance.
While outsourcing can save money and provide a flexible labor pool, low-performing teams are almost 4 times as likely to outsource whole functions such as testing or operations than their highest-performing counterparts. Why? Outsourcing tends to lead to batching work – and thus long lead times – because the transaction cost of taking work from development to QA and operations is so high when these capabilities come from outsourced groups. Important and critical features must wait for low-value work because they are all grouped together into a single release. The cost of delaying these high-value features may be significant. And in many cases, this cost is likely to exceed the amount saved through outsourcing.
However, DORA’s findings do not necessarily extend to other working models involving multiple entities. For example, if you use partners or vendors for the development of whole systems (you outsource the entire processes from design to operation). In this case – if technical dependencies between processes are managed properly – outsourcing is the right way to go.
“Our experience is also that it is preferable to outsource the full development process to one partner, from development to testing and maintenance in order to decrease the risk of building silos, but also increase the ownership of the full application rather than just the part of the development process the outsourcing partner had been given responsibility over,” says Andreas Södermark, MD Euvic Sweden.
5. Key technical practices drive high performance. These include monitoring and observability, continuous testing, database change management and integrating security earlier in the software development process.
6. Industry doesn’t matter when it comes to achieving high performance for software delivery. What matters more is organizational culture, however intangible and difficult to measure.
Technical and management practices shape culture and that culture, in turn, helps to improve performance outcomes. Such cultural aspects as cooperation, surfacing problems, breaking down silos, postmortems and continually experimenting to drive improvement are important to DevOps teams. Besides, team dynamics are much more important to team effectiveness than a particular set of skills among team members. With good team dynamics, the work team members deliver brings benefits at the technology and organizational level.
In Euvic we also believe that culture makes the difference in quality of services provided to our customers. At the end of the day, it’s always the people who make this difference. That is why we are vulnerable and embrace uncommon levels of humility, selflessness and transparency. We are aware that psychological safety is the difference between a star-performing- team and low-performing team and put a lot of effort into understanding, respecting and loving each other to create an environment where people grow and thrive. We believe in OKR, and thus set objectives and track key results for all projects.back