As part of the process of embracing a new CMS we (at Cognifide) always build a site, either a simple one or a showcase, just to make sure we're comfortable with the technology. Also that we feel the CMS is going to be a good match for our customers and that it's capable of delivering both the desired experience and performance for admins, editors and visitors alike.
The situation looked no different with Sitecore. The site was built, we've duplicated our showcase functionality, but when I sat down to it and started editing and looking at the AX (authoring experience), I really thought we're not really realizing the CMS to its full potential. Well, no that's not exactly how it started... first thing I did was... I wept a little. Whenever I wanted to do something, it felt like I was scratching my left ear with my right hand...
This is how the Cognifide's Best Practices for Sitecore was born.
The best practices are focused around:
- Naming used within the system
- Behaviour of various UI elements
- Placing and order
- Content and UI structure
- SEO and URL strategy
- Consistent indication of system state.
I've touched before on the AX area in my post regarding CMS UX - Give the content some thought. Go on, read it... I'll wait, and while you're at it, start humming the OK/Cancel's “We Got It”, especially the part that goes:
Champion the user to keep the work honest
that’s the task that’s upon us
Bottom line is... we are good with code, we know how to provide world class scalable solutions, while we do have a number of best practices there, this is not a challenge at this point. It's time for us to attempt to replicate the same when it comes to the AX. While we feel some of it, we need to make sure the feeling is consistent across all of our projects. We need not to repeat any of the mistakes we did in our first try. Therefore we decided to go back to the drawing boards and employ a number of official best practices for Sitecore so we always deliver projects that feel consistent and intuitive and make sure the experience is absolutely top notch. The goal of this the best practices is not to merely excel at the technical solution but to make the users enjoy the projects when we finally hand it over to them.
I wanted the practices to follow a certain pattern so you will notice that, where it makes sense, they consist of those common parts:
- What is it about?
- Why should I do it?
- Demo scenario
- How do I implement it in my project?
But to the subject.... You would be surprised what we (the developers) can get wrong...
I will follow this post with a number of practices we decided to employ starting from the template naming, please check back shortly.