It will earn the company F million pounds, over t years at a cost of x dev-days work
O que está ignorando os custos de manutenção, os custos de suporte, o custo de vendas / marketing e faz muitas suposições sobre como o recurso será usado no mercado.
Mas seja o que for; sua pergunta é clara o suficiente sobre o que você está procurando:
How can I make a business case for refactoring?
A principal coisa a perceber é que o tempo é igual a dinheiro. Você pode ir direto para "5 desenvolvedores 2 semanas = 80 horas * 5 desenvolvedores * US $ 50 / hora - > US $ 20.000" e isso faz sentido para as pessoas de negócios. Pessoas de negócios inteligentes notarão que esses 5 desenvolvedores estão sendo pagos de qualquer forma, com os quais você concorda que não está gastando / economizando os $ 20.000 - está usando os $ 20.000 da maneira mais lucrativa. De qualquer forma, com a lista.
- Eficiência - Presumivelmente, você pode fazer mais coisas com o C # do que com o VB6. Melhores ferramentas, melhores bibliotecas, o que for. Novas tecnologias tendem a ser melhores do que as antigas. Se você pode fazer coisas em menos tempo, isso significa que você está economizando o dinheiro da empresa.
- Sobrecarga - A codificação não é o único custo do software. Considere o que acontece quando o Windows 2020 é lançado. Quanto tempo e esforço você vai gastar para conseguir que o aplicativo VB6 funcione? Quanto mais tempo e esforço é isso do que um aplicativo C #? Isso está salvando o dinheiro da sua empresa.
- Qualidade - Presumivelmente, você pode fazer as coisas com maior qualidade em C # do que em VB6 (ou com uma arquitetura mais limpa, ou qualquer outra coisa que seu alvo de refatoração seja). Maior qualidade significa menos bugs. Menos bugs significam menos custo para corrigir esses bugs, menos custos de suporte ao cliente para solucionar esses problemas, menos perda de clientes devido a problemas de qualidade, aumento de vendas devido a uma reputação de qualidade ... todo o dinheiro da sua empresa.
- RH Savings - Vamos encarar os fatos: ninguém quer trabalhar com esse aplicativo VB6 de merda. Isso significa que mais pessoas deixarão a empresa, levando tempo e dinheiro para substituí-las. Isso significa que leva mais tempo e dinheiro para contratar novos funcionários. Pior de tudo, significa que você terá desenvolvedores que estão totalmente comprometidos com o suicídio de carreira trabalhando com esse aplicativo VB6. Esses desenvolvedores, por sua vez, apressam a espiral da morte em questões de qualidade. Reduzir o volume de negócios e o tempo de contratação economiza o dinheiro da sua empresa. Evitar que desenvolvedores complacentes e de baixa qualidade economizem sua empresa.
- Moral - Da mesma forma, os programadores que já estão lá odeiam trabalhar no VB6. Eles farão isso, e podem até fazer bem. Mas é uma merda. Talvez não para todos, mas certamente para alguns. Isso significa mais tempo gasto navegando na web para recuperar a motivação. Isso significa almoços mais longos. Isso significa menos fazer as coisas enquanto seus programadores demoram mais para se recuperar do trabalho ruim.
- Capacidade - Isso é menos aplicável a refatores orientados por tecnologia, mas se aplica a refatoradores de arquitetura. Certos problemas de código impedem ativamente que você ofereça o excelente recurso X para ganhar muito dinheiro. Talvez você não possa escalar. Talvez você não consiga pegar os dados para fazer informática legal. Talvez o código seja um ninho tão grande que é proibitivamente difícil fazer o trabalho. Tanto faz. Às vezes você está nesse ponto, às vezes você está dirigindo direto para esse ponto. É difícil traduzir para o mundo dos negócios, mas se você puder, o "esse problema está nos impedindo de aproveitar as oportunidades X, Y e Z" pode ser poderoso.
Em suma, tudo se resume a "essas coisas nos ajudarão a fazer melhor o nosso trabalho; se fizermos melhor nosso trabalho, poderemos economizar mais dinheiro".