Digital Transformation and Episerver
Digital Transformation and why should you care?
Noone can have escaped the massive changes around the world lately where record stores are a vanishing memory and Spotify a shooting star. A previously unknown company Storytell buys the ancient publishing company Norstedts. News papers around the world are desperate to move to a digital business model that works and those who jumped on the train too late are closing down. AirBnB, Uber, Netflix. No business is safe. Those who have the best digital platform and user experience tend to buy up companies that produce the actual products/services (see Storytell above). The examples are many.
So what is different than before? Is Digital Transformation just another buzz word?
In my point of view, something simple but also profound has happened lately that makes this more than just a buzzword. The old way was that the business orders IT-systems, websites etc that supports their existing business model. You built a software solution based on the existing business model and out towards the user to simplify life slightly for both. The business processes beneath remained more or less the same though.
The "new" way is to do a 180 turn and start from the user perspective and worry about user experience first and supporting systems and business processes second. You are no longer building IT systems to support an existing business. You are building a new business from top down basically that may or may not match the current and inventing new business processes along the way as they are needed. Kind of cool actually...
So where does Episerver come into this disruptive revolution? Bare with me a little, I'll get there...
Digital Transformation and innovation
Digital transformation requires innovation. It's not a nice-to-have, it's a god damn must-have. Since you are no longer building for the existing business (you are building for a future business that doesn't exist yet, that noone knows), requirements becomes a tricky thing. They always were actually but noone wanted to see that. The current organization can surely help to some extent with requirements but they also normally resist new ideas. The knowledge of the old business model is surely valuable when setting requirements but it's also easy to get stuck in how-it's-usually-done. Great ideas for simplifying business processes with digitalization also tend to cost quite a few people their job. You are generally reluctant to come up with great ideas for digital solutions when one of your long time friends will be fired. Some outside help can be helpful to get true innovation going and not just end up with an improved version of an old supporting IT-system that does the same as the old but with a nicer look. That won't save your company however.
Innovation and agile process
So to build something that really matters, something new, what do you do? Innovation happens in steps, more or less like a flight of stairs. It's usually kind of hard to jump up to the top of the 3rd floor without them. Innovation works the same way, you come up with great idea A and B, you try them out and come up with idea C that builds on what you learn from A and B. Repeat. Even Einstein build his theories on building blocks from others, tested them, tried again.
Switching to IT context; building the perfect system at once is impossible unless it's a trivial system which requires no innovation. You need to build it in steps, evaluate and change course slightly, build some more, evaluate again and so on. Measuring KPIs is a great way to get hard facts to build desicions on and keeping stakeholders happy. Unfortunately many that order new IT-systems have no clue about this so they try to order the perfect system right away, some poor employee gets the suicide task to write complex requirements for the first time in their life and then you order it from the lowest bidder. Now how come that project became a fail? Hmm, let me see...*enter blame game*
For complex project that needs innovation you really need to use an agile process and involve at least a solution architect, someone with a user perspective (UX-designer normally) and someone that knows the business to get good requirements. You really need all three perspectives to come up with good ideas and requirements that work. Build it. Evaluate it and adjust. Repeat. Good, better, best...Anticipate that good ideas and changes will come along the way and be ready to grab them, change direction and put them to good use. You as developer/solution architect now have more power than ever to change not only the software solution but the entire business model for a company by a single bright idea.
So where is really Episerver in this. I'll be right there.
Episerver, innovation and agile processes
Innovation and agile process means that you are not sure what kind of system you will end up with when you are starting. That means that extendibility and pluggability is key rather than a few specific features (that you don't really know if you actually need yet). To reduce time for every iteration of this cycle (good, better, best) for every function when you are building an ever evolving product is the real key to success. So how does Episerver support this? Actually in a great way that is not found in any easy checklist over CMSs.
- Great support for storing any kind of structured information
With support for strongly typed content model that can store anything, not only web content, including language versions of it, with an easy to use API, caching etc. Strongly typed is important because that means you can use standard object oriented programming techniques and design patterns with interfaces, inheritance etc which is more or less a must for extendibility.
- Great support for extending this model
New ideas along the way in the project means you need to update your content model. This is also very easy in Episerver. Add properties to your content types and they will automatically be updated when you deploy code to production similar to EF code first approach. No extra import/export/publish steps necessary normally. This is easy to underestimate how cool this really is.
- Great extendible editor interface for this information
Ok, able to store any information, that is easy to extend and easy to manage as an editor? What's not to like? Don't underestimate the importance of how easy it's to build a good editor interface in Episerver. This is pretty tricky in other CMSs to get good which means it doesn't get done at all = the project fails because everyone hates working with it.
- Built-in support for most non-functional requirements that works great out-of-the-box and can be extended (Authentication, authorization, caching for performance, support for load-balancing etc. Easy to extend to support new caching, authentication solutions etc
- Very nice search solution with Episerver Find
Strongly typed api that is easy to extend to index and search anything you want and deliver great results. You usually need a strong extendible search solution in any kind of enterprisy innovative solution.
- Optimized development experience
Low compile times for each build, easy upgrades of Episerver and simple deploys for each release. Remember, we are focused on lowering iteration times for new functions. These things matter in the long run. A lot actually. Unfortunately they are not visible in any product sheet checklists either. Compile times of a few minutes for other CMSs I've worked with means that you lose focus as a developer x 1000s of compiles = a lot of money in the long run for the one paying for the system (and quite a few cups of extra coffee for the developer). Simple deploys means a lot if you release every three weeks or so. Easy upgrades is important for a solution that is expected to live for many years. Everything boils down to money per new functionality in the end.
- Great support for standard software architecture
Why would a company or customer care about this? Simple, software architecture exists to make it easy to extend a solution. This boils down to money too in the long run. Building stuff with LEGO and then change it is pretty easy. Building it in glass and change it is not. To create complex maintainable and extendable software solutions that lives for a long time there are accepted architecture design patterns and principles like the SOLID principles that very smart people have thought about over the years that you should probably follow.
With .NET in the background and Episervers strongly typed model and support for dependency injection with IoC etc, you, as a developer, have every possiblity to do this. This means that it's a lot easier to build larger complex systems in an agile way, that is allowed to change over time and that won't resist these changes and won't increase maintenance cost exponentially. Thanks Joel for leading the way here a couple of years ago.
Episerver combines very well with Microsoft .NET to make a very powerful flexible platform to build more or less anything on.
- Great Cloud support
You might end up here in the long run with your application when going world wide. No problem. Episerver has worked together with Microsoft and Azure to not only make this possible but also easy. (Yes, you can host on Amazon as well)
Other CMSs do support this too, true, but feel free to compare how easy it is. This means my local intranet built on Episerver can grow into a world-wide used intranet on multiple continents that uses the latest and greatest cloud techniques to improve performance when needed and keep the server costs down.
Forresters new WCM report 2017 also names Episerver as new leader with this as a part.
“Episerver is solid across core web CMS extensibility and architecture, keeps pace with modern developer expectations, and is pushing ahead in practitioner features like testing and personalization” - Forrester Research, Inc.
Episerver is a great product in itself with lots of feature out of the box, next generation of personalization not the least. But to me, the greatest feature, that is really useful in these innovative times, is how easy it is to extend, change and grow over time. It's a great framework to build around that matches very well with the agile philosophy needed to succeed with your Digital Transformation.