Continuous Modernization in web development

Continuous Modernization in web development

Today's development becomes yesterday's legacy, which happens every day in modern companies, regardless of their size or technology. Therefore, it is crucial to develop the right strategy to combine business needs and technologies in a future-proof way.

Too often, decisions are made on a short-term basis to get to market quickly. If this is the case, the company should know that technical debt will catch up with them. Everything comes with a price; one should be careful to be able to pay it later.

Choose Continuous Modernization as an essential strategy.

The software will quickly become obsolete, as this is its nature. Technologies evolve faster and faster, as make the demands on businesses. The faster this world turns, the quicker the software product becomes a legacy. Therefore, it makes sense to deal with this issue at an early stage and develop a strategy for producing software so that it can grow with the times and demands. Continuous modernization is an essential strategy here.

Thus, modern web architecture inevitably becomes a strategic business decision that must function satisfactorily in 5 and 10 years. Unfortunately, many companies mistake letting development departments make these decisions alone, while these teams aren't aware of their responsibility. As a result, the long-term consequences are often not sufficiently considered. Budget limitations push them to choose the "quick and easy solution" instead of having the entire product lifecycle in mind. As a result, I often hear and read the sentence: "Start first, and we can always expand later."?

Infographic with an eight years timeline for application development. It represents what bitsinmotion experienced for more than 15 years of utilizing monoliths and microservices. Feel free to discuss with me about my opinion.


Choose the correct architecture today, not later.

I deal with the modernization of our customers' existing systems at bitsinmotion daily, which quickly became the main topic for me as CTO. What stands out negatively daily are aged monoliths. We can no longer maintain separate extensive, interconnected, and immobile applications. Even their technologies are outdated, and it isn't easy to find staff who still want to work with them.?

To avoid this form of stagnant application for the future, we rely exclusively on decoupled parts, such as microservices, microfrontends, or SaaS. We have been working with this composed architecture for several years now and are replacing parts of our legacy systems piece by piece with great success. New solutions are set up directly, always with the idea that entirely different technologies or SaaS can later replace the individual components and modules. Although microservices create extra work at the beginning of the development, avoiding technical debt outweighs this. The possibility to continuously modernize parts is the great trump card to remain agile on a business level.

Continuous Modernization often leads to new architecture demands. This infographic shall visualize how we @bitsinmotion modernize our legacy solutions.


Baby steps: Why modernization often does not succeed

The larger the application, the greater the effort to modernize it, which is especially problematic if the application is a single monolith. If the modernization includes a technology switch, an SME can quickly reach its limits. The actual scope is usually unpredictable, and developers often underestimate the effort. As in agile methods, working in the smallest possible sub-packages makes sense. In the solution architecture, subcomponents such as microservices or SaaS lend themselves to this.?

Modernization is easy if you start working on small components right from the start because the small scope clearly defines the assessment. To establish Continuous Modernization in daily development operations, a composed architecture is thus obligatory.

This approach makes it possible to implement future modernizations selectively in the day-to-day business, even after years, without turning it into a business project.


Software is there to be used, not to be developed.

The reason for developing applications is their ability to solve problems. So it should not happen that the development of an application becomes a problem by itself. We have now learned that modernization is a natural part of life. However, it is fundamentally important not to confuse modernization with new development. The extra work and technical debt involved in a parallel new development can be vast and unpredictable.?

The concept of Continuous Modernization aims to avoid new construction altogether, instead of aiming for a smooth transition from old to new while continuing to use the actual application. Ideally, no user of the app will notice a fundamental change. This also increases the system's lasting user experience and stability as significant updates at once are avoided. In addition, these are easier to test, and developers can confidently deploy them in the daily development routine.


Continuous Modernisation in DevOps

Modernizing components should be part of the regular agile development process. It is no different from developing new features or solving bugs. DevOps describes the communication within a development team, and part of this should be to talk about improvements and modernizations besides features and bugs. Refactoring is a term that is often used here, but I think it is too technical and does not replace modernization. Unfortunately, improvements from a user and business model perspective are still not part of the daily routine of many teams and are only implemented with pressure from other departments.?

The desire to implement Continuous Modernization leads to the maturation of teams and places an essential part of the responsibility for the future in the hands of the development team. Furthermore, when CM is integrated into daily communication, technical debt automatically becomes a visible problem that the team can address early on.


Conclusion

Modernization is one of the foundations of our society. We as humans are used to modernizing things, whether it is the living room, the wall of the house, or the order in the wardrobe. We should do the same in application development because we don't build a new house if we don't like the living room anymore, or do we?

For SMEs in particular, it makes an enormous difference to deal with future problems at an early stage. It is not a question of solving them today but creating a solid basis without getting into unnecessary issues.

Ronny Fieber Dipl.-Betriebswirt (FH)

BelWertV-konforme Objektbesichtigungen & Aufma?e nach WoFlV und DIN277 - DEKRA-zertifiziert | bundesweit | vorlageberechtigt ?? 03641-228811 ?? [email protected] ?? Meine Pr?ferenz: Ein pers?nliches Gespr?ch!

2 年

?Kontinuierliche Modernisierung“ kann auch nerven, wenn man aller paar Monate Prozesse und Abl?ufe anpassen muss - produktiver w?re es, sich auf ?Verl?sslichkeit“ verlassen zu k?nnen. Aber das k?nnen ja ?moderne“ Systeme offenbar nicht?! ??

要查看或添加评论,请登录

社区洞察

其他会员也浏览了