Skip to content
This repository has been archived by the owner on Aug 18, 2021. It is now read-only.
Gustavo Denis edited this page Oct 31, 2019 · 2 revisions
Main > Introduction

In the last years, the always challenging task of developing multi-hundred-line-of-code business applications has reached elevated sophistication and professionalism.

A high-quality application life-cycle is not only for high-tech companies anymore. To be or to become digital demands distinguished software engineering skills for companies of any industry and any size.

Avanade has historically helped several companies achieving proficiency in the development of modern applications during their digital transformation.

Now Avanade provides Liquid, a workbench envisioned to boost such engineering capabilities, of its clients worldwide and also of its own.

Topics
Technical Context
Avanade as a Thought Leader
Business Drivers
Guiding Principles

#Technical Context

The development of enterprise custom application has passed through several architectural waves in the last couple decades, with each new wave adding some complexity on top of the old ones.

In recent years, with the advent of modern architectural standards such as REST APIs, microservices on containers and single page applications as well as DevOps practices, the modern applications do have new strengths that are of great value to businesses and their customers.

However, the complexity of designing, building and running such applications increased a lot, demanding great effort of architects and of software and operation engineers so as to fully implement all the mandatory concepts and capabilities.

Moreover, such effort is a repeating yet error-prone one. That opens a great space for constructing a set of pre-built software components following a general-purpose technical design, thereby condensed as a workbench for developing and running those so called modern applications.

#Avanade as a Thought Leader

Born of the union of Microsoft and Accenture, Avanade has quickly become a major competence center for the Microsoft's ecosystem of technology, services and partners, with a track record of hundreds of enterprise scale, innovative projects delivered.

Microsoft, in its transformation into a cloud service company, has made a complete rotation from a proprietary vendor to an open-source friendly company, thus naturally getting more and more influence on the evolution of the industry.

In particular, due to its influence in the Single Page Application (SPA) domain with Angular & Typescript and microservice architecture with .NET Core & Docker (along with its open cloud offering such Windows Azure and VisualStudio.com) Microsoft has helped to pave the way for the building of modern digital applications.

On the other hand, Accenture is a top leader in technology consulting field and it continuously infuses Avanade with technical and methodological know-how in enterprise architecture and digital transformation.

Therefore, Avanade is best positioned to advise methods, patterns and building blocks on top of mature stacks and tools such as Microsoft's as well as to materialize the usual tech-agnostic point of view of Accenture.

#Business Drivers

The purpose of Liquid is to allow the building of modern applications with better quality in a more efficient way. Therefore, the following business drivers were stated:

  • Reduce time-to-value with faster development and testing activities: The learning curve is shorter if developers can abstract technical complexity and have their components easily and automatically put into a DevOps pipeline;

  • Increase quality with code uniformity: all application components can be written with the same high-level "technical" dialect thus promoting better code analysis, both static and dynamic;

  • Improve application governance, maintenance and evolution: a single point of technical decision for the entire code allows for better implementation of standards, code maintenance as well as easier introduction and/or replacement of technical components;

  • Catalyze the use of delivery centers: by getting most of the technical design out of the box, remote teams can focus communication on the requirements (backlog) and on the design of the business solution (application layer).

#Guiding Principles

From a technical perspective, the Liquid development was stressed toward the following principles:

  • Prescriptive yet non-intrusive programming model for business components: frameworks and platform services (e.g. .NET Core and CosmosDB, respectively) are of broad use-case scenarios, much broader than the vast majority of enterprise digital solutions actually demand. Liquid stands for the later scenarios and that is the very value space that needs to be fulfilled. Therefore, Liquid prescribes a "light" way of building business application without compromising the standard capability of developers to use underlying technology the way they want, if that is needed somehow;

  • Multi platform based on workbench components replacement: Liquid puts itself between application (business) components and underlying platform (technical) components to avoid vendor and/or technology lock-in of the application, during both building and execution time. Hence there ought to be a way of simply replacing Liquid "cartridges" of each type (e.g. database repository) from one specific technology to another (e.g. CosmosDB and DynamoDB) to seamlessly moving application (business) logic from one platform to another;

  • Built-in lightweight patterns for technology domain: There are many design patterns that must be applied when it comes time to develop a modern digital application. Many of them can be given to the (upper) application layer as an out-of-the box capability of Liquid;

  • Abstract technical complexity from business software developer: The true hard work of enterprise architects is (or should be) the structuring of millions of lines of code a large company has. Legacy code has probably grown over decades in an unsupervised manner. That should not be the case with the brand-new code of modern digital application. While dealing with technology (delta) innovation is a task architects deal every other year, dealing with the structuring and refactoring of applications is (or should be) their daily job. The same with business software developers. Liquid helps engineers to focus on their useful (business) code.

Clone this wiki locally