To set the tone for future postings I felt it best to lay the groundwork of what got us here and where we are headed. First, I was brought into a project in December 2019 to take over an existing Sitecore implementation for a large active community of technical professionals. Second, the team that implemented the website was an agency that was removed from the project as it began to spiral out of control. Third, the current team supporting the site was newer to Sitecore and was keeping the lights on to make marketing deadlines. Not trying to throw anyone under the bus but things were not in great shape walking into this project. And on top of that we had a major conference with a set date and it wasn't moving, so not a lot of time to make huge changes right off the bat.
So we patched up the servers, optimized SQL and IIS best we could and ran with the code base we had. We found several surprises during the conference where assumptions were made based on the implementation teams lack of understanding of the business requirements, but the site held up as best it could. But how do we make it better?
We Made it to Conference But What Got Us Here
Our previous implementation was based on an agencies idea of a Sitecore framework. I will not name names here to protect the innocent, but proprietary frameworks based on someone else's framework scare me for two reasons. (1) They are not the owners of the original framework so changes to the underlying framework can break it and (2) they don't always have the team and budgets to keep up with the underlying framework. I am not opposed to packages and extensions but lean far away from custom frameworks by an agency unless they have a product around it, which the ones I have seen around Sitecore do not. So our previous implementation was a custom framework written in v8.1 of Sitecore, implemented on v9.0.1 (non-production release). For those of you following along at home, Sitecore made major technical changes between v8 and v9 so some major assumptions still ran but not as efficiently as they once did. Too many customizations and configuration changes to make it behave how they wanted and not how Sitecore envisioned. AND the primary architect of the framework left the agency half way through the project so his next in command was promoted to complete it. What could possibly go wrong?
Well it did get worse. Once that team was removed from the project the next team stepped in (Kudos to them) but were not well versed in Sitecore. They learned quickly and did their best but they were already working with someone else's customized implementation and were under the gun to deliver on time. Again, not trying to blame anyone here as I believe everyone had the best intentions on this project just not the best circumstances to work under. It was not ideal conditions at all for this project.
And as developers tend to do under pressure, they find the easy path. Our front-end was heavy with custom JavaScript code to fix the things that were not working which only caused it be overwhelming, hard to maintain and SLOW!!!
So How Did We Fix It
- SXA
- How much of the core SXA functionality could we leverage to reduce our custom code?
- What is in SXA that we are missing?
- Scriban
- v9.3 introduced Scriban templates and allowed us to reduce our lines of code
- Reduced lines of code also reduced the complexity and increased our ability to respond to the business needs
- Scriban templates are in the Content tree and allowed us to make changes without a deployment
- Data Exchange Framework
- How do we integrate to outside data sources to publish data on our site?
- Creative Exchange
- How do we separate the visual appearance from the layout so our creative teams can be efficient?
- Unicorn
- How do we keep our local environments in sync with Dev/QA/Prod?
- Azure DevOps
- How do we automate all the deployment so the technical team can write more and better code?
- How do we ensure coding practices are followed?
- Are we building secure code?
Comments
Post a Comment