How would you maintain the legacy applications that:
Has no unit tests have big methods
with a lot of duplicated logic have
- have No separation of concern
- have a lot of quick hacks and hard coded strings
- have Outdated and wrong documentation
- 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.
???