With the evolution and consecration of cloud computing, several problems faced in traditional developments are now easily solved and very accessible by startups. What about applications written in the past decade?
Rewriting an application with hundreds of thousands of lines is no easy task!
Many leaders responsible for transforming their software businesses are typically following three distinct paths:
a) A radical journey of re-architecting and recoding your software;
b) A gradual evolution or
c) They are waiting for a magic solution.
A radical journey of re-architecting and recoding software is a challenge that few are able to overcome.
Depending on the number of lines of code, programming language and database, the journey can take years and require a high investment.
Rewriting code by changing languages is already a significant effort for any good development team. In addition, understanding of architecture applied to cloud computing is an additional complicating factor. Brazil still trains very few software engineers with expertise in cloud architecture.
In the gradual evolution, keeping the software core in its original architecture and coding, but creating new modules in native cloud technology, has been the choice of many industry leaders.
This approach is quite understandable in terms of:
• Consumers constantly ask for new features and integrations;
• Advance the competition by launching new features;
• The investments necessary to maintain regulatory, fiscal and tax updates, which consume a good portion of costs and workload;
• The lack of funding for the transformation of the software core and
• Hiring platforms that make it possible to move a legacy application to the cloud and save a lot of time to be able to transform it.
In both cases, the path to be followed is in the direction of the Agile and DevOps methodology to transform.
Just over a decade ago, software development witnessed a radical change. Gone are the days when development was an isolated process with development, business, operations and testing teams working in their own silos. With the agile methodology and DevOps culture, the development teams obtained the necessary impetus to get the software to production quickly and reduce time to market.
The success of the Agile and DevOps methodology certainly depends on the skill and ability of the development teams, but not only on them. These methodologies also require a change in the company's culture. Avoiding working in silos, the success factor of a transformation project is collaboration between teams.
In this way, it is possible to create an environment in which product development, testing and launches flow dynamically. For this to happen, a strong integration between development, quality and operations is fundamental.
Most consider DevOps as the extension of Agile and we can certainly think of it this way. The key is greater collaboration between the development and operations team.
The necessary change is conceptual, we have to develop user-centric software!
The success is to have constant and fast feedback from the user, associated with automation processes to increase the speed, variety and volume of deliveries.
The gains from adopting this culture for software companies are directly related to their future and survival. The value chain today centered on the consumer needs understanding much more than purely technical issues.
For those who are waiting for a magical solution, I can only say that time is passing and the end is near.