Accelerate your business by adopting the new rules of digital. Shape innovative digital businesses, performant products and remarkable experiences enabled by technology.
Lock or Unlock the future?
Can the technologies presented here put us on the path to a better future? Or do they risk leading us down the wrong road? A look at the perspective of our experts.
On the right path…
Technologies and modern development methods have now reached a level of maturity that truly gives companies the opportunity to transform themselves through and around digital. Technically, there are no more obstacles and every problem can be solved by a judicious choice of tool or infrastructure. By combining good use of technologies and new agile practices, more sustainable products are born, as well as offers that are more in line with our world and the aspirations of consumers or citizens, and virtuous models that are part of the circular economy and the economy of use.
… or the wrong path?
Despite all its possibilities, technology remains a tool. What it brings depends on the values of those who wield it: vision, creativity, competence, willingness to listen, humility, constancy for the best; insensitivity, arrogance, casualness, impatience for the worst. The risk of forgetting this is to fall into a form of techno-solutionist illusion: everything could only be solved thanks to technology and everything technological would essentially be progress. In order to build a better future, we must keep the necessary distance so that the end always comes before the means
Digital Business & Products
- Adopt: 1. Angular 2. Apigee 3. CAST Highlight 4. Flutter 5. Kotlin 6. MongoDB 7. Mulesoft 8. OpenAPI/Swagger 9. PostgreSQL 10. React.js
- Trial: 11. ArgoCD 12. Cypress 13. GKE Autopilot 14. Go (Golang) 15. GraphQL 16. JHipster 17. Quarkus 18. Scala 19. SOPS 20. Storybook 21. Vue.js
- Assess: 22. Deno 23. Robotframework 24. Rust
- Hold: 25. Azure DevOps
- Angular, adopt
Angular, based on TypeScript, is a free open source framework for the development of client interfaces and applications. More than just a library, Angular provides all the ingredients needed to build a web application. Based on a view-controller (MVC) pattern that separates data, graphical presentation and underlying logic, Angular envisions applications as a tree of components. This modular approach is particularly suited to the development of large applications, to which it brings rigour, clarity and performance. Widely used, Angular also benefits from the support of a strong community, but it remains a rather tricky tool to learn. The choice of a JavaScript framework will therefore depend primarily on the type of application to be created, but even more on the resources available. Contrary to React.js or Vue.js, Angular is still very opinionated, and comes with many rules and constraints to follow.
- Apigee, Adopt
API-centric architecture is proving to be the foundation of new age digital businesses. For several years, Google’s Apigee has been ranked by Gartner as one of the leaders in API management. To facilitate the creation, security, maintenance and use of APIs across the enterprise, Apigee offers features that span the entire API development lifecycle; turnkey policies for security, exposure and traffic management to build APIs with confidence; and all the building blocks needed to create an ecosystem: governance, developer portal, API catalogue, monetisation, etc. Apigee also enables customers to choose where to host APIs’ traffic – on-premise, on GCP or on a hybrid infrastructure. Besides, with Apigee Hybrid, customers gain the full control of the runtime component while also allowing them to leverage governance and security compliance. Apigee keeps innovating with Apigee Integration, which unifies application integration and API management.
- ArgoCD, Trial
ArgoCD (CD for Continuous Delivery) is a GitOps tool for Kubernetes. It allows you to view Kubernetes objects, manage the versions stored in Git (described in Helm charts, for example), compare them with the desired state and automatically restore them. With this centralised control tower of resources, developers can deploy their applications faster, and with the certainty of always using the correct and desired version. With its various possibilities (SSO, disaster recovery, scaling, etc.) and the ability to integrate with a CI/CD pipeline (Jenkins, Gitlab, etc.), this open source solution is an interesting option for industrialising the production and deployment of containerised applications.
- Azure DevOps, Hold
The successor to Team Foundation Services (TFS) and Visual Studio Team System (VSTS), Azure DevOps is a suite of tools covering the entire application lifecycle: project management, requirements management, version management, testing, deployment, reporting, etc. Azure DevOps, available as a SaaS or on-premise solution, is particularly well-suited to the needs of large organisations, enabling them to rationalise and consolidate their tooling. It is compatible with most development environments (IDEs) and can be used on all types of projects, regardless of the technologies and methodologies used. In particular, it facilitates the application of company policies and encourages collaboration between teams and between entities, making it possible to gain productivity, traceability and control over the development process.
- CAST Highlight, Adopt
CAST Highlight is an application portfolio analysis tool that measures the business value of applications, identifies modernisation opportunities and potential bottlenecks, and highlights certain structural risks (open source components, licence violations, handling of sensitive data, design defects, etc.). Based on code analysis and a quick questionnaire, CAST Highlight is able to audit hundreds of applications in a few days, compared to several months for a manual process. It then provides objective and synthetic decision elements, both technological and business, which allow us to plan and then manage the rationalisation, modernisation and migration to the cloud of its applications. For organisations with a large pool of heterogeneous applications, the benefits of CAST Highlight can be considerable.
- Cypress, Trial
Cypress is a testing tool for web applications based on modern front-end frameworks such as React, Angular or Vue. An allin-one functional test engine, Cypress allows you to write scenarios in Javascript/Typescript, follow their execution step by step, debug the code and obtain a detailed report. Injected directly into the application, Cypress code reproduces the user’s behaviour in the browser without having to go through the cumbersome process of an API. In addition, Cypress benefits from numerous plug-ins, which allow for example to carry out visual non-regression tests or to write tests with Gherkin and Cucumber. Lightweight, easy to use, well-documented and supported by a large community, Cypress is becoming an essential tool for front-end development.
- Deno, Assess
Although Node.js is now the most popular server-side JavaScript execution environment, its designer, Ryan Dahl, considers it imperfect, especially from a security point of view. As a result, he developed an alternative, called Deno, which, like its predecessor, is based on the Google V8 engine, but this time written in Rust rather than C++. He has also embedded the latest advances in JavaScript as well as TypeScript support, and completely overhauled dependency management to avoid the use of Node Package Manager (NPM). Since the release of v 1.0 in May 2020, Deno has been growing extremely fast, having been selected by Slack for its new development platform. Based on open source, it can be deployed on various clouds, including Azure and AWS.
- Flutter, Adopt
Introduced by Google in 2017, Flutter is a cross-platform open source program and development kit that allows apps to be developed for Android and iOS devices with a single code. Flutter thus eliminates the additional costs, bugs and difficulties that the coexistence of the two platforms causes to project teams. Borrowing from the best of existing approaches and compatible with common development environments, Flutter is characterised by its simplicity and performance. Very easy to learn and universally appreciated, it is supported by a still small but very active and enthusiastic community. There are already more than 150,000 applications on mobile stores developed with Flutter, which has the potential to become the language of choice for mobile developers over the next five years.
- GKE Autopilot, Trial
Managing Kubernetes clusters can often be complex and time consuming without always creating value. That’s why Google offers GKE Autopilot, a service that leverages Google’s best engineering practises to support and automate much of the maintenance of GKE clusters. The customer loses some customization possibilities, but gains several aspects: service level guarantees, billing per pod utilisation, security by default, etc. Serverless from the developer’s point of view, GKE Autopilot can optimise the consumption of resources, but its main advantage is that it frees the teams from infrastructure issues and allows them to concentrate on the business dimension of development.
- Go (Golang), Trial
The Go language (sometimes called Golang) was created by Google in 2009 with the initial aim of facilitating the development of microservices while being accessible to less experienced developers. As a compiled language, Go requires very little memory (10 times less than an equivalent Java program), which considerably improves the performance of services. Simple, structured and concise, Go also requires very few lines of code and is relatively easy to learn, especially for developers familiar with C, from which it is inspired. Go is general-purpose, powerful and cross-platform, and has gained a lot of popularity in recent years, thanks in particular to the showcase provided by Docker and Kubernetes, which were developed with it.
- GraphQL, Trial
GraphQL, which was invented by Facebook and is now open source, is an API query language and execution environment for these requests. As an alternative to the REST architecture model, GraphQL allows clients to request only the data they want, which increases performance by avoiding unnecessary exchanges and makes it easier to scale APIs. GraphQL is particularly suitable when the data requested is organised in graphs or trees. Although it lends itself ideally to many use cases, GraphQL is still relatively uncommon because it requires an in-depth rethink of the way APIs are designed.
- Quarkus, Trial
The frameworks of the Java world – and particularly Spring Boot, the most popular of them were created for monolithic on-premises applications, not for
distributed cloud applications. When we use them to develop microservices, the result is many “micro-monoliths” that are cumbersome, slow to start, and resource-intensive. Quarkus is a Java framework specifically dedicated to microservices and Kubernetes environments and was designed to address this issue. By eliminating the unnecessary and specialising the build for the destination platform, Quarkus enables the creation of much lighter, cloud-ready microservices. Simple and powerful, Quarkus has all the assets to compete in the future with Spring as the main Java development framework.
- JHipster, Trial
Very often, Java applications are based on the same architectural principles and use the same basic components. JHipster capitalises on these similarities to improve both productivity and robustness of developments. As an open source low-code platform, JHipster allows the generation of complete Java source code and the rapid creation of a functional microservices-based application ready to be deployed in the cloud. To achieve a complete technology stack, JHipster ingeniously brings together a number of common frameworks and tools such as Angular and Bootstrap on the client side, and Spring Boot on the server side. JHipster saves a considerable amount of time on projects, whether they are new developments or the modernisation of legacy applications.
- Kotlin, Adopt
Kotlin is the latest development language based on the JVM (Java Virtual Machine). It was created by JetBrains, the leader in development tools, to overcome
some limitations of Java for modern development. Compatible with the entire Java ecosystem (libraries, tools, etc.), Kotlin meets the needs of both mobile development (it is the official language of the Android platform) and back-office development, with Kotlin/Native technology allowing, if necessary, to do away with the virtual machine and have a single code for targeted platforms. Modern, concise, secure and unanimously appreciated, Kotlin is growing in popularity and seems to have the assets to last. It is used in particular by Google, Netflix and Airbnb for their mobile applications.
- MongoDB, Adopt
MongoDB is the most popular NoSQL database management system. It is a document-oriented system (i.e. semi-structured content organised in JSON files according to a key/value model), which allows massive and complex data to be stored while facilitating indexing and searching. Much more flexible than a relational database since documents do not have a predefined schema, MongoDB is perfectly adapted to the usual programming objects and facilitates horizontal scaling. MongoDB is available as an open source version (Community), licensed with additional management tools (Enterprise), or as-a-service on most cloud platforms (Atlas). The Enterprise version is particularly recommended when replication and sharding are required.
- MuleSoft, Adopt
MuleSoft’s Anypoint Platform is a comprehensive suite that covers all dimensions of integration (API, security, messaging, monitoring, etc.), regardless of the environment (legacy, cloud, hybrid, etc.). Anypoint allows you to manage, via a single platform, the entire lifecycle of APIs, connectors and integration models, from both a technical and functional point of view: development, security, deployment, monitoring, maintenance, sharing, distribution, scaling, reuse, etc. Designed from the outset in the cloud and for the cloud, Anypoint is simple to implement and use, integrates naturally with IT processes such as DevOps, and provides tools for application transformation and modernisation projects. Acquired by Salesforce in 2018, MuleSoft continues its rapid expansion, particularly relying on a rich ecosystem of partners.
- OpenAPI/Swagger, Adopt
OpenAPI is an open and independent standard for describing, developing, testing and documenting APIs (Application Programming Interfaces) that conform to the REST (Representational State Transfer) architecture style. An OpenAPI definition can be used by documentation generators to present it, API management tools to create a test environment, code generators to create clients and servers in different languages, testing tools to generate test data or dummy servers, etc. The original OpenAPI developer, SmartBear, continues to provide tools to create, maintain and share APIs that conform to the OpenAPI specification. Now open source and supported by major players such as Google, IBM and Microsoft, OpenAPI has become one of the most widely used RESTful API description languages.
- PostgreSQL, Adopt
Although relational databases are increasingly competing with other forms of data representation (NoSQL databases, semistructured documents, etc.), they continue to play a major role. On the other hand, to free up the resources needed for their new projects, organisations are tending to turn away from proprietary solutions in favour of open source databases. This also allows them to free themselves from the technical, pricing and support choices imposed by the publisher. By far the most popular open source relational database, PostgreSQL appeared in 1996 and has continued to progress ever since, demonstrating its maturity and reliability through major references. Supported by an extremely active and professional community, it also benefits from a comprehensive toolkit that greatly facilitates migration projects and the move to the cloud.
- React.js, Adopt
A free, open source JavaScript library for creating component-based user interfaces, React is used to develop websites and mobile applications. React’s distinguishing features include its Virtual DOM (Document Object Model) approach, a selective rendering that only handles the differences between the document and its in-memory representation, which greatly increases performance, and its syntax extension to JavaScript, JSX, which makes it easier to manipulate components. React thus makes it possible to improve the productivity, clarity and reusability of web developments. One of the most widely used JavaScript frameworks, React owes its popularity to its ease of learning, readability and maintainability. It also benefits from the support of a very active community and the backing of its creator, Meta (Facebook).
- Robot Framework, Assess
Robot Framework is a generic, python-implemented, keyword-driven test automation and RPA framework with an extensive ecosystem. Originating at Nokia, it is now open-source, free to use, and supported by the non-profit Robot Framework Foundation. Robot Framework has a simple syntax that uses human-readable keywords, and its capabilities can be extended through libraries. Robot Framework can also be easily integrated with other tools (e.g. Test tools/frameworks, CI/CD tools) to create powerful and flexible test automation solutions. As a result of its origins, the Robot Framework is widely used in the telecoms world for cloud and network testing, but it is also increasingly used in the application domain, as part of agile and DevOps approaches for unit testing (Test Driven Development, TDD) and validation testing (Acceptance Test Driven Development, ATDD).
- Rust, Assess
Rust, created by Mozilla Research, is a development language that was designed with a dual focus on security and speed. In particular, Rust imposes requirements and controls that ensure memory security. It becomes almost complicated to write vulnerable, low-quality code in Rust! On the other hand, these same properties make it easier to parallelize the code, and thus improve performance. As a sign of its merits, Rust has become, after C, the second language of the Linux kernel. Rust is still a specialist language, used for sensitive and structuring software (operating systems, web browsers, cryptocurrency…). Adopted by most of the major players, supported by a very strong community and well equipped, it has the potential to widen its use cases and be the successor of C++.
- Scala, Trial
Scala is a programming language on the JVM (Java Virtual Machine) combining functional and object-oriented programming, an original approach that allows complex models to be expressed in a very clean way. It is also a much more expressive and readable language than Java, and its syntax has become even clearer with its recent version 3. A general-purpose language, Scala can be used for any type of program, but it is more particularly used in the Big Data world, as several major tools have been written with it (Apache Spark, Apache Kafka, Twitter’s Scalding…). Despite its strengths, Scala is struggling to gain popularity because its learning curve is steep and its principle remains impenetrable to many developers trained only in object-oriented programming. As a result, skills are quite scarce on the market, especially outside the US. Though, after passing this barrier, the language and its tooling deliver state of the art development capabilities for modern application development that also competes and can even surpass Java.
- SOPS, Trial
SOPS stands for Secrets Operations and is a tool for managing secrecy (passwords, encryption keys, tokens, etc.) in Git. SOPS allows you to edit encrypted files of various formats (yaml, json, binary…) using a third-party key manager such as OpenPGP, Azure Key Vault, AWS KMS or GCP KMS. These files are stored centrally in Git and SOPS enables the life cycle of the files and the information they contain to be managed. Finally, the decryption of secrets is done locally, at the time of deployment. Open source (under the aegis of Mozilla), agnostic, inexpensive, easy to use and very secure, SOPS is an alternative to HashiCorp Vault, in particular.
- Storybook, Trial
Storybook is an open source tool that allows you to display the components visually. With large development frameworks such as React or Angular, it is sometimes difficult to isolate a single component to define, test, optimise and document it. Storybook answers this daily need of developers through a pleasant and intuitive interface. The resulting components are fully compatible with different frameworks, and most importantly, they can be saved in a repository for sharing and reuse (e.g. branded components in corporate colours). Extremely popular since its launch in 2019, Storybook has quickly established itself as a valuable lever for productivity and quality of developments and projects. However, it is already competing with another promising tool, bit.dev.
- Vue.js, Trial
Vue.js was released in 2014 and is an accessible, scalable and powerful open source Javascript framework for creating modern web interfaces and applications. Vue.js stands out in particular for its component-based approach, which makes it possible to gain in interactivity and display speed, and thus improve the user experience. On the development side, this principle is also a way to promote code reuse, reduce maintenance and increase productivity. It is lightweight, responsive, and integrates easily with existing libraries and projects. Vue.js is easy to learn and use, especially by Javascript developers with some experience. Behind React and Angular, the two main frameworks on the market (especially in terms of available skills), Vue.js is an alternative that should not be ignored.