Sitecore Helix is a set of development guidelines used for building Sitecore websites. Sitecore introduced the guidelines to address customer concerns of how it became time consuming and expensive to add new features to a site.
The guidelines within Sitecore Helix are designed to ensure that Sitecore implementations are strong, reliable and flexible enough to stand the test of time. So much so, that Sitecore now strongly recommends that all new sites should be built in compliance with the guidelines. This encourages all Sitecore developers to get to know them inside out.
Why is Sitecore Helix important for partners and customers?
The Helix guidelines are the standard by which modern Sitecore sites are judged. They help Sitecore Partner agencies build sites for customers with the following benefits:
Higher quality with fewer development roadblocks.
Consistency that allows marketers to add content within a logical and familiar site structure.
Fewer bugs which lead to a faster time to market and an improved experience for users.
A multi-development team approach with a consistent, well-understood structure and logically grouped functionality. This is especially valuable for customers that use multiple partners or support an internal team with an external development partner.
Better representation of the customers’ business through a business centric approach. This makes the code used feel more familiar to the customer and reduces the potential for communication difficulties with developers.
Easier to change and extend which provides better long-term value for Sitecore customers. In the past, we’ve taken on customers with a Sitecore build that simply can’t add new features without significant rework. Their site needs to be rebuilt, which is a costly exercise.
A Helix-compliant Sitecore implementation is a mark of quality. It indicates it’s been well designed and can grow with your requirements over time.
Following Sitecore Helix principles delivers higher quality websites
At the heart of Sitecore Helix are a set of tried and tested rules from the software world, which have been tailored and adapted to apply specifically to Sitecore. These rules can broadly be split into two groups – Cohesion and Coupling.
The principles of package cohesion applied to Helix
By organising your system carefully into highly focussed and logically coherent packages, your system will automatically become more maintainable and with enhanced reusability. In Sitecore Helix, the packages are referred to as modules. Each module should have a clear and distinct responsibility within the system.
In practice, a module typically consists of a grouping of related code and configuration, as well as the associated Sitecore templates and renderings. There many rules about how a module should be structured, as long as it conforms to the underlying principles. In our experience, most development teams follow the conventions in Sitecore Habitat. Module boundaries are expressed within the codebase using different Visual Studio projects.
Deciding on the boundaries of a module can be tricky, but Helix offers guidance on how to approach it. Often, module topics will be become evident through discussion with stakeholders during the discovery phase of the project. On other occasions they will emerge gradually over time while the site is being built.
The cohesion aspect of a Sitecore Helix project is more of an art than a science. There is no “correct” way to do it, but there are plenty of wrong ways! Luckily, the guidance offered by the Helix documentation helps informed decisions. So, it’s important for developers to have a good understanding. A successful Helix team embraces the evolving nature of modules, and understands that continual refinement and refactoring is an essential part of maintaining quality of a Sitecore solution.
The principles of package coupling applied to Helix
By managing the relationship between packages within your system, you can ensure it is flexible enough to make changes. In Helix solutions, this is achieved by dividing the application’s modules in to three conceptual layers, with each layer a having a clear purpose.
TheFeature layer contains the bulk of system’s code. Its modules encompass all the core business areas within the system. It’s important for the feature layer modules to be independent of one another. They represent discrete slices of functionality within the application and should each be able to work on their own. Even if other feature modules are removed.
TheFoundation layer is typically smaller than the feature layer and contains more abstract code. Since feature modules cannot depend on each other, the foundation layer supplies elements that are common to multiple features. This offers a means of indirect communication between them.
TheProject layer composes the various feature and foundation modules into a cohesive application. It typically has very little functional code and is simply there to assemble the context of the system.
In a Helix compliant solution, dependencies between the layers travel downwards from the Project layer. Modules must never depend on other modules in a higher layer.
Careful consideration of the Helix layers helps to keep the coupling between modules within your system under control. As a result, your Sitecore solution should continue to be flexible when new requirements are introduced in the future.
Ready to get the most from Sitecore using Helix?
Sitecore is serious about promoting quality through Helix. At we’ve chosen to embrace that philosophy. We consider ourselves thought leaders with respect to Helix and Sitecore in general. Our specialists speak at global events, such as Sitecore Symposium and we also actively contribute to the ongoing refinement of the guidelines.
The benefits we gain from Helix are passed on to our clients. This is because we’re able to keep technical debt to a minimum. We can add new features without having to wrestle with an unwieldy, inflexible codebase.
We’re a long-standing top tier Sitecore Platinum Partner, with decades of experience in helping enterprises leverage Sitecore to achieve their business goals.