Services Issues
The bad of reengineering projects and why we still speak about them Reengineering projects have a reputation for being largely expensive, taking up to several years, and possibly causing long system downtimes. Moreover, the risks and benefits of reengineering
activities are hardly predictable beforehand due to the incomplete legacy software documentation. However, legacy software is often business-critical, so often you cannot simply remove these too demanding and rigid obsolete systems. Replacing
them with SaaS is rarely an option as it lacks agility in customization required by large companies with complex business processes. And while another option of developing a new application from scratch can be tempting, such projects are vulnerable
to multiple risks inherent to new software creating. Moreover, you can lose essential hidden functionality not mentioned in the specification and not obvious to applications’ users or administrators as it couldn’t be accessed through an interface
or a command sequence. Common risks of a reengineering project The loss of managerial support – senior managers can easily lose interest in supporting reengineering projects and make them first in line for funding termination in case of budget
cuts. The reason is that the damage of legacy systems is not vivid, and the benefits of reengineering projects are remote. Thus, it’s important to clearly communicate the expected improvements and show the results as early as possible (this
goal can be achieved, for example, by opting for incremental or iterative reengineering if possible). Effort and cost estimation risks – the incomplete documentation makes legacy applications quite dark horses, and the lack of experience in
legacy estimation processes on the part of the project team may lead to incorrect predictions about the project costs, expected ROI and needed efforts. What can simplify the reengineering task? Maximum automation. Automation is what rocks
and offers fewer risks and lower costs for the reengineering project. The project team can use ready and custom-made automated tools for reverse engineering activities (to investigate the application structure), code structuring, and code
modularization. However, automation doesn’t help to significantly reduce project time as the complex algorithms used for re-structuring are too demanding even for modern hardware. Involvement of knowledgeable employees. With the help of the
current support staff or proficient users from relevant non-IT departments, the developers will much faster restore the requirements of a legacy application. Sample reengineering workflow The reengineering process model may look as follows.
At the planning stage, you: Identify the key modernization drivers and formulate your needs for the target application. Sort out the required investments, assess the expected ROI and analyze the project feasibility. Form the reengineering
team from in-house resources or hire a reliable service provider (including the project manager, modernization engineers, application maintenance team, etc.). Develop the modernization roadmap. At the development stage, the reengineering team
proceeds to: Extract source code and database structures. Gather all valuable data (available documents, requirements hidden in code, and employees’ knowledge). Reverse engineer the application. Re-document the application. Introduce further
enhancements (re-structuring, modularization, interfaces). Optionally reengineer the database. Test the reengineered application. Implement the application. Validate the application’s work in the production environment. Reengineering is an
important part of software evolution Reengineering is almost inevitable if you want to significantly reduce maintenance costs for your legacy software, gain a competitive advantage with its extended reach and functionality as well as get a
good ground for further modernization activities like moving software to the cloud and splitting a legacy application into microservices. However, reengineering of legacy software is an intensive activity with high costs and often unknown
results, so it is hard to decide on. To justify expected substantial efforts, consider for the reengineering project only business-critical applications that yet have a potential to stay with you in the long run, and make sure the reengineering
costs are balanced against the profit you plan to achieve from their improvement
We help SME business leaders to modernise legacy applications and working practices, accelerate digital service delivery, drive smarter decisions with data and enable improved technology skills within teams.
We support public sector SME organisations to navigate the journey to the cloud, building new skills and confidence into every step of the journey. Our team will work alongside you to transform your legacy applications and systems into cloud-native applications that reduce time, cost and operational inefficiencies, while maintaining security, resilience and compliance. We’ll work alongside you to plan and execute your modernisation process by using an approach that involves measured, incremental steps. With our support, you can gradually increase the cloud maturity of your platforms and systems, the automation in your software development lifecycle (SDLC) and the knowledge and ways of working within your teams..
Contact UsWe start by rapidly mapping out your applications and systems, identifying the underlying technologies and dependencies your applications are using. This helps us to draw a picture of how your technology works, marking out areas of complexity and identifying where we can make “quick wins”..
Our team assists you in reenigineering a legacy setup to make the most out of your core business systems. We plot these on a quadrant map to measure the business value of modernising them alongside the technical effort of doing so. This helps us identify and agree on which legacy applications we can move forward with.
Leverage and extend the current software features by encapsulating its data and functions, making them accessible as services via a REST API. As appropriate we will move a set of legacy funcionality to a cloud platform. This is known as re-platforming.
The cloud maturity of re-platformed applications improves and larger, more complex apps are transformed. We’ll also address more complex, non-functional requirements, such as performance, security and compliance.
We will work to ensure that even the most complex business logic of your modernised application behaves exactly as intended by testing all legacy transformation aspects (re-engingeering, data migration and user experience).
We will support and train your teams to use the new cloud-native approach, so that they can become self-sufficient, and deliver software products using a cloud-native approach.