Adopting Devops Practices in Quality Assurance: Merging The Art and Science of Software Development

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 6

practice

doi:10.1145/ 2524713.2524721
From a development team’s per-
Article development led by
queue.acm.org
spective, the product release repre-
sented a closed-loop process that was
repeatable and formulaic. Outside of
Merging the art and science a bug that might need expert attention
of software development. from developers, most of the staff was
repurposed to focus on the next ver-
by James Roche sion as soon as the product was made
available to customers.

Adopting
In this world, the QA team’s respon-
sibilities consisted largely of mimick-
ing customers’ usage patterns and
minimizing the discovery of unpleas-

DevOps
ant surprises. In the waterfall model, a
QA team’s badge of honor was its abil-
ity to anticipate, find, and deliver re-
producible scenarios that could result

Practices
in problems for users.
Building out random hardware con-
figurations, simulating puzzling net-
work landscapes, and wiring up seem-

in Quality
ingly orthogonal factors in underlying
platform architecture are all facets of
a great QA engineer’s knowledge. The
very best ones can look at a product’s
design and predict where the problems

Assurance
might occur. With stand-alone desktop
software, shipping bugs is very expen-
sive since the fixes involve service re-
leases, so QA was given more time and
staff to verify everything was working
as expected.
I remember when this era of pre-
dictable variables and finite schedules
ended. I remember it very specifically,
in fact. I was working for a company
was, for a very
S o f t wa r e l i f e cyc l e m a n ag e m e n t trying to launch a prototype of an eBay-
toppling person-to-person market-
long time, a controlled exercise. The duration of place product. We grinded for months
product design, development, and support was testing the service from the user in-
terface down. The night of the big re-
predictable enough that companies and their lease, the biggest conference room in
employees scheduled their finances, vacations, the building was packed, champagne
surgeries, and mergers around product releases. was served in cardboard coffee cups,
and the whole extended team antici-
When developers were busy, quality assurance (QA) pated the release, eventually chanting
had it easy. As the coding portion of a release cycle the countdown, “5, 4, 3, 2, 1!” Hugs
and toasts were everywhere as the CEO
came to a close, QA took over while support ramped used the new site to buy silly items we
up. Then when the product released, the development joked about in the product’s catalog.
staff exhaled, rested, and started the loop again Then I got a tap on the shoulder. It was
the engineering lead, and his words
while the support staff transitioned to busily were simple: “We think you should be
supporting the new product. downstairs with us.”

38 com municatio ns o f th e ac m | nov em ber 201 3 | vo l . 5 6 | n o. 1 1


practice

Upstairs, everyone was smiling with recognition for us, but my primary world really does not work that way
anticipation at our product’s debut. memory of that time was a newfound anymore for most software creators.
But, in a much smaller room down- appreciation for the afterlife of a soft- Where waterfall development once
stairs, with door-desks rimming the ware product. dictated the process of handing off
walls, no one was smiling. The website What products live solely on desk- from developers to QA to operations,
“worked,” but it was running too hot tops anymore? How many product the responsibilities now have hazy
considering the tiny amount of traffic. cycles have even 24 hours between the borders, and most engineers’ skill
It was about 7:00 p.m. My job was last bug fix and exposure to custom- sets span multiple disciplines.
primarily to sustain load on the service ers? More importantly, how does this The conflict between contributors
via a hastily prepared shell script to change the people and the process in- is now best laid to rest. Cantankerous
generate traffic. Meanwhile, half a doz- volved in releasing, maintaining, and QA engineers have almost no place
en engineers hung over a single screen supporting applications? in a scrum team. Products grow from
with logs scrolling and graphs bounc- prototypes. The design phase has
ing up and down. After we tweaked the Over the Wall been replaced by a less cyclic, demo-
load balancers, the troublesome graph I recently came across a funny online cratic evolution from development
lines started pointing downward, sig- meme called “Disaster Girl” that, ad- to demo.
naling relief from the issue we were mittedly, I might have been the last There is no forum for contentious
facing. The whole room breathed a person on earth to encounter. In the stand-downs within daily stand-ups.
cautious sigh of relief. background of the photograph, a Gone too is the mystique of the opera-
The party upstairs ended hours be- home smolders while neighbors and tions engineer. Where there once was
fore I left the office that night. My dog firefighters stand a safe distance away. the Hollywood image of the nocturnal
and I walked home sober and tired at In the foreground, there is a young girl know-it-alls divining the status of a
Photogra ph By Dave Roth

11:30 p.m., satisfied but anxious to hear with a smarmy smile, together with product in a room of glowing screens
the fate of the product after the an- loud text reading, “Worked fine in dev. with indecipherable logs, the culture
nouncement the following day. Ops problem now.”5 of DevOps has removed much of the
We made the front page of the New Part of the reason I suspect this is magic and caffeine dependency from
York Times the next morning, huge not a newly created joke is that the those roles.

n ov e mb e r 2 0 1 3 | vo l. 56 | n o. 1 1 | c om m u n ic at ion s of t he acm 39
practice

One refreshing outcome is a steep data and asynchronous processing DevOps and Development,
upswing in expertise and profession- over a network. Concepts, and Misunderstandings
alism within the industry. At the same These new offerings run far slim- No standard definition exists for Dev-
time, engineering prowess allows mer than anything discussed in the Ops. Blog posts on the topic abound,
teams to automate much of the track- early days of the thick/thin trade-off, but the best one can derive is that the
ing that once required 24/7 staffing and now far outnumber those on any sands are still shifting on what the term
of human system monitors, and this other platform. With mobile platforms actually means. One side of the argu-
has improved the work/life balance of growing in processing power, that ment identifies a specific job descrip-
engineers across the globe. For each thick/thin balance has a new spectrum tion for DevOps, well summarized in a
group—including developers, quality of its own. Mobile is an interesting cat- blog post stating that developers work
assurance, and operations—significant egory, since apps are constrained by mostly on code, operations work most-
changes have happened across their both screen size and processing capac- ly with systems, and DevOps is a mix of
roles to highlight aspects of the mod- ity, and users’ expectations are much those two skill sets.6 The other side of
ern software architecture template. lower than for a similar app run on a the table is not specifically opposed to
desktop environment. that notion but argues that DevOps is
So, What Exactly Has Changed? When this migration away from not really a job (in that you do not hire
Think back to the mid-1990s when isolated clients became the norm, the a “DevOp,” per se), but rather that the
most of what was installed onto ma- roles within software development spirit of DevOps speaks to an emerging
chines came via floppy disks or CD- teams moved in tandem. Unfortu- need in the modern software develop-
ROM media. The bulk of software nately for many, this wasn’t an imme- ment and support landscape.3
seldom interacted with any resources diately obvious requirement. Software This issue has divided the com-
outside of its own host’s storage, and cemeteries are overflowing with prod- munity for some time. Engineers who
software that did interact with external ucts whose management did not react proudly describe themselves as Dev-
resources did so via a limited array of quickly enough to the newly networked Ops are clearly not on the same page as
enterprise products. environments. Those that did adapt those who think there is no such thing,
The development-to-support chain were forced to move roles out of the but the existence of thousands of open
of command was as defined earlier. traditional dev/QA/support framework job listings specifically seeking “Dev-
Developers worked from a spec, and and build teams that were more collab- Ops engineers” proves that many peo-
the “Minimum Requirements” docu- orative in their approach to building ple at prominent companies believe
ment was a rigid set of constraints. fault-tolerant systems with a function- the term describes a specific role. Oth-
The testing effort consisted mainly ally infinite life span. ers in the industry believe the term de-
of populating a matrix of hardware/ The waterfall is now a river; devel- scribes new criteria for development,
feature pairings, driven by a daily in- opment and operations flow together. testing, release, support, and metrics
stallation, and a mix of manual and When a product launches, there are gathering. In this article I am taking
automated tests. Automation was pri- seldom plans to upgrade or deprecate no sides but use DevOps to describe the
marily driven to gather performance functionality, and support is ongoing. new criteria rather than a specific job.
metrics for benchmarking and stress The industry has generally done a good In my experience, I have observed
tolerance. Operations were largely the job adapting to the expectations of this the DevOps notion emerge from many
responsibility of customer-support new landscape. of the same industry forces that have
technicians who had day-to-day con- Most notably, engineering efforts brought the job description of QA en-
tact with those installing the product. now serve multiple masters. Where gineer closer to that of developer. The
Suffice it to say, there was no need for the focus used to be purely on preci- more one knows about the code and
a dedicated operations effort because sion, now longevity and scalability hold platform for an app, the better one will
the landscape was limited mostly to equal footing in product requirements be at building and fixing that app. Dev-
each user’s local environment. discussions. Your application might Ops, whether in a situation that has
Between this era and the present, still move mountains, but now it needs operations engineers picking up devel-
the numerous flip-flops between to move mountains for everyone on opment tasks or one where developers
thin vs. thick clients have yielded a earth forever. work in an operations realm, is an ef-
broad spectrum of client capacity Where QA had traditionally held fort to move the two disciplines closer.
for applications. On the thick side, the line on risk definition and main- This merging of software devel-
gaming and data-management soft- tainability, the development and op- opment and support came about as
ware require very powerful clients erations people (shortened to DevOps) the need arose for a better toolset to
with strong support for the myriad now have an equal, if not dominant, detect and measure problems in net-
network options in the modern land- role. Bargaining for features now in- worked systems. Hundreds, if not
scape. The thin-client end of the volves feasibility and sustainability be- thousands, of different companies
spectrum is populated with brows- yond the limits of PC chipsets and me- created homegrown solutions to com-
er-based apps. Bridging the thick/ dia capacity. DevOps own the profile mon tasks, and then these became
thin outliers are a massive number for system capacity and expandability tedious to build, scale, and maintain.
of applications where the local pro- within platform resources internal and Not long ago, a number of products
cessing environment is paired with external to the organization. became available that gave develop-

40 com municatio ns o f th e ac m | nov em ber 201 3 | vo l . 5 6 | n o. 1 1


practice

ment organizations a way to address only release around CD/DVD manu-


common needs such as problem diag- facturers and publishers, but now they
nosis, deployment management, task have online app marketplace stan-
automation, and process standardiza- dards setting the guidelines. Similarly,
tion. In this way, development organi-
zations, whether large or small, could There are specific online products with critical uptime
requirements have led to costly main-
consolidate the resources dedicated
to building such mechanisms.
areas where the tenance contracts with data-center ser-

DevOps wave
vice providers. With the ability to now
The biggest benefit derived from bring this work in-house comes a bet-
this new infrastructure is the ability to
quantify aspects of the development
has served to ter understanding of the process and
less of a dance for those responsible for
and support effort. Without uncer- completely and publishing a new product.
tainty, the development process can
be described with figures that perfectly
permanently True validation for any software
organization’s development, deploy-
communicate the data to heads-down improve product ment, and support process is the
developers, as well as to nontechnical
project and product owners. This is a development and concept of continuous deployment—
which is, in effect, the harmonizing
huge value to teams, and one thing is ownership, thanks of all three tasks to the extent that
clear from the aforementioned debate
within the community: there is defi- specifically to a customers are not notified, or even
concerned, about software upgrades.
nitely a pre-DevOps and post-DevOps
era of software development.
sharper focus on Continuous deployment requires a
development organization to achieve
Across the entire art form, the in- metrics and process sufficient quality so no stone is left
fluence of DevOps puts efficiency and
process into perspective. There are
standardization. unturned in the short path between a
source-control submission and a re-
specific areas, though, where the Dev- lease. It means deployment must be
Ops wave has served to completely and undetectable to users, some of whom
permanently improve product devel- will have the software version changed
opment and ownership, thanks spe- out from under them mid-session. It
cifically to a sharper focus on metrics also means the response to any prob-
and process standardization. lems encountered in the course of
such a surreptitious release is both
Process Standardization proactive and immediate.
The industry is once again consolidat- A definition of DevOps in a 2010
ing its platform options, and system blog post by Dmitriy Samovskiy8 names
management is becoming increasingly one aspect of the job description “QA
standardized as industry outliers build in Production.” This undoubtedly rais-
shims for popular products such as es the hackles of many in the industry,
Chef, Splunk, and Jenkins, among oth- but thinking about how this helps de-
ers. The handful of time-tested prod- fine a new standard for everyone in the
ucts that embody the hammers and software industry makes it a valuable
screwdrivers of the DevOps toolkit are bullet point in an otherwise controver-
so ubiquitous that administrator-level sial post. Again, to the degree that the
experience with them is part of many most valuable contribution from the
job descriptions. While this might not DevOps culture surfaces in the soft-
seem new or odd in a small company ware support role, embedding the as-
where the infrastructure uses these sociated culture throughout the whole
products as the cornerstones for their product life cycle pushes valuable im-
systems, large companies with mul- provements all the way back to the de-
tiple teams developing and deploying sign phase of an application.
separately are finding this standard-
ization to be a valuable alternative to Moving Software Development
forcing homegrown solutions, allow- Metrics to a DevOps World
ing devil-may-care independence, or The aspect of the modern software
anything in between. landscape that most benefits creators
For many companies, this standard- is the availability of both thin and thick
ization sanitizes the release and sup- client solutions at design time. Pro-
port processes. Many organizations cessing power on most clients, now in-
grew their processes around immobile cluding most mobile devices, is on par
objects. Desktop software could really with server-side processing once the

n ov e mb e r 2 0 1 3 | vo l. 56 | n o. 1 1 | c om m u n ic at ion s of t he acm 41
practice

costs of data transit are considered. an app, with mobile devices delivering
DevOps makes it possible to realize the a similar crumb trail. The thinner the
promise. When the complexity of a fea- client, the more data is lost on an appli-
ture on the client brings it close to ex- cation crash. Without explicit permis-
clusion, acknowledging this trade-off
is a necessity. Furthermore, accurate When dealing sion, most browsers and all mobile op-
erating systems prevent access to the
depiction of the give-and-take is the
difference between shipping some-
primarily with data necessary to evaluate the cause of
an application crash.
thing that succeeds versus shipping client-side code, Ironically, the source of QA’s client
something that becomes a punch line
for the rest of the industry.
the variability of data comes at the cost of throughput
for the app. There are certainly many
This brings up an interesting aspect client permutations ways to collect data from clients run-
of DevOps, in that we have now finally
moved beyond the point where QA
and a lack of ning an application, but mitigating the
amount of data and frequency of deliv-
engineers’ insights were consistently accurate behavior ery negatively affects the performance
coupled with questionable data. Dev-
Ops at this point own the server-side measures make of the client and the availability of the
service. Again, browser-based apps and
numbers in the sense that load, capac- QA input far those running on mobile platforms ex-
ity, and scalability have become easily
derived figures. less objective perience the worst effects. While apps
installed to an operating system can
When dealing primarily with cli-
ent-side code, the variability of client
and verifiable. run sentinel processes that emit data
at regular intervals whether or not the
permutations and a lack of accurate targeted application is active, browser-
behavior measures make QA input based applications lose all identity as a
far less objective and verifiable. For client unless they are active. So, yes, it’s
example, many QA discussions start a frustrating circumstance for QA engi-
with, “We have customers complain- neers. Innovation is constantly improv-
ing about this feature running slow ing the situation for client-side data,
on their phones.” Easy follow-up ques- but the trade-off between the quantity
tions include, “What else is running on of data and the impact to the applica-
those phones?”, “Are they running on tion is never going to go away.
Wi-Fi, 3G, or 4G?”, “Is this a problem Perhaps the best representation of
with a particular phone?”, and then go the state of the art is the number of
on from there. A well-informed DevOps products vying for customers in the
engineer can say, “Our product now mobile platform space. Within the
uses 40% of our capacity with our 10,000 iOS landscape, Apple provides its na-
active subscribers, so if we can’t double tive crash log reporting to all apps sold
the number of instances between now in the iTunes App Store.4 As just de-
and the next release, we can’t take on scribed, users need to opt in at install
more features or more customers.” No time to provide this data to the applica-
one is going to second-guess such a tion owner, so there is not as much data
data-driven DevOps ruling, whereas QA provided as with third-party providers.
engineers were traditionally unable to In the third-party space, the providers
support their arguments without doing truly proliferate.7 The products provide
a lot more research. In a way, DevOps a variety of specialties and each comes
have an easier job now in terms of de- with a DevOps-inspired graph-based
fining and addressing problems with user interface to track day-to-day fre-
a client/service app landscape. At the quency, stack-trace weak points, and
same time, it is a daunting responsibil- provide for the global pinpointing of
ity for QA to provide that same level of exception-bearing clients.
validity when describing issues in the For applications running on An-
application ecosystem. droid, a similar proliferation of prod-
There is already an emphasis on de- ucts outside of the native platform
livering much of the on-the-ground ex- abound. The native Android SDK gives
perience via client application metrics. a far better venue for reporting than
Crash reporting is something many ap- seen in native iOS,2 including reporting
plications suggest users allow at install for crash events, as well as caught and
time. Browser-based applications have uncaught exceptions. Extensions make
the ability to track just about every as- integration of these reports easier,1 pri-
pect of each interaction a user has with marily for those keeping to the Google

42 comm unicatio ns o f the ac m | nov em ber 201 3 | vo l . 5 6 | n o. 1 1


practice

infrastructure. Largely, products that predictive issue assessments based latter is a precursor to every session.
have the most usage in the iOS space on a solvent knowledge of the entire Issues seen only in a dying operating
are also available on the Android plat- application landscape. From the QA system may limit exposure but also in-
form. These products are likely most perspective, this insight gives credence crease support costs. The goal for QA
attractive to application developers to questions about precision, perfor- here should be to present the viable
with multiplatform offerings. mance, and probabilities of deliver- data appropriately and note issues for
ing the proposed outcome of a design tracking after release.
Where Do QA and decision. This is where the insight of a Whether viewing DevOps as a spe-
DevOps Converge? developer is largely sufficient, but the cific role on a team or as a culture, the
After analyzing the techniques avail- DevOps aesthetic requires the presen- focus on engineering and quantified
able to QA and DevOps, the comparison tation of information in the form of metrics gives teams the ability to make
still begs for details on how, within the metrics that cannot be otherwise ques- projections and trade-offs that em-
engineering phase of a development tioned or second-guessed. power product architects and manage-
cycle, the client experience can be Prioritizing bug fixes provides ment. In a way, it is a maturation of the
captured with the validity and insight make-or-break influence over a soft- software-development process that has
that’s available to an operations engi- ware release. Mandating bug fixes been a long time coming.
neer in the DevOps era. prior to a release is a different respon- No other science and few other in-
The currency of QA influence is sibility. Getting bugs fixed in specific dustrial efforts make decisions with-
manifest in the schedule, in feedback windows of the development cycle out a large volume of data to help pre-
to design decisions, in prioritization opens the opportunity for more and dictably validate the outcome. Where
of bugs, and in the decision to release more interesting testing. It is obvi- DevOps has connected the system
despite open bugs, with the degree of ously very important to unblock test- administrative skill set to the develop-
convergence being largely a function ing whenever possible, but there are ment effort, moving that same ground
of risk assessment. Using app metrics frequent conflicts within the develop- shift up the chain into the quality engi-
gathered from production, engineers ment team about when bug fixing of- neering effort helps teams make more
have long been able to project severity ficially begins. This is where priority informed decisions on the develop-
onto discovered bugs. The task is not must override the schedule. ment and release of their products.
as easy, though, when working on new When testing is blocked, testing
features or when a new design ends goals are compromised. It is impor-
Related articles
up forcing users into some completely tant to make testing goals an immo- on queue.acm.org
new workflow. bile force and to use metrics to define
The Antifragile Organization
The schedule for testing must move when two opposing forces may collide.
Ariel Tseitlin
from the antiquated waterfall model to To ensure the health of a release, test- http://queue.acm.org/detail.cfm?id=2499552
one that acknowledges the importance ing must succeed over a certain num-
Traipsing Through the QA Tools Desert
of testing and release simulation. This ber of days. If critical bugs are blocking Terry Coatta
is obvious, and it constitutes a plati- that testing, the release can and should http://queue.acm.org/detail.cfm?id=1046955
tude of the software-development be delayed. Bug priority is required to Quality Assurance: Much More than Testing
ideal. The new concept introduced by ensure a sufficient amount of work is Stuart Feldman
the influence of the DevOps culture done to guarantee an acceptable—and http://queue.acm.org/detail.cfm?id=1046943
promotes programmatic analysis of successful—release.
client scenarios. Expansion of proac- The bottom line in the decision to References
1. Acra; http://acra.ch/.
tive analysis of client scenarios should release really is the bottom line, and 2. Google Analytics. Crashes and exceptions—Android
essentially automate the variety of the popularity and use of a software ap- SDK, 2013; https://developers.google.com/analytics/
devguides/collection/android/v2/exceptions.
use-case paths that a user could and, plication is what will define its value. 3. Jones, R. How to hire DevOps. Gun.io, 2012; http://gun.
maybe more importantly, is likely to Whether or not this drives the financial io/blog/how-to-hire-devops/.
4. Mac Developer Library; https://developer.apple.com/
encounter. Issues discovered that fall or popular success of an effort, it is un- library/mac/navigation/.
more closely to the user’s critical path questionably the validator. 5. Meme Generator; http://memegenerator.net/
instance/22605665.
will obviously be graded with higher Release decisions must always ac- 6. Mueller, E. What’s a DevOp? The Agile Admin, 2010;
severity than those that impact users knowledge the presence of known http://theagileadmin.com/2010/10/08/whats-a-
devop/.
falling outside of this usage pattern. customer-facing issues, and QA is fre- 7. Rocchi, C. Overview of iOS crash reporting tools, Part
The difference between the common 1. Ray Wenderlich, 2013; http://www.raywenderlich.
quently charged with assessing the com/33669/overview-of-ios-crash-reporting-tools-
assessment and the same analysis readiness of the release. There will part-1.
8. Samovskiy, D. The rise of DevOps, 2010; http://www.
through DevOps lenses is the presence always be a lot of debate, but the data somic.org/2010/03/02/the-rise-of-devops/.
of data. Usage data obviously must be should speak for itself. This is where
the basis for severity assessment. the bullet hits bone for application James Roche is a software developer and engineering
Assessing design decisions requires ownership. The data should identify manager focusing on testing frameworks. His work spans
16 years on projects including Amazon’s retail platform,
expert insight into all guidance. A hall- what customers will see, when, and Amazon Web Services; Adobe InDesign; and Adobe’s
mark of the DevOps culture is a work- how often they will see it. An obscure Digital Publishing Suite. He is contributing to a prototype
project for Adobe, looking forward to a release soon.
ing knowledge of the overall system bug in “Sign Up” is a lot different from
with the ability to profile and make an obscure bug in “Login” since the © 2013 ACM 0001-0782/13/11 $15.00

n ov e mb e r 2 0 1 3 | vo l. 56 | n o. 1 1 | c om m u n ic at ion s of t he acm 43

You might also like