tech_radar_main

Making Waves Technology Radar

At Making Waves we use a number of core products, platforms and frameworks, and we follow a number of set tools and best practices. This is what we usually communicate when someone asks about our technology stack.However many bright minds in our technology team take an interest in and experiment with digital trends. 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.

Following questions from and discussions with both clients and our own staff, we have been thinking about a good way to communicate the broad spectrum of technologies and methods we use.
The result is what we call the Technology Radar.

What is 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 – 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 – the pre-existing environment a piece of software is designed to run within whilst obeying its constraints, for example Windows, Android or Azure
  • FRAMEWORKS – a reusable software program or library that provides particular functionality as part of a larger software platform such as ASP MVC or AngularJS
  • TOOLS and PRACTICES – various tools that influence software development quality and productivity and best practices of software craftsmanship

The technologies have one of the following states:

  • USE – recommended technologies regularly used in our projects
  • TRY – technologies being tried in selected projects
  • RESEARCH – technologies being tested in our labs and R&D projects

In addition, technologies we consider particularly interesting at the moment are marked as Hot topics.

Technology Radar

Products

tech_radar_products

The product category has been fairly stable the last few years, with EPiServer CMS, SharePoint and eZ Publish keeping their dominant positions. However we observe that new contenders, both in enterprise search and content management, are gaining momentum and may become part of our core stack in the near future.

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 personalised enterprise and site search experiences. It is the core search engine for EPiServer Find and EPiServer Commerce.

Content-as-a-Service

The emerging content management concept called Content-as-a-Service (CaaS) is changing our view of content. It allows various applications to leverage content managed in one place, often in the cloud. Instead of building CMS-centric solutions (where we implement services on top of a traditional CMS) we see a shift towards a content-centric approach (where we reuse content in various systems and applications). Such systems are typically hosted in the cloud, have a RESTful API to access its content and are integrated with a content delivery network (CDN) for efficient media management.

CaaS is not a product but rather refers to so called Cloud CMS systems, and Making Waves has taken an internal initiative to research such systems. We have already compared various systems available on the market, many of which are in the early stages of their product lifecycle. This includes but is not limited to Prismic.io, Cloud CMS and Contentful. Further research and market development will reveal whether such systems will be adopted in the world of content management.

Platforms

tech_radar_platforms

 

In the Platform category we observe dynamic growth in three areas: the Internet of Things (IoT), the cloud and mobile solutions. 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 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 and secure way. And finally, no one is asking whether “things” should be connected – the questions is how to do it and how to monetise it.

Xamarin

For years, a native app for iOS, Android and Windows Phone had to be built as three separate applications, with three sets of code. With the Xamarin framework, there is finally a development platform for smartphones where source code can be recycled across devices. Xamarin allows us to create native iOS, Android and Windows apps in C# and with Visual Studio. Together with native iOS and Android code, we can create the best user experience for each individual platform.

Does that mean that Xamarin is the only architectural choice we take into consideration when starting a new project? Not at all. We have good commercial experience of mobile solutions and know that we must assess each case thoroughly to determine if we should use Xamarin or if it is better to use native code only. The key is to assess how much source code can be reused in a particular project.

Beacons

We observe a growing interest in indoor mobile communication and positioning solutions. Especially in-store retailers are trying to take advantage of beacons to enhance their customers’ shopping experience with flash sales, contextual deals and contactless payment options. We have already delivered multiple concepts which show that our customers are receptive to moving their ideas one step further. We are early adopters of Estimote’s beacons that provide low-energy Bluetooth chips along with a software development toolkit (SDK).

Raspberry PI

This tiny, low-cost device is plugged into a monitor or TV and used with a mouse and keyboard. It provides a computer-like experience in places and situations where it has not yet been possible due to cost or location limitations. Raspberry PI  can be used as a standalone computer or with various sensors or even devices like Arduino, turning it into a powerful, sensor-rich machine. One of our customers considers using Raspberry PI as a platform for deploying their system in less economically developed countries. Our experience shows that it is important to bear the platform’s limitations in mind  and especially make sure that the performance of the solution is sufficient

Wearables

Wearable technologies, a part of the mobile revolution, have matured and are now ripe and ready for business. We have reached the point where we do not only perform research or develop prototypes for smart watches, but also deliver concrete solutions. Our customers are increasingly open to this kind of innovation – as early adopters, they can gain valuable experience from the growing community surrounding wearable technologies.

Frameworks

tech_radar_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. New libraries like ReactJS or Polymer are successfully challenging a landscape established by AngularJS, KnockoutJS, or jQuery.

Web Components and Polymer

Web Components is a new standard for the creation of reusable widgets or components. It may be the start of a new era of web development that brings component-based software development to web applications. Polymer.js is a Google driven helper library for the upcoming standard of Web Components. This may change how we view and create reusable controls.

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 and in clients (browsers etc.). The DOM manipulation part however seems to be the bottleneck when utilizing client side JavaScript. 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 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. As a bonus, React.js comes with out of the box support for server side rendering – enabling even faster page loads and better discoverability for web-crawlers.

Tools and Practices

tech_radar_tools

The technology trend of migration to cloud-based services includes migration of software development toolkits. We see a rapid expansion of various tools exposed to developers in the Software as a service (SaaS) model, and we research this emerging area continuously. Our main focus is on tools that support these three categories:

  • Developers’ productivity
  • Software development process automation (including deployment and testing)
  • Infrastructure monitoring

Additionally we continue our quest for the Holy Grail of project management methodology. A fast changing technology landscape, the growing importance of user experience and a need for flexibility and upfront costs reduction requires smart methodology. Thus we invest in reducing the gap between design and technology. Firstly we strive for more interaction, co-designing and prototyping among creatives and developers. Secondly we plan our projects to deliver a minimum viable product and then iteratively deliver value. Thirdly we favour agile methodologies and make them part of our culture. This includes but is not limited to continuous integration/delivery or a “definition of done”.

Visual Studio Online

The new Visual Studio Online provides a collection of developer services that run in the cloud. Its aim is to deliver all collaboration tools for your integrated development environment (IDE) to have a consistent and complete software development lifecycle toolkit. This includes version control, agile tools, continuous integration, support forthird party development tools and performance testing.

New Relic

New Relic is a tool that monitors many our projects. It warns us when attention is needed, provides precise information about application health and has a drill down feature to discover the root cause of a problem. We found that continuous monitoring can reduce false errors and gives a better overview of transactions, performance, server utilisation, availability and much more.

Loader.io

Loader.io is a cloud-based load testing tool. It is pretty simple to use and we have found it useful for relatively basic load test scenarios. Although it also covers dynamic test cases with its current limitations, our main load and performance testing tools – NeoLoad and Visual Studio Ultimate – remain our preferred tools in more complex testing scenarios.

Domain-Driven Design

Domain-Driven Design (DDD) is not new, but it deserves a place on our radar because we apply this concept both as a part of our internal design process and when analysing requirements with our customers. It allows us to develop a common domain vocabulary and run workshops with non-technical people using methods known from the world of programming. This builds structure and precision in discussions of complex business problems.

Note

You will find the complete Technology Radar here. Many thanks to all Wavemakers in Oslo and Krakow involved in creating its first version. We plan to release a new one (more interactive with an updated content) later this year. Stay tuned!

Published