5 Steps to Crossing Open Source Adoption Hurdles
Despite its advantages, open source has its own challenges. Read my blog "Understanding the hurdles to Open Source Adoption" to get an in-depth insight on these challenges that include difficulty in identifying the right open source technology, dearth and high cost of talent and managing a partner ecosystem (specially in a large transformation program) to get the best of breed solution.
There are primarily five areas where organizations must focus to address the challenges for seamless adoption.
- Follow an architecture-first approach
- Avoid technology proliferation
- Start with a pilot implementation
- Engage full-stack architects at the initial design phase
- Opt for a bundled service offering wherever possible
Follow an architecture-first approach
We should always start with the architecture and understand the requirement of the architecture. The product selection comes later. To cite an example, in a recent engagement, we decided to go with community DROOLs instead of an enterprise product because the requirement was to have minimal and simple rules. There was no need for decision modelling notations or case management. In another engagement, we decided not to go with a commercial business process management product because the business requirement could be easily satisfied and managed with an open source orchestration solution. In another example, we made a decision to go with Redis because the requirement was for session management.
Avoid technology proliferation
The shared-nothing, distributed architecture has allowed us to go polyglot in each layer of the application. This gives freedom to the developer and helps accelerate development. But we should also be aware of the consequences of technology proliferation. It will lead to challenges in support and the need to maintain a polyglot skill set in the organization. In most cases, it is comfortable to have two choices in each layer of the application.
Start with a pilot implementation
A pilot is the best way to prove the resilience, scalability and performance of the architecture. The pilot needs to be chosen such that it covers a good sample of the complex application requirement. The benefit of using open source is that we can always start with community software at no cost. That helps not only to fail fast but also reduce the cost of failure.
To conclude, in order to take advantage of open source products and solutions, it is very important to draw out an open source strategy at the organization level. There must be strong governance in place to incubate new products and solutions before approving them for mass implementation.
Engage full-stack architects at the initial design phase
Most modernization projects run into issues due to incorrect design. Each of the components are looked at in isolation. There is very little deliberation on how the components will integrate with each other. Sometimes the compatibility between components is also not taken into consideration. A full-stack architect can play an important role here by engaging from the very beginning to ensure that the design takes care of the whole, as opposed to certain parts. For example, if it is a distributed architecture, the design should take care of resiliency through implementation of retry framework. Observability needs to be a key design consideration since distribution reduces the visibility of the end-to-end process. The choice of the persistence layer needs to be aligned with the application data retrieval and access patterns. At Infosys, we have created tools like product evaluation framework, NoSQL Data modeler to accelerate such design decisions.
Opt for a bundled service offering
To reduce the burden of coordinating with multiple vendors, Infosys has partnered with leading open source product vendors to be able to offer a ‘software + services’ solution to our clients. Product subscriptions are pre-negotiated at a competitive rate.