Why Sitefinity CMS implementation has failed in my company?

Sébastien Queriat
9 min readSep 17, 2018

--

In February 2018, the company I work for decided to hire a specialized agency with a relevant experience with most of the solutions on the market to support us to put in place a new CMS.

At the end of a selection process, we chosen to go with Sitefinity.

After 6 months of implementations and having spent twice the budget, we had to face the fact: to continue with Sitefinity was going to be a failure for the company.

The requirements

As an international company, we had to provide to our 17 local offices a CMS in order to manage around 200 websites.

For that purpose we need at least :

  • Centralized authentication (Single Sign On)
  • Multi-sites/languages/domains
  • Innovative features such as a/b testing and personalization
  • A user friendly content editor

As we use to work in an Agile environment, we requested our agency to apply Scrum and Lean methodologies for the implementation.

The Symptoms

After 4 months of development, the agency delivered a CMS that takes around 20 seconds to display a page. It will take several weeks for that agency to optimize the system and get an average loading time up to 6 seconds.

During this optimization phase, our team also realized the following (un-exhaustive) points:

  • The CMS was still in debug mode in the live environment…
  • The license was overwritten at each deploy by a demo license. Azure was configured to remove everything in the app_data folder by default and the license stored in the git repository…
  • Backups were inconsistent. Archives contained DB and code from separate environments.
  • Deployment and warmup were unsafe. Because of the slowness of the solution, in the live environment, the warm-up could run several hours to complete the deployment process.
  • They were not able to develop from our own git repository…
  • It was not possible to automate the creation of website due to the license limitations. Workload of our internal team for the creation of a blank website was estimated to 3 hours each.
  • During the deployment (several minutes), the code was inconsistent with the db because the db was migrated before the compilation of the code was complete.
  • To run the CMS with one website and 2 concurrent users we had to setup the maximum server capabilities by keeping anyway poor performances…
  • Template implementation took more than 2 months and we were missing lots of useful components. We felt limited in the content creation process…
  • Most of the widgets were not mobile compliant, every day we were discovering display bugs…

Would you feel comfortable with such result after spending so much time? We did not need more to question the use of Sitefinity.

What happened ?

How is it possible when you work with (supposed to be) experts on a worldwide proven solution to failed so fast without even going live ?

Why did we chosen to work with Sitefinity? How did we proceed to select the agency to support us?

Here below is the complete story!

The selection of the CMS

My company wants to succeed in its digital transformation and makes a point to use the best technologies to support its employees in their everyday work.

So there was no hesitation in hiring one of the best agencies in Europe to help us making the selection of our next CMS.

The agency workshops

The agency we decided to work with, immediately took things in hand by organizing several workshops in order to identify the real needs, pre-select candidates and finally provide with a short list of 3 CMS.

Workshops were conducted with great skill. They managed to keep the focus on what was really needed and to convince to get rid of some useless functionalities.

In short, I was extremely satisfied with the efficiency they managed to put everyone in agreement around the table.

All our team involved in the selection felt comfortable, mostly when this agency shows us some Gartner’s report confirming the shortlist we were composing.

The evaluation of the short list

After a few weeks of discussions and meetings we agreed on a shortlist with 3 solutions. The agency then organized a 2-day meeting to allow our stakeholders and key users from 6 countries across Europe (around 20 people) to participate in the evaluation of the 3 CMS candidates.

For 2 days demos are presented, made by the employees of the agency followed by interviews with the sales representatives of each solution.

Each solution had half a day to self promote and the last half-day was dedicated to the selection of our next CMS.

Without going into too much detail, the selection was very easy to achieve. Between an extremely expensive candidate and a complicated alike solution, the choice was obvious and unanimous.

The winner is Sitefinity!

Progress was the only candidate to offer a CMS with the outstanding features we wanted AND for an acceptable price.

We immediately registered a license and started the implementation with this agency that solved in a few weeks the difficulty of the selection we were not able to solve for months. What a chance we have, our agency is also Elite service partner for Sitefinity.

What we forgot to take into account when selecting

The license system

Licenses are tedious, by domain, requiring to specify each subdomains and therefore difficult to manage.

I would never imagined that a solution providers business model would upset our plan to automate website deployments.

We have more than 1.000 domains used by nearly 200 sites and we wanted to automate and make it scalable. Unfortunately, even if it was mentioned in our requirements, our favorite agency was not aware about that limitation.

The very slow loading time

It should have set off alarm bells… During the demo, all the professionals said it was slow because it was a version installed locally without activated license. Lies!

Now, I can confirm it to you. To get acceptable performances, you will need assistance from professionals who have a real experience with optimizing and configuring Sitefinity.

Take into account extensions, plugins, roadmap to complete competitors’ missing features

It’s now obvious to me : most of the CMS provide with the same features. Even if you need a specific/advanced/new feature, you would probably found alternative or workaround with every CMS.

We probably did the biggest mistake when trying to cover all our features out of the box for a minimum price. If a new feature is a real advantage, every solution provider would attempt to release it anyway in a short term in order to stay into competition.

By selecting this way, we decreased the number of candidates and missed up with a lot of other opportunities …

The total cost of ownership

It was initially planned with our favorite agency to make a handover of the project to ensure a total independence. We have checked the quality of documentation and trainings available at each solution but we were far from imagining that half of the code was going to be overloaded.

So, we had to request an additional training from our agency to be able to use the code they own and which, we will realize later, is not supported by Progress.

Note for later : facing this situation is a signal that something is getting wrong. The only training to take is the one available with the solution you bought.

Despite this, the ownership cost was underestimated. It is rather complex to evaluate without knowing how the agency will manage the code afterward. It’s a kind of surprise…

Go to a technology we do not master

The internal team is exclusively composed with PHP developers and we have chosen a solution developed with .Net.

It is then quite difficult to identify any mistakes, malfunction or to control the quality of the implementation made by our agency.

Of course, going with an Elite partner from Progress, we never thought that we would have to control their every move.

What we should have been careful during the implementation

Let the agency implement its own custom code

As previously mentioned, our agency suggested us to make some adjustments that they have learned on their previous Sitefinity projects. We interpreted this as the result of their looooong experience with this solution and we thought it would be adapted to our usage.

I will learn later, that it is better to use the CMS as it is designed and avoid to overload it with different layers of technologies. Even if the method seduced me, I must admit that it introduced a lot of inconsistency. Indeed, to allow front-end developers to test their code without having to compile, this agency had set up a whole system to decouple the front-end but it is build with different JS and CSS frameworks than those used by the CMS. Do you think it could impact the solution performances?

Finally, I realized they made all these modifications to facilitate their internal development process to the detriment of the specificities of our project.

Our custom template

When you have more than 200 websites to manage, it goes without saying that we don’t want to built 200 different templates. So we asked our agency to prepare a generic template with all the elements we would need throughout our websites.

Guess what? It goes hand in hand with their way of working and that justifies the custom development previously mentioned. It’s to allow them to make custom templates. No need to believe that our experts will rely on an existing template. No! No! They will redo everything from scratch! Be sure, it will take more time to be delivered.

When we took over the project, we had to look at the CSS. We discovered that it does not follow good practices and contains many classes in duplicate.

I do not understand why it was necessary to decouple the front-end to get in return an incomplete template made with poor quality code?! Where is the added value then?

Work in a time and materials mode

I will be short on this subject. Everyone knows that if you want to stay in control of your budget, it is better to work in a flat rate…

What I have learned

If you want to set up a new CMS in your company, here are my recommendations to avoid wasting time and money.

Succeed organizing a selection doesn’t mean good to implement

Actually, our agency worked well to make the selection. The assistance was perfect. Then, they forgot to mention they had a very little experience with Sitefinity. Apparently, after investigation, only a few projects for a single client.

This probably explains the immeasurable number of errors that they have made during the implementation.

Use the tool for what it is made

It’s logical to me now. If I buy a family car and I need to integrate an enormous engine in order to ride faster, I probably failed selecting the right category of vehicles.

So, avoid to changes the way of working of your solution especially when it do not give any added-value for the end users.

Consider then the amount of customization needed !

Is it really necessary to be innovative?

In real life, there is a lot of things that we would like to have. Unfortunately they do not exist yet or are not accessible.

This does not prevent us from living without them by waiting for them at a reasonable price. If it’s the case, it would mean that these features have proven their added-value.

Otherwise, you risk to invest into features that are just in vogue and might not be necessary for your business. Is it the price to be paid for being innovative? Pay to experiment?

I would rather wait and save my money.

Every project is different

If there is one thing for which all IT professionals agree: one project is not another. Our favorite agency should have thought of it instead of squeezing every customers into one size. We have to manage over 200 website (which is not usual — at least for this agency) and they did not reconsider their way of working with us.

Pay attention to the ability of your partners to question themselves.

Conclusion

We did not select the appropriated CMS

I have the feeling that we have chosen from a list of CMS that our favorite agency is used to work with. Thus, open source and cheaper candidates were not part of the selection.

This has further reduced the list of potential solutions.

Avoid conflict of interest

We should have chosen two different partners for the selection and the implementation of the solution. It would probably give a non-influenced shortlist of solutions.

Sitefinity is not the problem

The most serious mistake is not having chosen Sitefinity but not having used it as it as to be.

I have to admit that most of the things that made Sitefinity unstable comes from the agency we worked with and not Sitefinity itself.

Would you like to know how we solved this issue and saved our budget? Just tweet it out!

Any resemblance to real agencies, living or dead, is purely coincidental.

--

--