Demands of evolving businesses
"If Your Business Isn't Evolving, It's Dying". Along with the businesses, EPiServer is also evolving. In result of a new big merger a new brand names is already in market, “EPiServer Digital Experience” (EDE). Growing E-Commerce websites are focusing on customer experience and doing a lot to engage their customers. EPiServer Digital Experience is a response to evolving business to meet the requirements of the time.
I am taking this opportunity to review what different modern content management / commerce systems are offering. Are we using up to date technologies and methodologies in our offices to meet the challenge of evolution?
I am studying a hypothetical case (Credits: Allan Thran). Hotel Finder Project
Business Name is Epi Tours (does not exist), they are tour operators and want different websites for user whom are not their direct clients but they are looking for hotels across the globe.
Generally, websites are designed with consideration of the user, the system (the IT infrastructure), and the business goals. For each of these areas we outline key scenarios and identify important quality attributes (for example, reliability or scalability) and key areas of satisfaction and dissatisfaction.
Here is a short summary of ET’s business goals.
- Users could search (and book) from 340000+ hotels across the world.
They will do offers and promotions on website generally and users specific.
- There are 4 type of users’ General user, Site Administrators, Traveling agents and Hotels.
- Traveling agents will also be using this site.
- They want to engage users based on their behaviours and provide them an experience to generate business.
- Hotels can register themselves and can update the contents and offers of their hotels.
A strict security and authorization required.
- Epi Tours wants to manage their site contents on daily or weekly bases.
Fixes/Maintenance should remain available across the life of the website.
- They are looking for an innovative system that can adopt changes/fixes as quickly as possible.
- They could run their marketing campaigns promptly.
- Site should be attractive, easy to use and responsive and workable from desktop, tablets and mobile devices.
- They will be getting hotel information from different systems.
- Number of visitors of website(s) will fluctuate across the year.
- They are looking for a cost effective, adaptive, maintainable, scalable and highly transactional web platform to run multiple websites internationally (multi culture, multi lingual and multi-currency).
- They don’t compromise on quality and performance.
Based on above business requirements, there are following high level concerns that we need to deal with in this project while architecting the application
- Application is focusing on customer experience, personalization and allowing the user to interact with the system, the way they want (rather dictating), without confusing them. How?
- How will the Editors (Marketers, Hotels, Web Admins, etc.) be using the application?
- How will we bring the data from other systems?
- How can we achieve merchandising requirements?
- How can we reduce business costs and make application scalable enough depending on the traffic.
- How will the application be deployed into production and managed?
- We have quality attribute requirements, such as security, performance, concurrency, internationalization, and configuration? How we will achieve those?
- How will site accommodate the Future trends, how we will deal with increasing network bandwidth and availability needs, how can the application be designed to be adaptive, flexible and maintainable over time, how we will deal with after deployment upgrades.
- What are the architectural trends that might impact our application now or after it has been deployed?
- A rich UI is required. How?
Generally speaking, A solid foundation is important for any software so for a website too and for that we architect our application. A well designed system avoids failures and instability, it has been learnt from the history of software failures. Architecture consists of significant decisions, structural elements, interfaces and behaviours to interact with those elements. Other aspects that come in consideration of a solution architect are as following. Functional requirements (what the business do, bookings, orders, promotions etc.), Operational requirements (How business does functions as monitoring, controlling, resources consumptions etc.), Technical requirements (Computer interaction of Operations, Technology requirements, Inventory recording, applying promotions, introducing new trends), Performance, Security, Manageability, Maintainability, Usability, Adaptive, Flexibility, Reusability, Comprehensibility, Trade-offs and Aesthetic concerns (readers are welcome to add these concerns in comments)
To achieve these business goals rather to build everything from scratch, I will get the advantage of market maturity principal and will investigate existing CMS/Commerce/Search/Merchandise/Digital Marketing/UI/Hosting systems/options and will work on some flexible design for rest of the business requirements. For selecting appropriate technologies I will consider application type, deployment strategy, quality attributes, and cross cutting concerns of business as discussed above.
We have a wide range of products available in market. Every product has its own benefits and drawbacks too and is nearly ready to meet the evolving challenges. As a solution architect we need to look what the business needs and then compare those to budget and how worthy those are for business. For Commerce, CMS, Search, Merchandising and digital marketing requirements strong candidates are Hybris, SiteCore , EPiServer and Magento with Drupal/Word press.
I am ignoring Demand ware, they will own you as soon as you start work with them. Sitefinity, out of the box E-Commerce capabilities are very limited. Umbraco, not enough to support complexity of the project.