Topic line
Build Patterns
Fast, maintainable builds: shipping skeletons, script injection, rolling builds. 17 stops, oldest first.
-
Release Compilation
Imagine you could only compile once a week. Once every two weeks. Once a month. Scary? All that code that you write blindly, not knowing whether it even compiles. All those hidden errors lurking, accumulating in the…
-
Build Pattern: Location Agnostic Script
Symptoms: Running the build script on a machine where it was never run before requires extra pre-work to make the machine ready, such as mapping drives, creating a special build script folder etc. Problem: The build…
-
Pattern: Shipping Skeleton
I am slowly realizing that perhaps my concepts for the build book could be better serving as reusable patterns for creating builds, solving specific problems. Pattern: Shipping Skeleton other names: “Hello World”,…
-
Pattern: Script Injection
I am slowly realizing that perhaps my concepts for the build book could be better serving as reusable patterns for creating builds, solving specific problems. This is a test to see how well this idea holds up in…
-
How to make your builds FAST using DRY and SRP Principles
(this will become part of my upcoming booklet on beautiful builds ) One of the things that kept frustrating me when I was working on various types of build configurations in our CI server, was that each build in a…
-
Rolling Builds and the Plane of Confidence
When I check in code I have been working on, I feel: 1. I want to wait for the build result 2. I don’t want to waste time waiting for the build results, doing nothing 3. But I fear doing something in the code until I’m…
-
Start Products with an Empty Build and Deploy Pipeline
Builds can be nasty beasts when It’s finally time to organize and do them. There are so many things you did not think about, that it can take days or weeks to come up with a build for an existing system. To avoid the…
-
Avoid XML Facing Build Tools
Having your build scripts in XML is one of the worst things you can do for maintainability and readability. Treat your build scripts like you treat your source code (or, how developers should treat their source code) –…
-
Use Version Aware Build Scripts
I am thinking of writing a small booklet about better builds . this blog post might end up as a part of it . Let me know if you’re interested by taking a look here. While I do love to use Continuous Integration Servers…
-
Build Pattern: Deploy by Proxy - Added to the book
It's been a couple months of other work. but there's finally new material in the book and more coming soon. First: I've now grouped the chapters under "parts", that start telling a story, grouping the patterns under the…
-
Irrelevant Build
Symptoms: The team doesn't seem to care that one of the builds is failing A build is red, but might not be failing. Only one person from a different team or role can tell whether it actually failed or not. Problem: One…
-
Split and Parallelize
Other Names: Split Work Symptoms: The build is taking too long Problem: It could be that one or more tasks or build steps that are comprised of many actions are taking too much time. For example: running 1000 regression…
-
Pipeline Disintegration (Post Build Pipeline)
Other Names: Post Build Hand off, Time Capsule, Strangler Application Symptoms: It is very complicated to add features to the current build process, because the current tooling deficiencies, process bureaucracy or the…
-
BBBCTC - Branching, Binaries, Builds, Coding and Testing Culture
As part of a major drive to push for faster "time to main" you might need to change things in the following five areas (that end up affecting how long people take to get their code checked into "trunk": Branching…
-
The first rule of continuous delivery toolchains
Continuous delivery transformations are hard enough in many areas already: changing people's behavior, changing policies, architecting things differently - all these things are difficult on their own. Having a toolchain…
-
Guidelines for selecting tools for continuous delivery toolchains
If the tool you use does not support continuous delivery values , you're going to have a bad time implementing CI/CD with fully automated pipelines. Here are some rules for the road: The first rule is: Don't select your…
-
If a Build Takes 4 hours, Run It Every 4 Hours
(Note: You might need to fix your environment bottlenecks first before being able to act on this blog post) Builds (i.e. compile + run tests + deploys + more tests etc…) represent a bottleneck for getting feedback on our…