Sitecore Helix Layers: An Up North Perspective
Sitecore Helix Layers: An Up North Perspective
I am very excited that Sitecore has taken a stand on architecture. For years, developers would go from one company to the next and see that there really isn't any kind of standard. I was initially turned off by the concept of Helix as the structure seemed rigid. But after some clarification at a recent MVP Summit, it started to make a lot more sense to me. From what I have heard, Helix is meant to be loose guidelines to get everyone communicating in the same way.

At a high level, we have three layers of separation. The first is the Project layer. This is where site specific stuff lives. Main layouts, css, and js. The second is the Feature layer. Think of these as modules. Components that can be reusable with different sites. The third is Foundation. Think of this as your Sitecore environment and global elements.
So what are some of the pitfalls that I have noticed so far?
Reusability – This is a big one for me. If I am building a mega menu for a site and a request for a different site comes in that needs a different design, how reusable is my first mega menu to a different site? Some features might not be as reusable as initially thought.
Naming – Probably the biggest pitfall you will find here outside of actually having to develop a new feature is naming. Make sure to have a good naming convention down at the beginning of development. It will help everyone communicate and know where a certain component lives.
Foundation vs Feature – What happens when multiple features need the same data layer? Does that data layer belong in the foundation or the feature? This can get confusing fast without having a clear plan upfront.
Portability – What happens when you have a multi-server environment? If you update a foundation project, you need to update all the features that use it. This can get complex with multiple servers.

Overall I think the initiative is great and is something that was needed. My recommendation is to start with Helix and adjust it to what you know works and what the project needs!