Think. Do. Deliver.

Reengineering: Legacy Modernization Services

Have you got a system that is already built, but needs improvement? Has the previous developer abandoned the project leaving you with your investments locked out in a semi-finished software? We see quite many cases when a customer already has a solution or some part of the code built and needs to upgrade the existing version or continue on top of it. This is typical case when you need to use software modernization option. 

Application modernization services:

  1. System analysis
  2. Restoring/elaboration of documentation
  3. Extension of system capabilities
  4. Refactoring
  5. Integration of modernized applications into IT infrastructure
  6. Migration of languages, databases, platforms
  7. Reengineering by adoption of Service Oriented architecture
  8. Replacement of legacy app with off-the-shelf software

When you need software modernization?

  • new features - software reengineering
    New features are needed

    The software is working fine, but needs new features added and previous team is not available.

  • software reengineering
    Performance is unacceptably slow

    The software is functional, but the amount of users grew up, or the database became bigger, it started to work unacceptably slow.

  • find bugs - software reengineering
    Bugs

    The software is mostly working, but there are bugs that the previous team cannot fix.

  • self-made prototype - software modernization
    Self-made prototype

    The software is a self-made prototype. Now the customer needs a “professional” version.

  • not finalized project - software modernization
    Not finalized project

    The software is partially functional. The team who started on it is unable to continue or the customer decides to replace them.

  • old version of CMS - software modernization
    Old version of CMS

    The software is built on the older version of the CMS. A user wants to benefit from the new features, but custom modules are written the way they cannot be upgraded easily.

  • complicated interface - software reengineering
    Complicated interface

    The software does the job, but users complain about interface, spend too much time doing trivial things or cannot locate features.

  • legacy software modernization
    Legacy software

    The software is outdated and needs drastic improvement whereas you can't build new one.

During over 15 years of custom software development, we have seen dozens of these issues, and addressing them is a normal part of our business, especially when it comes to UI/UX teams. We understand that in most cases you do not want a complete re-invention of the wheel, and for that very reason, we are comfortable working with someone else’s code. 

Is any of the described cases similar to your situation? Get in touch

Important to know about software modernization

Analysis comes first. There is specific risk that needs to be accepted by all parties: we cannot make any estimates or implement anything before we investigate the existing solution and analyze the code. Even after that, there’s still a risk of identifying bugs or unexpected solutions of previous developers. Addressing them is our job, but this risk exists.

T&M engagement model. Because of the described risk we offer only Time and Material engagement model for software modernization projects.

Qualified team. Reengineering can be done only by highly qualified developers with solid expertise in software modernization and knowledge of different technologies. Otherwise, the procedure does not make any sense.

 

Milestones of legacy software modernization

software modernization - analysis
1. Analysis

First and most distinct part is analysis. Common case is when customer is not aware about real situation of the project and might think that only a couple of things have to be fixed. Therefore: 

  • in case there is technical specification – we test system against stated requirements
  • in case you have NO specification – we offer Business Analytics who goes though all the details and comes up with Project Specification.

Deliverables:

  • Functional specification
  • Technical specification
  • Test plan
  • Test report
project proposal - software modernization
2. Project proposal

On completion of analysis phase we are ready to come up with project proposal and estimate the work that has to be done. Project proposal includes:

  • Project assumptions
  • Project team
  • Detailed project estimate
  • Hourly rates of specialists
  • Timeline

It is turning point to take decision whether to carry on development or develop system from scratch.  Most complicated cases might require scrapping the old system and re-building it as reengineering costs are too high.  Should this be case, see our custom software development services for more details.

software modernization services
3. Software Modernization

In most cases we will offer Agile development approach based on the SCRUM methodology. Depending on the project, typical changes include:

  • User interface transformation
  • Code refactoring
  • Extension of capabilities.

Normally development takes 30% of time more due to code issues.

quality assurance and support
4. Quality assurance and support

Besides standard quality assurance procedures, our team makes integration of modernized applications into your IT infrastructure, documents everything in sufficient details and in an easily accessible form for developers and other stakeholders.