Software development is intricate and complex, with layers of components. Rushing through projects causes flaws and glitches that affect functionality and stability.
Developing software for various purposes is something many businesses are formed around. Businesses from different industries often collaborate to develop a new product that fills a need and, typically, benefits both parties. The problem lies with the process of development. Business leaders want to go fast, constraining developers to what they can get done in an allotted time. Or when the development is outsourced, often developers don’t have any context around what they are building. Software development is incredibly important to the continued advancements in technology, but it can’t do that if it doesn’t function properly.
Take a look at the Boeing 737 Max situation. A software glitch caused hundreds of people to lose their lives. And when the fix for the glitch was rolled out, it caused different problems. And then those fixes caused problems. It’s turned into a years-long process and only recently has the plane been cleared to fly in the US, EU, UK and Canada.
Software development is incredibly complex. It has layers upon layers of code. Design, functionality and stability all combine to create the user experience. A positive user experience is the end goal, meaning the app needs to function like it’s supposed to, be secure and be easy to navigate. If even one of those things isn’t up to par, the user experience suffers, leading to loss of customers.
For example, the CDC had almost an entire year to develop a program for COVID-19 vaccine distribution. We’ve all heard how the government seemed ill-prepared for the rollout, but the reality is the software designed to assist with it didn’t function properly. The Vaccine Administration Management System has reportedly been notorious for randomly canceling appointments, unreliable registration and locking staff out of their record-keeping dashboards. There are also patient-side problems which have nothing to do with being tech savvy, but are related to browser compatibility and ease of use.
The CDC spent $44 million on this software and the developers at Deloitte had almost a full year to develop the software needed to help the process along the way. The CDC knows there are flaws and is working on a fix, but the system is so poorly designed that some states have been driven to develop their own version, which decentralizes information and makes it harder to track.
Let’s think about the consequences of these two issues. Boeing saw hundreds of lives lost due to their rush to get this software onto its planes with inadequate testing. Deloitte did what they were asked, but their product entered the world flawed and glitchy, stalling the rollout of a vaccine that will likely save hundreds of thousands of lives. Both have fatal consequences, one more immediate than the other. All because the software wasn’t properly designed.
Developers can’t design properly if context of use and use case importance is not shared with them. Software development is incredibly complex. As mentioned above, it has layers upon layers upon layers. If you’re not a developer or have never seen the code behind a product, it is difficult to explain the level of complexity involved. Not only does the developer need to know what they are building, but how users will navigate the system. Knowing how users will interact with what they are building will help developers create the best experience possible and avoid bugs on the critical path – bugs, mind you, with highly complex systems are an inevitability.
That said, developers are often constrained by things like time, budget and other challenges. Business leaders want to rush through the development process, but that ends up creating products like the ones mentioned above. Flawed. Glitchy. Unstable. Unpredictable. Good software developers hate putting out products like this, but are often forced into doing so, which leads to burnout as we’ve discussed in the past.
The next time you ask your dev team how long it will take to add a new product or feature to your service list, don’t ask them to do it faster, instead assume they are optimists. So cushion their estimate with more time to make sure its done right. The more you hammer employees to make a project go faster, the more you are willing to sacrifice from that project just to get it out there. Ask yourself this question: Is it better for business to get the product out there now, even with potential problems along the critical path, or is it better for business to put out the product as intended? The answer is usually the latter. With the correct product path, you increase customer interaction, customer base and customer retention. All of those things lead to increased profits and an ability to continue to grow your business.