A Legacy Java/J2EE Application's Got In The Way Of Your Business?
Is Your Application Unstable And Interrupts Business?
Too Many Defects and Deficiencies Got Support Swamped?
You Cannot Integrate It With More Recent Systems And Have To Enter Data Twice?
Change Requests are Getting Progressively More Risky and Costly?
Performance is poor too?
But Do Not Hurry To Replace It!Analysts estimate that the cost to replace an application is about five times that of reuse.
An application that shows its age may still be fixed and upgraded for a fraction of the cost of a new solution.
It represents years of experience and investments that should be built upon, and not discarded.
The Application May Serve Your Business For Yet Another 10 Years
What can be done?
Improve integration by adding a SOA interface to the applicationSOA has extended the useful life of many core legacy systems indefinitely.
The legacy application can be wrapped into a SOA service. That creates new value from the legacy application and assets it helps to manage.
New business processes may use the legacy assets via the SOA interface. The access would become almost instant, whereas before it involved manual steps or batch processing. New applications such as portals may retrieve and update data the legacy application manages, re-using the skills the workforce already has.
This approach also allows for eventual retirement of the legacy application without any disruption to the business.
Fix critical defects, implement most wanted featuresIn Dr. Joseph M. Juran's initial work he identified 20 percent of the defects causing 80 percent of the problems.
While the application may have a very long list of known defects and deficiencies, likely only handful of them are responsible for the most of the unwanted costs.
Eliminating the most annoying defects would immediately enhance users' productivity and reduce the expenses on support.
To support the current and perspective business goals, a set of new features can be implemented in the existing code base.
Improve availability and performance via clustering or moving into cloudIn the cloud, factors such as extreme scalability and on-demand provisioning create a novel set of opportunities for legacy applications.
Performance and availability of many applications can be dramatically improved by moving them into a cluster. This is often a more cost-efficient solution than to purchase a new expensive server hardware.
To provision resources based on current demand the application can be moved into a internal or external cloud. The required upfront costs are higher, but the operational costs can be far lower.
When nothing else works, re-implement the application from scratchA rewrite commits the development team to re-deliver all the features that work as required, while potentially introducing new defects.
Rewrite is a risky and a very expensive path. It may also have opportunity costs. Whenever possible, I advise to avoid it.
But when no other way exists, the re-write in accordance to the modern standards may open new roads for better business applications and integrations.
A totally new application can be a good citizen in SOA architecture, adhere to modern requirements such as PCI, be scalable and highly-available from day 1, and have a good security and access controls.
"But... do I have enough budget for that?"A common feature of waterfall ("all-or-nothing") projects is that they tend to fail (18% cancelled, 53% late, over budget or descoped).
Estimating software projects has always been an inexact science. The true scope of the change may only become known after the work has started.
Having said that, I offer you a way to control your costs.
On the Week 1 I review your code and business processes. The deliverable for the Week 1 is a roadmap that lists all changes that need to be done to reach the business goals, ranked from most important to least important, and an estimated time to implement each one.
At this point you may walk away with the detailed roadmap, and even source the work from someone else if you're not fully satisfied.
For the Week 2 and beyond, you choose what changes to implement, and what less important ones to postpone or scratch out. This guarantees you always have something to show for the money spent every next week, and you're in control of your costs.
"I'm not sure remote work would do"Remote-working programs can benefit employees and employers alike through increased productivity, reduced overhead and happier workers.
I've found that my remote productivity is way higher than when I'm working in the client's office. I relate it to:
- Lack of distraction
- Less stress due to avoiding rush hour
- More hours available for client's work due to no commute
- Ability to schedule work to periods of high productivity
- Last but not least, comfortable home office furniture and good hardware
A typical work process would include a planning meeting (via email, IM or Skype) on Monday morning and the reporting meeting on Friday. In between I would communicate with various business and/or technical people within the organization as required.
Corporate security may require to provide me with a company laptop for the duration of the engagement.
"Can I entrust my application to someone I don't know?""Trust, but verify"
But you do know me already.
I have a legit business in Canada, I'm a respectable consultant and stick to the letter and spirit of the law. Under no conditions will I disclosure any information about your business and/or applications.
"Where do I start?"
Send me an email. Describe your challenge, and let's see if I can help you.