Software stability predictions for 2019

Software stability predictions for 2019

Did you know that eight out of ten users will retry your software application once or twice at most if it fails to work the first time?

That’s a terrifying fact for software companies. It means business success is now predicated on delivering positive experiences each and every time a user interacts with the application. Consumers are not patient or loyal about even a single bad user experience, which are often caused by one glaring factor: unstable software.

In fact, software stability is the single best indicator of application health, the user experience, and, by extension, business success. Because stability measures successful application sessions (app interactions that go as expected), it provides the best method to prioritize and fix errors that harm the user experience.

Not surprisingly, stability is the essential software metric that businesses need to pay attention to in 2019. And yet, many software organizations still lack the strategy, monitoring, and tooling necessary to consistently deliver a reliable user experience.

If your business is focused on shipping quality software, now is the time to recognize the broad impact of stability and plan accordingly. Here are my predictions for stability and its impact on engineering teams and production monitoring in the upcoming year.

1. Stability will be adopted by engineering teams as a KPI.

Software businesses are measured on key metrics like customer acquisition, retention, and revenue.

At a time when 37 percent of consumers think less of a brand when their app crashes or has errors, companies do not have the luxury of separating business metrics from software stability.

37% of consumers think less of a brand when their app crashes or has errors

The best way to ensure company goals are met is to align the KPIs of the engineering team with the overall business metrics. The focus must always be on software stability. On average, software developers spend 32 hours each month reproducing and fixing errors to ensure stability. Is that time reflected in their individual and team KPIs? Is it the right amount of time?

By making stability part of the goals measured by your engineering team, you are taking the right step towards ensuring overall business success and positive end-user experiences.

2. QA is evolving. Quality is here to stay.

Quality is more important than ever in today’s highly competitive software industry. With unlimited choice, users look for alternatives when applications do not meet their standards for stability. In fact, 44 percent of users immediately delete a disappointing app and go in search of a new app without delay.

44% of users immediately delete a disappointing app

In order to keep users engaged, quality must be high. Whereas large teams used to manually test new features and arbitrarily assign bug priorities, QA teams today (and software teams more broadly) are adopting more efficient tools that standardize and automate testing to quickly find the bugs that impact users the most. Not only are these smarter testing methods faster and more accurate, but they can also be implemented earlier in the development cycle. For example, static analysis practices (such as linting tools) can capture basic syntax and structural errors in code and thereby stop errors early in the coding process.

The new QA tools are the direct result of needing to solve for stability and will continue to become more standardized in 2019 and beyond.

3. Phased rollouts and canary releases are key for speed without sacrificing stability.

Software ecosystems completely changed when companies evolved from waterfall to agile development practices and adopted faster release cycles. Today, we’re seeing phased rollouts and canary release practices being adopted more and more. For teams looking to optimize their application’s stability while still releasing new features quickly, phased rollouts are critical for success. Rather than incur the potential risks associated with large changes rolled out to the entire customer base at one time, new features can be released quickly to subsets of users.

One type of phased rollout is a canary release, which allows a team to deploy a new feature to a small percentage of the user base (maybe 1%) to see if the code introduces new bugs in production. This way, new features can be A/B tested faster without worrying about deploying a bad bug to all users. Canary releases specifically aim at avoiding stability issues and ruining the user experience.

22% of software launches or upgrades are delayed due to defects

At a time when companies report that 22 percent of their software launches or upgrades are delayed due to defects, phased rollouts and canary releases allow speed and stability to coexist.

4. Stable production code requires strong feedback loops.

While stability is important in every step of the software development lifecycle, it’s crucial in the production stage. Once your product is in the hands of end users, bugs and stability issues should be addressed immediately, which means software teams must have strong feedback loops that help identify those bugs.

Unfortunately, most methods have serious shortcomings. For example, logging creates a mountain of data for engineers to sift through to discover issues without any proactive means to know that users are experiencing bugs. Application Performance Management (APM) tools help detect performance issues but aren’t the strongest indicator for poor user experiences, and teams don’t often feel the ROI justifies the expense. Bug tracking tools are a step in the right direction but still require a tremendous amount of triage work to understand just how harmful a bug really is.

APM isn't the strongest indicator for poor user experiences

On the other hand, application stability monitoring adds a layer of logic to traditional error and bug tracking tools. By reporting directly on software stability, teams have an understanding of when debugging is a real priority.

  • Stabilize: Targets can be set for release stability so everyone tracks against the same goal.
  • Prioritize: Errors with the greatest impact on application stability are prioritized for fixing.
  • Fix: Bugs are resolved more quickly because engineers immediately see the crashing line of code and the user actions that led up to the error.

The best way to keep your software stable in 2019 is to adopt the only methodology that focuses on monitoring your stability and makes bug fixing a proactive exercise.

Make 2019 the year of stability

Stability trends are happening throughout the software development lifecycle. Every team is thinking about stability in different ways at various stages, but each approach ultimately leads to the same conclusion: you must have a stability strategy in 2019 if you want to solve for software quality and continue to delight end users. Aligning your business around stability is a surefire way to kick off the new year right.

Great article. Stability, feedback and proactive response help with perceived quality. Wish bug reporting will grow beyond crash reports.

回复
Niharika Malakar

Director - Business Development with 15+ yrs of Experience in Software Sales & Strategy Building.

6 年

Doesn't seem to be a first article the way you have touched the granular parts of software stability. Nicely drafted!? I also feel alongside scalability is another important factor that should be factored in.

回复

要查看或添加评论,请登录

James Smith的更多文章

社区洞察

其他会员也浏览了