I have done much work on legacy applications including tweaks, research, and full redesigns.
Legacy applications present many different challenges than working on entirely new applications do. Designing for old software can be very frustrating at times, but you are often able to have a very direct effect on users, especially if the install base is large. This puts a much larger burden on the designer to make sure the changes being made do not cause undue problems for users who are used to the previous way of doing things.
I have run into many situation in enterprise UX design that require me to refine workflows with minimal impact to dev time. This usually means proposing a solution to the problem presented and being willing to compromise where needed to come to the final solution.
Here's one example of adding some functionality to an Absence Management application for school districts.
Research & Testing
Often the most difficult part of working on legacy applications is gathering the information you need to make the best decisions.
For instance, the following screen was added after discovering we were changing information behind the scenes without telling users. This was causing problems for users, so we decided to design some insight into the process.
It's not often possible to do full redesigns on many enterprise legacy applications, so when I am able to, I am usually ecstatic. Or I start out that way until I find out that the dev team has about 2 weeks free to work on it, and it's also lowest on the priority list. Joking aside, redesigns are not always the correct answer, but when they happen, the results can be very effective. Take a look at my case study on redesigning pipelines for an Applicant Tracking application to see a redesign of part of a legacy application.