Software Quality in DevOps Series

With much of the DevOps stack having matured and good practices becoming more mainstream, the need for quality in software has quickly become a central issue. This article is the first in a series in which we’ll shine the spotlight on software quality from a DevOps context.

Note that this article was first published on Hackernoon.

Picture of a mouse looking for an escape route in several traps.
Picture of a mouse looking for an escape route in several traps.
Adobe Stock

Introduction

Trends have companies focused on customer experience as a way to differentiate themselves from their competitors. However, it seems that one of the worst-kept secrets in the software industry that quality is still one of the most reliable ways…


DevOps Essentials

An image of a delivery van going so fast its wheels are on fire.
An image of a delivery van going so fast its wheels are on fire.

Introduction

The emergence of DevOps has marked a seismic shift in the software world in recent years. The allure is the opportunity it offers to organizations to increase their levels of productivity by orders of magnitude and outpace their competitors to win in the marketplace.

However, DevOps draws from a wide array of areas of research and represents their convergence into a broad set of philosophies, practices, and tools. With such a vast body of knowledge to consider, it’s hard to know where to begin when attempting to adopt it.

Fortunately, we can look to DevOps thought leaders to…


Silhouette of a person sitting on a dock, reflecting upon a wilderness sunrise.
Silhouette of a person sitting on a dock, reflecting upon a wilderness sunrise.
Photo by Miroslav Bakoš licensed through Adobe Stock

This article is an introspective look at my relationship with Agile throughout my career. It’s not going to be particularly insightful, so I don’t see it as being very interesting to many folks unless they’re interested in understanding what makes me tick. My goal here is to collect my thoughts around Agile to frame what it means to me. No more, and no less.

Early Years

I started my career as a programmer in the early 2000s, and like so many young developers, I thought that my job was simply to get my code to run as expected. …


DevOps Essentials

One man pushing a cube, another rolling a cylinder. The man with the cylinder is further ahead.
One man pushing a cube, another rolling a cylinder. The man with the cylinder is further ahead.
Image by Francesco Chiesa licensed via Adobe Stock

Introduction

Technical debt is one of the most insidious and damaging phenomena in software development. If left unchecked, it can destroy projects, products, entire software organizations, and even companies. Anybody that has worked on software intended to live for more than a few months is familiar with the signs that it has taken root:

  • Making changes to code seems to take longer and longer over time
  • There is low confidence in the quality of the software because changes often lead to regression bugs, and so a fear of change develops
  • The code is hard for anyone (even the author)…


Introduction

First off, this article will probably offer very little value to anyone who doesn’t work with MobX on large projects. It might even dissuade the MobX-uninitiated from giving it a try. This is not my intent at all. MobX is great on smaller projects where you don’t have complex domain models or a lot of state to manage. It’s also dead-simple to pick and offers a lot of power the further you take it. …


Essential DevOps Concepts

A digital display of the letters T.D.D. for Test-Driven Development
A digital display of the letters T.D.D. for Test-Driven Development

Introduction

In this article, we’ll be exploring how the Agile practice Test-Driven Development (TDD) is particularly complementary to the goals of DevOps. We’ll begin by clearing up some often misunderstood concepts related to TDD, and then reframing it from a DevOps perspective. Once we do this, it should be much more apparent just how complementary the two are.

TDD is a practice that strives to put quality first by forcing developers to think about their code in a more modular fashion. With the mainstream adoption of Agile and the subsequent emergence of DevOps, it would seem that a…


Introduction

Modern software development is all about enabling teams to continuously deliver high-quality software with ever-increasing speed. There are many tools that can help achieve this, including Lean Agile practices, architectural patterns, libraries and frameworks that can be composed to build powerful business applications, and DevOps practices like continuous delivery pipelines. The main benefit of these tools is to enable the ability to ship software at an unprecedented rate.

If and when development teams are grooving, code is streaming through the pipeline, and that rapid-flow-nirvana has been achieved, a much different challenge emerges: dependency management.

The difficulties slowly accumulate over time…


DevOps Essentials

The Wall of Confusion results in waste.

Background

The “Wall of Confusion” is a DevOps term popularized by Andrew Clay Schafer (AgileRoots 2009 ~17:00 mark) and Lee Thompson (Dev2Ops Interview). It refers to the phenomena that occur when one group in a value stream approaches their job as complete when they’ve passed it onto the next group.

The canonical example is when developers throw their code “over the wall” to their ops colleagues and don’t pay attention to what must be done to actually get the software they’ve written into a deployable state. …


Book cover for The Phoenix Project

Introduction

The Phoenix Project was written by Gene Kim, Kevin Behr, and George Spafford, three of the thought leaders of the DevOps movement that’s gained so much popularity in the past few years. It’s written in a novel-format, which makes it a much more engaging and enjoyable read than most professional books.

The Phoenix Project should be taken as an engaging way to explore how seismic shifts in technology and the convergence of several fields of study can be leveraged by IT to help businesses thrive. It’s brilliant at doing so, weaving together concepts from disparate fields into a cohesive system…

Stephen Kawaguchi

Software Architect at IBM Data & AI | Kaizen All the Things

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store