Software development in Durban
One thing is clear when you look back at the past decades of IT and software engineering: everything changes.
Periods of gradual improvement in hardware, language, infrastructure, and methodology are punctuated by paradigm-shifting innovation.-Software development in Durban
This evolution has allowed IT to stay ahead of ever-changing business demands, but it has not been easy or cheap.
Many IT budgets are consumed by maintaining the old stuff and staying current with upgrades and migrations can deplete funding and resources before business benefits are realized.
With the right approach, it is possible to modernize a portfolio of applications in a way that yields value quicker and at lower cost — making it easier and less expensive to stay current as products and technologies continue to evolve.
There are three specific software development patterns to modernize existing applications:
These modernization patterns address transitioning existing applications to more modern architectures and infrastructure and making them accessible to new applications. This paper also examines the conditions that lead to rewriting when that is the only option.
These patterns help enterprises figure out how to get the most out of existing applications and establish a practice for continuous modernization that will serve the business now and in the future.
APPLICATION DEVELOPMENT AND DEPLOYMENT
Not so long ago, applications were coded in programming languages and compiled into a format that was unique to a processor and operating system. The applications were generally self-contained, tended to be large, and ran in private datacenters. Everyone assumed they would have long lifespans. These were built using heavyweight software development life-cycle approaches with formal, upfront requirements and long development timelines. All of that has changed.
Those applications are now called monolithic legacy applications — the dinosaurs of business applications. Although they served the purpose for which they were built, the pace of business and technical innovation accelerated, and these applications became a burden on the enterprise.
That innovation has led to the application development and deployment model commonly used today; DevOps processes that guide the creation of micro-services, deployed on containers running in clouds. Just consider the progress in each of these four areas of application development:
methodology, architecture, deployment, and infrastructure Application infrastructure evolved from large application-specific servers to horizontally scaled commodity servers supporting many applications. It is common now for applications to be deployed on multiple servers in dispersed datacenters, private clouds, and public clouds. This is much faster to deploy, and it improves performance and availability.
The evolution in application development and deployment across these four areas has led to faster initial development, more frequent updates, higher quality, closer alignment to business needs, greater flexibility in operations, and reduced costs.
These days, we refer to the software components supporting an application as a stack. More broadly, a full stack includes all the components needed to develop and deploy an application, the methodology used to develop it, and the hardware it runs on.
Companies have embraced new products and technologies for new projects, but legacy solution stacks are still used at many companies.
For example, many financial services firms developed custom applications decades ago. They deployed Bloomberg terminals and trader workstations, client-server systems, and n-tier web appli¬cations. Today, those same firms are creating mobile applications for customers and employees. As a result of growth and acquisition, they are running dozens of modern and legacy stacks throughout their application portfolio.
Modernization is not about adopting new technologies and practices, it is about what happens to the old ones. Imagine an old house heated with coal with newer sections heated by oil and gas. Upgrading the entire house to solar is expensive with little return, but it makes sense to use solar in the latest addition, and it is worthwhile to make it all work together under one roof.
There are two primary goals of application modernization: use existing functionality and data in new applications as much as possible (deriving new value from old applications), and bring the benefits of new processes, products, and technologies to old applications. – Software development