Despite the number of applications already in existence, apps with new features continue to emerge in the marketplace. It’s like a feature frenzy; consumers download new apps just to try out the features they can’t get anywhere else.
To meet this demand, software developers are forever trying to speed up the process of development, but that speed comes at a price. The initial release is often full of bugs, including security flaws.
Security flaws are serious
Although most consumers don’t notice security flaws until it’s too late, some flaws are so profound it’s impossible to look the other way. For example, telecom-equipment manufacturer Huawei has been under fierce scrutiny for flaws that compromise the security of their smartphone users.
At first, people were concerned that the security flaws were actually a backdoor set up by the Chinese government. The Trump administration even tried to ban Huawei products from the U.S. due to such concerns. The British government released a report that found the source of the problem to be shortcomings in the software development process, and not a backdoor.
While Huawei maintains they are working to fix the security issues, plenty of consumers continue to use the products that are running the compromised software without a second thought. People are more interested in features than security; a harsh reality we’re starting to see reflected in the development process.
Focusing too heavily on features produces buggy software
When faced with complex client requests, developers sometimes focus on features to the exclusion of testing for bugs and maintaining security. Applications with wonderful features are regularly delivered to the consumer with major flaws, and users don’t seem to mind. In fact, they’ve come to expect software to be buggy.
Accepting software bugs might not seem like a big deal, but it doesn’t have to be that way. Development teams could take their time building applications and testing them more thoroughly before release.
Why are applications being released with major bugs?
There are several reasons applications are released before the bugs have been fixed. The main reason is time constraints due to a poorly structured development process. Development teams don’t usually have time to fix everything before an application is released. Although, if they altered the way they managed projects, and included testing as an ongoing process from the beginning (rather than a separate task at the end), they’d have stable releases from the start.
It’s imperative for software developers to incorporate continuous testing from the start of the project, even before writing the first line of code. However, even with testing in place, another challenge that contributes to flaws is the phase of defining requirements. For instance, ContinuousTesting.com explains that “over 60 percent of defects come from ambiguous requirements during this phase [requirements engineering]. You can have a well-oiled testing machine but if your requirements are wrong then it inevitably becomes a mess.”
Some non-critical bugs end up becoming features
Not all bugs are bad or worth fixing. There’s a joke in the development world that goes, “that’s not a bug – it’s a feature!” The reality is, software developers are under intense pressure to resolve critical bugs, and some development teams will declare oversights and minor bugs as features to avoid having to fix them.
For example, here’s a list of ten glitches that became features in various video games. Included in the list is a Starsiege: Tribes glitch that creates rapid acceleration by tapping the jump button while running down a steep slope. Also included is a Final Fantasy Peninsula of Power glitch that remained a feature in subsequent releases.
Quality must be prioritized to create value
If you’re going to release valuable software, quality must be prioritized. There’s no reason a team should spend 30-50% of their time fixing bugs. The entire development process must be fully tested alongside development, not as an afterthought.
Prioritizing quality and implementing continuous testing will help you deliver high-quality software quickly, and without critical bugs.
Image Credits: Unsecure Software from wk1003mike /Shutterstock