Over a million developers have joined DZone.
{{announcement.body}}
{{announcement.title}}

Software, Speed, Data: Crack the Tradeoff Wall

DZone's Guide to

Software, Speed, Data: Crack the Tradeoff Wall

Collecting, analyzing, integrating and delivering data causes most of the bottlenecks software developers face today.

Free Resource

Traditional relational databases weren’t designed for today’s customers. Learn about the world’s first NoSQL Engagement Database purpose-built for the new era of customer experience.

What exactly do we mean, at Delphix, by “tradeoffs”? For one of our customers, a leading publisher of financial information, tradeoffs meant it was impossible to move beyond 10 refreshes a year (i.e. to update non-production environments with the latest production data). This stuck them with problematic test data quality, recurring surges of undetected bugs later and later in the software development life cycle (SDLC). All of these factors resulted in lethargic time-to-market and, inevitably, lost productivity.

Tim Campos, CIO of Facebook, another customer, “attributes Facebook’s success to a high degree of automation and to the development of proprietary software tools tailored to the company’s needs.”2And yet, Facebook faced analogous challenges with test data availability/quality, which resulted in unsustainable inefficiencies in key applications involved with their international expansion.

Similarly, when finally the pressure of competition persuaded Walmart that it was time to enter the e-business space at full force, they had to “focus on quickly releasing application updates based on user feedback and other data feeds… to better meet customer needs.”3The issue of working with numerous data-sets kept accordingly up-to-date and up-to-speed, however, seemed forbidding. They turned to Delphix for a solution.

Delphix's Solution

Data. Collecting, analyzing, integrating and delivering data causes most of the bottlenecks software developers face today.5 It can take days just to provision developers with one data environment they need before they can get down to work. Delphix makes data manageable and eliminates all of these delays. How?

The Software Development Life Cycle (SDLC) comprises four main stages: Development, Testing, User Acceptance Testing (UAT) and Production Release. The later the stage in which a bug is caught, the more difficult, time-consuming and, as a result, the more expensive it becomes to root-cause it and fix it.

Delphix enables two strategies. The first, we call shift-left: shifting the process of bug-catching from later to earlier stages (i.e. to the left) of the SDLC. The second, uprooting: catching more bugs at every given stage of the SDLC. The combined aim is to catch as many bugs, as early as possible, and in this way to reduce the resources that rework takes up. This translates into higher quality and speed at a lower cost.

How does it happen? Delphix is a software that stores (importantly, on hardware of any kind) a highly compressed copy of production data. It then uses this golden copy to provide developers, testers (anyone who needs one, really) with virtual copies of any and every relevant dataset.

This allows for 3 critical advantages. First, these are virtual and not physical copies of the data: they can be provisioned and rearranged (refreshed with new production data, reset and synced with previous versions, etc.) very rapidly - in a matter of minutes. Secondly, the copies can be provisioned on a self-service basis, which eliminates the delays (sometimes weeks) caused by the bucket brigades of ticket requests and handoffs. Third: these are all full copies, neither subsets nor outdated versions of the data, which leads to exponential improvements in the quality and reliability of every phase of development and testing.

Let’s take a look at the first customer we mentioned earlier. With Delphix, developers started to set up full, virtual copies of the necessary data environments in minutes, and then reset them, refresh them, sync them up - all on a self-service basis, and still in a matter of minutes. This way, they were able to test their software projects more often, non-destructively, against exact copies of production data. Here is the result:

Image title

The black columns show how many bugs were caught at each stage of the SDLC (per release) prior to Delphix, the red columns after Delphix was introduced. More bugs were caught (uprooting) and fixed at an earlier stage (shift-left) in the SDLC. To keep calculations simple, the cost of a bug fix  has been normalized at $1 at the Development stage, then a factor of 10X more expensive in Quality Assurance; 50X in User Acceptance Testing; and 100X in Production.

Delphix enables the testing costs to shift-left into less expensive territory. In this case study more than 100 percent more bugs were discovered in Development. Delphix reduced bugs reaching the costly 50X UAT stage to less than one quarter. 

These real use case numbers show significant savings in bug testing and app delivery.

Conclusion

That is how the software development paradigm changes. Potentially, it can change for any business that’s data-driven, by giving development teams the right data faster than ever before. Speedier, higher-quality data management allows for fewer resources to be allocated much more effectively. Crucially, since technology like Delphix makes this possible, “the excuses for only choosing two components in the shortened, budget-constrained, and feature-bloated development cycle are also quickly melting away.”6

Learn how the world’s first NoSQL Engagement Database delivers unparalleled performance at any scale for customer experience innovation that never ends.

Topics:
database ,data ,analytics ,sdlc ,agile

Opinions expressed by DZone contributors are their own.

THE DZONE NEWSLETTER

Dev Resources & Solutions Straight to Your Inbox

Thanks for subscribing!

Awesome! Check your inbox to verify your email so you can start receiving the latest in tech news and resources.

X

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

{{ parent.tldr }}

{{ parent.urlSource.name }}