Test pyramid and ice-cream cone
The test ice-cream cone is a strategic anti-pattern. It indicates excessive reliance on expensive and flaky forms of testing, such as manual and end-to-end, especially for components that could otherwise be tested with cheaper and much faster tests.
Although there are many variations of the ice-cream cone (and it’s antithesis: the test pyramid) out there, I find myself referring back to these by James Shore. They are from his talk Agile without a dedicated QA. For my own reference, I am capturing the images from his slides below.
The test pyramid
Unlike the ice-cream cone, the test pyramid makes for an effective test strategy.

What are focused integration tests?
These are integration tests that test just the interface between our code and external systems. Since integration tests are generally slow to run, by keeping the integration layer thin and the subsequent tests “focused”, we can limit the number of integration tests we write (i.e. proportional to how many integrations there are in our system).
The test ice-cream cone
A test strategy that results in expensive yet fragile tests and hard to change software.

Relevant
Dragan on lack of design skills
The following is a message shared on the company’s internal messaging app by Dragan Stepanović while we worked together at Careem. It was around 2018 or 2019. I have referred...
RefactoringRabbitHole
Code can never be perfect. So when we’re refactoring, we must call good enough at some point. When we forget to call good enough, we’re falling down the metaphorical rabbit...
Architecture Decision Records (ADR) for this site
ADR is for architecture what Git’s commit log is for code. It is a light-weight, append-only, process for documenting changes to a system.
Where do we start refactoring a large method?
We see a large method and decide to refactor. There is so much to nip away at. Where do we start?
Recent posts
A worked example of Value-Stream Mapping
Value-stream maps can be daunting at first glance like these maps on Google Images. ValueTech (a made-up software company for the purpose of our example) thought so too until they...
Notes on Value-Stream Mapping
A value stream is the sequence of activities required to design, produce, and deliver a good or service to a customer. – Value Stream Mapping by Karen Martin and Mike...
First experience with Event Storming
Event Storming is a technique that uses post-it notes to map out a business domain. Alberto Brandolini initially used it as a means to identify aggregates in the context of...