Infelizmente às vezes só nos resta se contentar em trabalhar no código legado mesmo.
No caso da empresa em que trabalho, o cliente não quer trocar as máquinas para máquinas mais recentes, por isso temos que usar uma versão bem antiga do .NET (versão 2 e 3).
Além disso não quer depender de internet, daí salva os dados tudo em um monte de XML.
Essa é a justificativa que recebi. Já tentaram conversar e refatorar o código mas não deu muito certo.
Eu quando comecei tinha muito hype de novas tecnologias (.NET 8 chegou!), mas fui vendo que nas empresas não é assim que funciona. Só se eu trabalhar em consultoria e pegar algum projeto no início.
Agora, se quiser uma empresa mais sólida, o código legado é inevitável. E muitas vezes não podemos simplesmente migrar.
Uma outra empresa que trabalhei tinha um legado gigante. A solução que encontraram é ir criando vários pequenos sistemas diferentes que substituem uma parte desse legado. Me parece uma ótima estratégia. Porque caso o sistema novo dê algum problema, o legado ainda está lá para salvar.