Skip to main content

Helix Smells

"Helix Smell" is the term I use for a sign that there might be a problem within a Sitecore Helix implementation. Each Helix smell has a name and definition. I hope this will provide Sitecore developers with a common vocabulary for discussing issues in their Helix solutions.

I took inspiration from the concept of "Code Smells", introduced by Kent Beck in the book "Refactoring - Improving the Design of Existing Code". A code smell is described in the book as “a surface indication that usually corresponds to a deeper problem in the system”,

As with code smells, a Helix smell should:
  • Be easy to spot (be "sniffable").
  • Require further investigation before determining if it's problem

I differentiate between Helix smells and anti-patterns. A smell always needs to be examined in context. While it's likely to be a cause for concern, it can also be a pragmatic response to a problem, where the developer weighed up the pros and cons.

Here are the Helix smells I've documented so far:

When I began thinking about naming/codifying Helix Smells, I presented my ideas at the 2019 Sitecore Virtual Developer Day. My thoughts on the subject have developed a little since then, but here's a recording of that original presentation:





This is an ongoing project, so the list of documented Helix smells will grow over time.

Comments