New Features vs. Fixes: What's Driving Releases Today (and Why the Formula Needs to Change)

DZone 's Guide to

New Features vs. Fixes: What's Driving Releases Today (and Why the Formula Needs to Change)

You can prevent unnecessary rework from eating your pipeline productivity with the right testing and continuous delivery strategies.

· DevOps Zone ·
Free Resource

How’s your software factory running these days? Are you keeping up with agile development cycles? And by keeping up, I don’t mean just in velocity or volume, but in the quality of the applications.

Delivering fast and frequently can adversely affect the quality of the code getting released, as well as expose debilitating friction in your end-to-end release pipeline. Teams end up expending significant effort on fixing bugs, rework and unplanned work, which can delay or reduce the release of innovative, revenue-generating features that will help drive the business and engage customers.

Some rework is inevitable, but it should be relegated to a small fraction of the software lifecycle. In the 2016 State of DevOps Report, medium IT performers reported spending 32% of their time on unplanned rework and the least amount of time on new work (approximately 35%). That’s about one third of development and test efforts in the release cycle going to fixing code versus delivering more and better features. DevOps Research and Assessment (DORA) recommends the unnecessary rework number be closer to 20%.

What’s a DevOps team to do?

Pipeline Productivity Killjoys

In a recent DevOps survey conducted by SpiceWorks for CA, we uncovered what’s causing the rework and unplanned work, and thwarting a productive continuous delivery pipeline. The app release challenges included everything from cutting costs to improving app quality to reducing release failures to handling urgent fixes.

But the survey also revealed some key areas that create bottlenecks for DevOps teams:

  • Manual, spreadsheet-based, ad hoc release processes.
  • Undiscovered application dependencies.
  • Lack of test data and automated testing.
  • Inability to capture and reuse release best practices.

How can you release applications daily or weekly (as 66% in our survey cited) and still use the very manual spreadsheet as a primary release tool (as 66% also cited)? If you are tracking and inputting data manually to move releases through the pipeline, the risk of error is high and level of visibility is low.

First Priority: Fix Your Testing

Testing is too often an island unto itself, and it’s the number one quagmire in the continuous delivery pipeline today. In our survey, DevOps teams cite improving application quality as a top challenge. And their top two improvements to application delivery are improving access to test data and streamlining and automating test processes.

Testing needs to span the software lifecycle—uncovering unexpected behaviors right when they enter the pipeline and fixing them immediately. Why wait to define the test cases after developers start coding? Define them in planning and ensure they’re automatically loaded into the test process. Why wait until staging (or heaven forbid production) before performance testing your app? Do it early and often with every iteration. Why wait until you have available environments for testing? Virtualize services anywhere during the release cycle to ensure adequate test coverage.

But to manage a continuous testing workflow, you need an end-to-end orchestration tool that can trigger the execution of testing tasks, automate promotion of applications based on testing status, and provide feedback to key stakeholders along the release cycle—even in production—to accelerate improvement.

CA Continuous Delivery Director is your end-to-end, continuous testing orchestration tool that includes the testing support and integrations needed to speed and improve testing processes. Once you get testing established as an “always on” part of the continuous delivery pipeline, you can start to see clear improvement in your application quality—and the results of happier customers and fewer defects hitting the WIP.

Deliver Better App Experiences With a Modern Software Factory

In a modern software factory, testing is not a silo or stage unto itself. It’s an integral, robust, continuous part of the process that ensures the highest quality output. Teams are relieved of manual, delay- and error- riddled testing and release processes. Instead, they are reinvesting the time spent fixing and reworking poor quality efforts into innovative features for their customers (and more revenue-generating features for their business!).

See how CA Continuous Delivery Director can help you modernize your software factory:

Image title

Check out the full infographic here: Fix or Feature | Shift the Focus of Your App Delivery Process.

deployment pipeline, devops, testing

Published at DZone with permission of Patricia Johnson . See the original article here.

Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}