March 11, 2016

Application Upgrades & Rewrites

All software applications will eventually need an upgrade or perhaps a rewrite.  Technology continues to advance at warp speed, which makes it necessary for competitive businesses to address their legacy software challenges. Perhaps the architecture of a monolithic legacy application won’t allow new features to be developed.  Maybe an organization can’t find developers with the skills to enhance the application any longer.  And eventually the operating system, database and even hardware will no longer be supported by the manufacturers, in which case the application becomes extremely expensive to maintain.

Brainspire typically addresses software upgrades with 3 strategies.  The first option is to upgrade the application over time if possible by porting or upgrading only prioritized portions of an application as needed.  While this approach can be helpful to solve immediate problems, new challenges will surface as new code and legacy code will live side by side.  This approach basically buys time until the organization is ready to make a more significant investment.

The second approach is to rewrite the application with modern architectures and technologies, using the current functionality to guide the project.  This approach is generally used when new features aren’t necessary or when new feature enhancements can be added after the rewrite is completed.  The rewrite approach has a relatively low impact to the business in terms of the day-to-day time commitments as current functionality is simply replicated.   Depending on size and complexity of the application the duration and cost of the project could be significant.

The third option is to replace the application, again using modern architectures and technologies.  This strategy is used when the business wants to add an abundance of new features or change the functionality significantly.  With the replace approach, new user stories are created which has a significant impact on the time commitment of key personnel.  The replace approach can be considered a new software development project, and the client should be prepared to invest the time and resources necessary for delivery of a successful project.   Through proper discovery and analysis, Brainspire makes recommendations for the best approach to take to achieve the best return on the investment.

Recently, a Denver based business that focuses on employment and criminal background checks hired Brainspire to replace a 15-year old web application that was written using classic ASP.  The hardware was no longer supported, maintenance was costly and the business risks were growing month after month.  The client envisioned a replacement application to modernize their business processes and service offerings.  Brainspire worked with the client to reduce the immediate risk by migrating the ASP code off of the old hardware to an Azure cloud environment.  A rewrite strategy was chosen to develop their solution with a modern interface, new business process workflows, new service layers and a new database design leveraging the MVC framework, Microsoft .NET, and SQL Server in an Azure cloud environment for development, test, staging and production.