Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How would you maintain legacy applications [closed]

Tags:

legacy

How would you maintain the legacy applications that:

  1. Has no unit tests have big methods

  2. with a lot of duplicated logic have

  3. have No separation of concern
  4. have a lot of quick hacks and hard coded strings
  5. have Outdated and wrong documentation
  6. Requirements are not properly documented! This has actually resulted in disputes between the testers, developers and the clients in the past. Of course there are some non-functional requirements such as shouldn't be slow, don't clash and other business logics that are known to the application users. But beyond the most common-sense scenario and the most common-sense business workflow, there is little guidance on what should be ( or not) done.

???

like image 607
Graviton Avatar asked Oct 31 '08 14:10

Graviton


People also ask

Why is it important to maintain legacy software systems?

A legacy system not only leaves a company behind with old technology, it can also seriously damage a company's reputation by putting data at risk of a breach. At some point, a vendor no longer supports the legacy system or provides much needed updates, opening the legacy system up to a security risk.


2 Answers

You need the book Working Effectively with Legacy Code by Michael C. Feathers.

alt text

like image 66
Ferruccio Avatar answered Oct 15 '22 05:10

Ferruccio


Write tests as soon as you can. Preferably against the requirements (if they exist). Start with functional tests. Refactor in small chunks. Anytime you touch code, leave it cleaner and better than when you started.

like image 31
Paul Croarkin Avatar answered Oct 15 '22 05:10

Paul Croarkin