Making Waves Technology Radar 2018

Making Waves Technology Radar 2018

In today’s digital world, there is no shortage of programs and products that can be used to develop excellent online solutions. The question is rather which tools to choose, and keeping track of current trends can be very time-consuming. Making Waves’ technology radar is a shortcut through the technology product jungle. It is a visual overview of products, platforms and frameworks that we recommend to our customers. The technology radar is kept up to date thanks to the curious minds in our technology team, who are constantly exploring and evaluating new products on the market.

What happens to the various products, frameworks and tools we research or try out in our projects? Some technologies become part of our core stack, others vanish.

See another post about why we publish our Technology Radar.

 

 

Following questions from and discussions with both clients and our own staff, we have been thinking about the best way to communicate the broad spectrum of our utilized technologies and methods.

The result is what we call the Technology Radar.

What is the Making Waves Technology Radar?

The Technology Radar is a list of technologies on our radar – currently used, tested or under research. The list has four major categories:

  • PRODUCTS

This category includes all third party licensed software products and components that constitute major building blocks in our projects’ architecture. For example: content or document management systems, databases and message brokers

  • PLATFORMS

Platform is the pre-existing environment that a piece of software is designed to run on while obeying its constraints, such as Windows, Android, or Azure

  • FRAMEWORKS

This section groups reusable software programs or libraries that provide particular functionality as part of a larger software platform such as ASP MVC or AngularJS

  • TOOLS and PRACTICES

The last group is meant for various tools that help improve productivity or software development quality and constitute best practices of software craftsmanship.

 

All technologies that we look at are categorised in one of the following stages:

  • USE – recommended technologies regularly used in our projects. (Not everything makes it to this stage)
  • TRY – technologies being tried in selected projects
  • RESEARCH – technologies being tested in our labs, R&D projects and during hackathons

 

In addition, technologies we consider particularly interesting at the moment are marked as Hot topics for potential future use and hence are labeled as red dots.

PRODUCTS

 

This category has been fairly stable last years with Episerver CMS keeping it’s dominant position. However, we have observed that new contenders in CMS, eCommerce and enterprise search are gaining momentum.

Episerver CMS

Enterprise grade content management system that supports automation, personalization, and A/B testing. It is integrated with Episerver Commerce, and can be hosted in public cloud, on premise, or with Episerver DXC (Digital Experience Cloud). It is often the best choice for enterprises with high CMS requirements. Fits well in scenarios with medium sized, cost-effective websites.

Umbraco

This is an open source content management system, that has commercial support plans available. It is well integrated with uCommerce, and also enables building customizable forms with Umbraco Forms. It can be hosted on premise, in public cloud or in Umbraco cloud.

Contentful

The concept behind this technology has changed how we view content. In the content-as-a-service (CaaS) approach, users can manage content in one place, and have it shared across different applications, often utilizing the cloud. Contentful is a good alternative to traditional CMS-centric solutions.

Elasticsearch

Elasticsearch/Logstash/Kibana (ELK) is an open source technology stack for search, data processing and data insight. It provides a robust and scalable set of technologies that can act as an architectural cache component and a search engine, as well as a tool for business insight. Elasticsearch is used to create personalized enterprise and site search experiences. It is the core search engine for EPiServer Find and EPiServer Commerce.

Online analytics with Microsoft Power BI

With  more data being produced and collected in our applications we see increasing demand for online analytics and reporting.  Microsoft Power BI provides a powerful suite of business analytics tools for data visualization, which can be used by business users, analysts and IT professionals. Hosted in Azure Cloud, Power BI is integrated with Microsoft toolsets like Excel and SQL. Additionally, visualizations can be embedded in tailor-made applications. Good alternatives for Microsoft Power BI are also Tableau and Qlik.

Big data processing with Hadoop

Big data challenges requires dedicated tools for processing. Hadoop is an open-source software for storing and analyzing massive amounts of structured and unstructured data. It is often used in scenarios with machine learning. Microsoft Azure cloud offers it as part of the HDInsight suite.

PLATFORMS

In the Platform category we observe dynamic growth in areas of the cloud, artificial intelligence solutions and mobile development. This is not surprising and it is not a new trend in the digital world. However we see a shift from simply using them as buzzwords to concrete business problems that platforms can solve. The question of whether a solution should be mobile-friendly is no longer relevant; the question is rather how to do it efficiently and which platforms to support – Android, IOS, Windows, others? Similarly, it is no longer a question of whether the cloud is the right approach, but rather how to approach it in a smart, manageable, and scalable way. And finally, no one is asking whether what artificial intelligence is but what to do and how to monetize it.

Microsoft Azure Cloud

It is a public cloud computing service created by Microsoft. Azure, alongside Amazon Web Services and Google Cloud Computing, covers the majority of the public cloud market and provides software as a service (SaaS), platform as a service, and infrastructure as a service, in flexible pay-as-you go model. Recently launched Azure Germany meets strict European Union (EU) requirements by storing all data in Germany and controlling systems by a German data trustee.

Serverless architecture

Provided ephemeral computing power that comes into existence on request and disappears immediately after use. It’s an alternative to long-running virtual machines and removes the nontrivial effort that traditionally goes into server and OS configuration and orchestration. Pricing is based on the actual amount of resources consumed by an application, rather than on pre-purchased units of capacity. Serverless architecture is supported by major cloud providers like Azure Functions, AWS Lambda and Google Cloud Function

Azure Cognitive Services

Cognitive Services which provides artificial intelligence (AI) as a service (SaaS model), is a set of tools for developers who can insert AI functions directly into custom applications. It supports image processing, face and object recognition, emotion detection, and natural language processing, with sentiment analysis and speech recognition. This toolset creates a lot of possibilities like building application that can recognize your face, guess your mood and play your favorite music when you tell it to do so – with voice commands obviously.

Bots, conversational AI

Azure Bot Service implements concepts of Conversational AI making human and computer interactions more natural. It enables developers to create conversational interfaces on multiple channels. Out of the box it supports integration with custom and existing applications, including Skype, Slack or Facebook Messenger

React Native

React Native enables users to build mobile apps using only JavaScript – developers familiar with React can easily start creating mobile applications. It uses the same fundamental UI building blocks as regular iOS and Android apps, but in contrast to native development, supports creating one application for both iOS and Android.

FRAMEWORKS

 

In the Frameworks category we continue to observe rapid expansion and development of various JavaScript libraries. New frameworks arise, others are depreciated. In addition the new ECMAScript specification implies further substantial changes to existing frameworks and libraries.

ReactJs

React.js is a JavaScript framework focusing mainly on the end-user experience. It’s a “framework for creating user interfaces” according to its creator – Facebook. At Making Waves we know that modern JavaScript runs exceptionally fast, both on the server side and on client side (browsers etc.). When utilizing client side JavaScript, the DOM manipulation part however can often cause a bottleneck. Enter React.js and «the Virtual DOM». React lets the developer focus on describing what the end result (the user interface) should look like as a whole, and not worry about how this is applied, thanks to using the DOM api directly. This allows for better performance in the UI and it enables multiple developers to better work together by using a declarative way of programing.

Angular

Angular is a complete web application platform used to build well-structured Single Page Applications (SPA). It enables users to build fast interfaces via Web Workers and server-side rendering. Development of Angular I led by the Angular Team at Google and by a community of individuals and corporations. Angular (also known as Angular 2+) is a major upgrade to AngularJS 1.x. Because this upgrade was so major from the previous version, it has required extra effort and knowledge to update applications, in order to support the new platform.

Typescript

Typescript is a strongly typed language that complies to JavaScript. With static typing enabled and  advanced tools such as  autocompletion, navigation, and refactoring, Typescript is a good alternative to writing in pure JavaScript. Moreover most of JavaScript libraries and frameworks are compatible with Typescript which makes adoption even easier.

TOOLS & PRACTICES

 

We have observed that increasing usage of mobile devices results in even more focus put on proper presentation of content on websites. Having the same content with different layout (i.e. Responsive Web Design) is not enough – instead Adaptive Content approach is taken. Multitude of devices means also many cases to tests. Cross-platform testing is the area where tools like Browser Stack help by helping front-end developers understand how a page is rendered on specific devices. From an infrastructure perspective, Docker in conjunction with Kubernetes is supported by major cloud providers, which made has this combination the de-facto standard for containerization of application.

 

Adaptive Content

This concept is based on the principle of providing meaningful and personalized interactions across all channels. In the Adaptive approach, design adapts not only by responding automatically to screen size and orientation of device, but also by displaying relevant content

Cross platform testing

Cross platform testing is performed to determine the behavior of an application or a website in different environments. It helps in identifying issues that may vary with platforms or configurations such as consistency, user interface, usability, and performance issues. In Making Waves we also use Open Device Lab that facilitates testing on physical devices. For other scenarios where automation is possible we leverage tools like Browser Stack, Litmus or Xamarin Test Cloud.

Docker/Kubernetes

Docker and Kubernetes used together make it easier to achieve parity between development and production, which makes for reliable deployments and is a natural fit in a microservices-style application as a packaging mechanism for self-contained services. Recently Docker has become the container orchestration platform of choice for major public cloud platforms, including Microsoft’s Azure Container Service and Google Cloud.