How to transform legacy software in to up-to-date software.
You have to follow these steps, I will explain the steps later:
Evaluate the state of the current software
Improve the Understanding of the software
Generate missing documentation and charts
Improve logs and error messages
Use better names in the code
Simple refactoring
Simple test improvements
Managing the expectation of the lower management
Building the test fence and closing the gaps: encase the code with test
Refactoring as long as you need it to achieve your view of up-to-date software
Well, lets look into some of steps above.
Point 1: Evaluate the state of the current software means talk with customers, testers, developers with every body that has a stake in the software. Analyze the errors related with the software. Analyze the reasons for the errors. What are the risks. These five point gives you an raw overview and scope.
Point 2: Improve the understanding of the software means change the software to improve the understanding without changing the programming logic.
Point 3: Manage the expectations of your management. This is important because managers are often no programmers. It’s hard for them to understand why it is so important to transform the legacy code into maintainable code. It’s important that every body understand that you have tp spend some time now to save a lot off time in the future. It should be clear that if you don’t transform the software then you stuck in the future and the software is dead.
Point 4: Test are part of the product. Software without test are not software. Legacy software has often bad, useless and sometimes misleading test. Remove them makes the following refactorings much easier. But fence the software with test and close all gaps. This tests are the cornerstone of your software transformation. The test specifies the the behavior of the software.
Point 5: Just do it. Now you have the knowledge, the support of the management and the tests. Let’s do the refactorings.
No comments:
Post a Comment