Luckily Sitecore has recently released the Helix principals which provide: "A set of overall design principles and conventions for Sitecore development". Whilst this has also been released in tandem with the habitat Sitecore project example (which I was lucky enough to be on a team which released one if the first production examples), the topic of this blog post will be primarily on Helix.
So why follow Helix principals?
Well I think Sitecore puts it best on the Helix site itself:
Helix provide a set of guidelines for your Sitecore projects. The Habitat example provides you with a pre-built and tested set of common modules that you can use as an inspiration to your project. Both improve the efficiency of your projects, reduce costs and time to market. As more and more people and organisations adopt the Helix conventions and principles, it will become a Sitecore standard. This means that people who are familiar with the conventions or the Habitat example will be able to work more easily on other convention-based projects with minimal training. It will be easier for Sitecore Product Support to understand projects built using the conventions, enabling them to resolve issues more quickly.Some of the key take-aways for me are around the project efficiency, setting a global Sitecore standard and of course allowing official support to better understand your project.
What does it cover?
Rather than me rewriting the documentation in a blog format, lets cover off the main areas covered in Helix.Patterns, Principles and Conventions
- Architecture Principles: Looks at a modular solution architecturally.
- Visual Studio: How to setup and structure and Visual Studio solution with projects.
- File and Disk Structure: The physical structure of solutions and modules.
- Managing Sitecore Items: Covers managing items in development and deploying them.
- Templates: The setup of templates and how to reference them in code.
- Page Layout: A look at page layouts, renderings, data sources and of course placeholders.
- Configuration and Settings: Strategies for configuration and how to work with Sitecore configuration files.
- Multi-site and multi-tenant: How to create multi site or tenant (logical grouping such as business unit).
- Language and culture support: Multi-language implementations of Sitecore and use of Dictionaries.
- Security and workflows: How to handle permissions in Sitecore and workflows for content editors.
- Working with code: Code formatting for Sitecore.
- Visual Design and Theming: A look at the front-end stack for your Sitecore site.
DevOps and development lifecycle management
- Development: Covers general development and version control.
- Build and integration: Covers build options for Sitecore projects along with integration points.
- Testing: Covers managing your tests, along with unit testing and other testing activities (acceptance testing for example).
- Deployment: Deployment strategy for Sitecore and what should be deployed where.
For those users with large existing implementations, this can seem like a daunting list of changes to make your Sitecore solution standardised. But we all have to start somewhere, so I recommend taking one piece at a time. Fixing up how you deal with configuration can make upgrades easier so is a good start. As is the testing and deployment to ensure you have control and quality for what is released into each environment.
For the lucky ones who are starting a clean Sitecore solution, you have the option of taking the Habitat solution and using it outright (or as a best practice example). Or as intended you can take the Helix principals and bring them into your development team as general rules/guiding principals.
Wherever you are at with your particular Sitecore solution, lets all get on board with Habitat and ensure that moving forward we are all producing quality Sitecore sites that are efficient, easy to maintain and best practice!