Tag: Antipattern

End-To-End Testing Considered Harmful

End-To-End Testing is deemed valuable by many organisations, but the false confidence and opportunity costs it generates are at odds with Continuous Delivery. Why is End-To-End Testing so commonplace, and yet so ineffective?

Read More

Organisation Antipattern: Build Feature Branching

Build Feature Branching is oft-incompatible with Continuous Integration

Read More

Organisation Antipattern: Integration Feature Branching

Integration Feature Branching is overly-costly and unpredictable

Read More

Version Control Strategies

A taxonomy of version control strategies for and against Continuous Integration

Read More

Organisation Antipattern: Release Feature Branching

Release Feature Branching dramatically increases development costs and risk

Read More

Pipeline Antipattern: Artifact Promotion

Promoting artifacts between repositories is a poor man’s metadata Note: this antipattern used to be known as Mutable Binary Location A Continuous Delivery pipeline is an automated representation of the value stream of an organisation, and rules are often codified in a pipeline to reflect the real-world journey of a product increment. This means artifact status as well as artifact content must be tracked as…

Read More

Organisation Antipattern: Dual Value Streams

Dual Value Streams conceal transaction and opportunity costs The goal of Continuous Delivery is to optimise cycle time in order to increase product revenues, and cycle time is measured as the average lead time of the value stream from code checkin to production release. This was memorably summarised by Mary and Tom Poppendieck as the Poppendieck Question: “How long would it take your organization to…

Read More

Organisation Antipattern: Release Testing

Release Testing is high cost, low value risk management theatre Described by Elisabeth Hendrickson as originating with the misguided belief that “testers test, programmers code, and the separation of the two disciplines is important“, the traditional segregation of development and testing into separate phases has disastrous consequences for product quality and validates Jez Humble’s adage…

Read More

Application Antipattern: Serialisation

Serialisation increases batch size and cycle time When designing applications for Continuous Delivery, our goal is to grow an architecture that minimises batch size and facilitates a low cycle time. However, architectural decisions are often local optimisations that value efficiency over effectiveness and compromise our ability to rapidly release software, and a good example is the…

Read More

Pipeline Antipattern: Deployment Build

Continuous Integration “Has A” Continuous Delivery is the wrong way around Eric Minick has written a thought-provoking assessment of Continuous Delivery and Continuous Integration tooling, which includes a variant of The Golden Hammer: “When all you have is a Continuous Integration system, everything looks like a build” This leads to an antipattern Eric and I refer to as…

Read More