Eager to drive digital transformation, many companies today jump into software development without proper preparation, resulting in poor quality products and wasted time and money. They can increase software development success in three key steps, says Aaron Bruce, director of engineering at Synapse Studios.
Many companies today are banking on successful software development to gain momentum, especially for companies embarking on broad digital transformation journeys. But too often, they go into building software without proof that they are likely to succeed. The result is a shoddy product that does more harm than good.
Unsuccessful software development is more than annoying – it’s a massive drain on the industry. Software development costs associated with unsuccessful development projects were estimated at $260 billion, 46% more than in 2018. Similarly, the failure rate is around 19%. Executives know they need to reduce software development costs, but struggle to understand how.
What is behind this disconnection? The traditional answer is that software quality and development speed are mutually exclusive, an idea summed up by the adage “Fast, cheap, good – pick two”.
In my experience, however, that’s not the real culprit. It is a failure to carefully consider ideas before development. Lack of verification of proposed features leads to massive swelling of software development scope with dubious ideas that should have been discarded earlier.
Navigate DevOps Challenges
Much of the problem can be attributed to below average DevOps adoption. Many organizations have the wrong idea of what DevOps is and how it should work, adopting the practice in name only. Leaders can simply rebrand old operations teams as DevOps teams or create new “DevOps” teams and make them responsible for infrastructure and deployment automation.
However, genuine (and valuable) DevOps resolves organizational silos and misaligned incentives around deploying software in production. It is a practical philosophy and a set of supporting technical and management practices. It also aims to eliminate silos and inefficient handoffs between development and operations teams. The philosophy stems from lean management theory, focusing on end-to-end workflow, waste minimization and continuous improvement.
When companies understand and implement the right DevOps function, they can quickly focus their energy on what matters most: how do you add value to customers’ lives? What are the things we do that add less value than we thought? How do we develop a system to learn what our customers need in the most economical way possible so that we don’t waste time on things that won’t work?
3 steps to transform your software development approach
Start with these steps to improve DevOps practices, reduce costs, and increase software development success:
1. Build the right thing first
The first step is simple but often overlooked: make sure you’re building the right software. When companies skip this step, they defeat DevOps from the start. In general, software is the most expensive way to solve a given problem. If you build custom software without being very sure that it will solve the problem in question, you will probably be part of the failure rate.
The software must solve the real problem for the business or the customer, or it doesn’t justify the cost. If you develop a culture of creating products that don’t generate value, it doesn’t matter if the software is high quality or technically sound – it still won’t benefit anyone. Instead, develop a product culture to build validated ideas before you’re ready and willing to invest in building value-generating software. Marty Cagan’s book, “Inspired: How to Create Tech Products Customers Love,” is a great product guide. It covers how to build strong teams, determine the right products, develop effective processes, and create the culture you need to drive successful products.
2. Assess and improve your managerial culture
The next step is to ensure that your culture allows for autonomy and trust between development teams and management. Suppose developers have to go through the bureaucratic approval process typical of enterprise software development every time they want to fix something. In this case, they will never reach the level of continuous improvement that is at the heart of the DevOps function.
Also, developers can’t proficiently build things with heavy cognitive load or constant context switching. As businesses prioritize digital transformation to stay competitive, they are demanding more of scarce and overused resources. Piling on more work than developers can effectively handle interrupts productivity, causes missed deadlines, and pushes developers ever closer to burnout.
We need to give developers the space to think about solutions and innovate without interruption. Foster an engineering-focused culture by optimizing internal processes to reduce context switching and fostering an environment in which innovation thrives. Look for efficiency and noise reduction in your communication. And, where possible, use asynchronous communication to prevent individual project contributors from being tied to schedules full of planned disruptions. Instead, allow for deep focus and effective time management. Also, try to limit individuals’ project commitments to the minimum possible, usually only one project at a time.
You can also promote a culture of continuous improvement and innovation by focusing on employee development. Development opportunities keep your developers informed and improve recruitment and retention processes. An August 2021 survey by Amdocs of 1,000 American workers showed that about two-thirds of employees would leave their jobs if they were denied such learning opportunities. And retention increases software success rates because companies maintain long-term institutional knowledge of projects and customers.
3.Take the time to go fast
It may seem counter-intuitive, but if you want to develop great software fast, you have to start slow. It’s like the saying of the tree chopping contest – the winner spends most of their time sharpening their axe. You need to create an error-proof system even if the initial cost is high. Building it will take a lot of time and money, and will require ongoing maintenance and alignment with best practices and tools.
The metrics companies need to track to ensure their systems stay strong enough are the DORA metrics: change failure rate, change turnaround time, service restoration time, and deployment frequency. Essentially, you need to see how many changes you have made to systems versus how many changes have failed. If you determine that many of your edits are not successful, you want to do something about it.
Determine if your organization 1) doesn’t know it should track this data, 2) doesn’t know how to track it, or 3) does nothing about this information. In these cases, software management and delivery will tend to deteriorate over time, as costs increase with each change-fail-change-fail cycle that is not informed by data-based insights. data.
It is necessary to maintain the quality of the system by tracking and responding to data. That’s what DevOps is for: automating testing and deployment, deploying frequently, and constantly observing performance.
Learn more: DevOps Roadmap: A Complete 7-Step Guide
There is no reason to delay setting up your DevOps ducks immediately. It’s just a matter of commitment and vision. With trust in people, good ideas, an innovative culture and error-proof systems, you will enable your teams to build successful projects, reduce software development costs and reap the benefits for years to come.
Has your organization ever deployed any of these steps for more innovative software development? Let us know all about LinkedIn, Twitter, Where Facebook. We are always listening!