configuration management

Software engineer looking at her computer monitors and integrating code Code Integration: When Moving Slowly Actually Has More Risk

Many decisions about code branching models are made in the name of managing risk, and teams sometimes pick models that make integration harder in the name of safety. Moving slowly and placing barriers to change can seem safer, but agile teams work best when they acknowledge that there is also risk in deferring change.

Steve Berczuk's picture
Steve Berczuk
Repeating geometric pattern Achieve Repeatable Builds with Continuous Integration

Continuous integration is essential to provide the feedback needed to keep a team’s code agile. One crucial aspect to a successful CI process is a repeatable build. There are two parts to maintaining a repeatable build: the idioms and practices to define it, and the feedback cycle to maintain it. Here's what you need.

Steve Berczuk's picture
Steve Berczuk
Dockerfile icon image Exploring Containers: Creating a Dockerfile

Docker containers are launched using Docker images, which are built from layers of Dockerfiles. A Dockerfile is a text document that contains all the commands or instructions to create, copy, and run an image. Let’s look at what goes into creating a Dockerfile, which could be used to build a runnable Docker image.

Deepak Vohra's picture
Deepak Vohra
Architect designing a new structure Key Factors for an Efficient System Architecture Design

Software architecture is all about trying to bring structure to areas that can’t be structured easily. When an architect designs a system, service, or feature, they are formulating a comprehensive solution to a unique problem. The concepts here help create a scalable, accessible, secure, and cost-friendly architecture.

Kunal Chauhan's picture
Kunal Chauhan
Long-exposure shot of cars racing along a highway DevOps Isn’t Just about Releasing Faster

When organizations start moving to DevOps, one of the first things they focus on is automation. It makes sense: Automated deployment tools are easy to explain, and implementing them usually shows value right away. But speed isn’t the only (or even the best) reason to move to DevOps and an automated release pipeline.

Gene Gotimer's picture
Gene Gotimer
Icon showing continuous integration Making Continuous Integration Work for You

Many developers learn about using continuous integration to improve their deliverability speed and decrease the amount of effort needed to launch new features. Actually practicing continuous integration, however, is nowhere near as straightforward as it sounds. Here's how to get started in making CI work for you.

Brian Thompson's picture
Brian Thompson
On-off switch Using Feature Flags to Boost Testing and Deployment

A feature flag is a configuration setting that lets you turn a given feature on or off. There is no need for a feature to be complete before you can start testing—as soon as the first piece of code is merged, you can turn the flag on in your test environment and begin. This also reduces risk. Do you use feature flags?

James Espie's picture
James Espie
Chalkboard with 1+1=2 The Value of Testing Simply

People obsess over the number of tests and test coverage, but tests that cover more code don’t always improve quality. Some tests have low value and thus, implicitly, high cost. Simple tests may not seem impressive at first glance. But the goal of testing is to ensure quality, and simple tests can be very valuable.

Steve Berczuk's picture
Steve Berczuk