Building

Building, in the context of software development, refers to the process of compiling code, including dependencies, into a runnable application or system.

Purpose

The purpose of the building process is to convert code into usable applications.

Context

Industry Context

There are multiple steps involved in getting from the code on a developer's machine to the point where we have a running application in a production environment. With a fast-paced market and the need to get quick feedback from customers, it is important to have a streamlined process for building and deploying code.

ZeroBlockers Context

We want to remove all of the blockers that prevent us from getting code into production as quickly as possible. This means that we need to remove all handovers and manual processes from the building and deployment process.

Methods

MethodDescriptionBenefits
Configuration ManagementThe practice of keeping track of code changes and environment settings to ensure consistency across deployments.Enhances reproducibility and traceability of builds.
Infrastructure AutomationThe use of code to automate the provisioning and management of infrastructure, such as servers, networks, and storage.Reduces manual effort and human error, improving reliability and consistency.
Test AutomationThe use of software to control the execution of tests, comparing actual outcomes with predicted outcomes.Increases the scope and depth of tests, improving software quality.
Continuous Integration (CI)The practice of frequently integrating code changes into a shared repository, triggering automated builds and tests.Detects integration errors quickly, facilitating rapid correction.
Continuous Delivery (CD)Ensures software can be reliably released at any time, often by automatically deploying all changes to a testing environment.Makes releases predictable, low-risk events.

Anti-patterns

  • Manual Processes: Relying on manual processes for building and deploying, which can be slow and error-prone.
  • Infrequent Integration: Allowing long periods between integrations, leading to complex merges and integration issues.
  • Skipping Automated Tests: Not running automated tests as part of the build, risking the quality of the build.

Case Studies

Was this page helpful?

Previous
Implementing Feature Toggles
© ZeroBlockers, 2024. All rights reserved.