The Digital Transformation journey.
Irrespective of where you are, Digital enablement, Digital Adoption or on a complete Digital Transformation journey, businesses need to get it right the first time. It is a journey peppered with financial pits to the uninitiated. Most businesses try to make this journey with their existing team that has extensive experience in monolithic designs and old systems.
It’s just a plain fact that IT teams in organizations are more focused into aligning the immediate needs and understanding the business. They usually do not have the broad experience and expertise required to make this journey without scraping their knees a few times. This is where an IT services company that has experience in taking this journey multiple times comes into play. It has to work as a partnership.
Your business is unique. The way it is run, the offerings, what it stands for, what the priorities are, and more are all unique to your business. This needs to be communicated across to the new team and the consulting company understands all the finer points to lay out the strategy, technology, tools, approach, and even take it across to production training your existing team in the process.
Built for now keeping tomorrow in mind.
Your first goal might be to build API’s. Build this with the concept in mind that it could be used for Mobile, Web pages or other apps. It will also wind up doubling up to be an interface for integration with other systems/clients/vendors. From there you might want to interface with other 3rd party systems to provide that feature as part of your service.
Sooner than you think, you could want IoT or might want to bring in asynchronous open channel’s. If not already, you might want to move to the Cloud sooner than later.
Your new system should be able to do all this without much work when the need calls for it. Plan, plan plan. Be prepared to expand.
Leverage the best of components.
Currently there are a bunch of proven systems that get you up to speed with very minimal effort. Low Code or No code systems can get you from 0-100 in much less time than traditionally required. This allows you to focus on getting the required features out the door much sooner. You however do need to evaluate as to which solution would be a fit for your needs. At times you might need ore than one to get what you want done.
Mentally prepare for flexibility and freedom
With a micro-services approach, you are not limited to one technology or language to implement the core system. You are free to select multiple. Since each unit would be an API, you can be ensured that they can all talk to each other.
You could choose a compiled language like RUST for a processor intensive job. Other components can be in .NET for the reason that you have employees that are already in .NET. In a similar fashion you have the freedom to pick and choose as per your changing need.
When talking about adopting a Micro services architecture, you do need to think about Orchestration. How are all these units going to be managed. How will they talk to each other. There is a long list of tools starting with Docker, Rkt, Kuberneties, Nginx but again, you need to find the right mix that will serve your needs. Its crucial that you know the ins and outs of the tools you pick. It will wind up being financially draining to do a switch. Moreover, it will also be equally straining to go through each one of these technologies. You should be leveraging your service providers CoE to find the right set of tools for you.
The fact remains that with the advent of Cloud and micro services implementations, its not good enough to focus just on software. Hardware too have become services and is very well mixed with software, this will only keep on increasing in the future as IaaS becomes more mature. The boundaries are becoming blurred. More and more software’s are having to manage hardware and not just to scale up or scale down.
Stage your first release
Your first release has to be staged. After your QA, you do need to do a controlled release to a small set of trusted users. Increase the number of users in a staged manner till you have a level of confidence before launching it to the unknown world. Consumers are brutal. Its extremely easy to get them irritated. Only because they are used to quality and using their devices in a particular way. Once disliked, they are very quick to dismiss that app and you should not expect them back any time soon. Control and stage your release in production to ensure that its flawless before launch.
Yes, this needs special consideration. It is an absolute must for you to have the app, the API’s, DB, all checked for security flaws. Encourage the use of tools. Manual testing is also required. And this should not be done at the end. It should be planned for from the beginning. Ensure that development practices embrace secure coding practices. You are opening up your data to the World Wide Web. You need to be sure.
Plan before the need
Before going into production, you need to have support and administration in place. You are going to have to manage the Orchestration, issues, failover, backup plan everything should be in place before the need arises.