Eu tenho uma tarde para exaltar os benefícios do .NET sobre VB6 ... o que eu digo? [fechadas]

9

Minha empresa é uma pequena empresa de engenharia de vinte homens. Toda a programação de aplicativos aqui é feita no VB6 por duas pessoas, que aprenderam a si mesmas o VB6 com experiência em montagem enquanto trabalhavam aqui nos últimos 25 anos ou mais.

Como resultado, o código VB6 é repleto de odores horríveis, como toneladas de variáveis ​​com tipos estritos , funções terrivelmente longas, centenas de variáveis ​​globais públicas (algumas das quais são preferidas em contornar argumentos e retornar valores) e não um único objeto classe. A refatoração é quase impossível, e quaisquer alterações exigem muita pesquisa no código, e uma vez feitas, sempre parecem introduzir mais furos.

Meu chefe está percebendo que o VB6 é uma tecnologia morta e está disposto a ouvir meus pedidos de mudança para o .NET para um novo desenvolvimento. Estamos avançando para o .NET, mas ele vê isso como uma maneira de manter a compatibilidade com os sistemas operacionais Windows mais recentes, não como uma maneira de escrever um código melhor.

Como posso explicar melhor os benefícios da linguagem .NET sobre o VB6, além da mera atualização? O que posso dizer para enfatizar melhor que a mudança para o .NET é uma boa mudança, mas também que significa que nosso atual paradigma de programação também deve começar a mudar? Assim que meu chefe souber que o Visual Basic .NET se parece com o VB6, sei que seu primeiro instinto será simplesmente converter nossa antiga bagunça de código em .NET.

Entendo que será impossível mudar a mentalidade de qualquer pessoa em uma única tarde, mas como posso ao menos convencer meu chefe de assembléia que coisas como variáveis ​​fortemente tipadas, classes personalizadas e campos privados não são uma perda total de tempo e energia?

dlras2
fonte
4
Desenvolvedores VB6 são uma raça moribunda? Tente recrutar desenvolvedores .NET e VB6. Veja quantos currículos você recebe para cada um. O fato de que depois que os dois temporizadores antigos se aposentarem, não haverá substituição (ou melhor, substituição muito cara ) deve ser argumento suficiente.
Oded
3
Eu aprecio que ele possa tentar , mas a maioria dos desenvolvedores que se prezam fica fora de um idioma morto. Não tenho certeza de quando a MS deixará de oferecer suporte ao VB6, mas está ficando cada vez mais difícil encontrar recursos (e o fim da vida útil do produto é outro argumento contra o VB6). Não sei ao certo quanto isso ajudará, mas estude: msdn.microsoft.com/en-us/vstudio/ms788708.aspx - 2008 foi o fim da vida útil do IDE. E eu gosto dos "Acordos de suporte personalizado podem estar disponíveis na Microsoft" - a que taxa, eu me pergunto ...
Enviado
11
Infelizmente, nenhum desses argumentos realmente toca no fato de que o VB.NET é utilizável como substituto do VB6, variáveis ​​públicas globais e tudo. Depois de usar o .NET , como usamos todos os seus benefícios?
Dlras2 16/05
11
Talvez explique por exemplos. Existe algum problema difícil de resolver no VB6 que seria muito mais fácil de resolver no VB .NET? Você poderia escolher alguns exemplos da sua base de código e mostrar como eles podem ser limpos em um código melhor no .NET que não seria possível com os recursos do VB6?
FrustratedWithFormsDesigner
11
@DanRasmussen O VB.NET não pôde importar os projetos VB6 corretamente (corrigido ainda?). Não é trivial atualizar.

Respostas:

16

Resposta curta: Não há nada que você possa fazer para mudar de idéia com base nos critérios listados na pergunta, que são todos técnicos . Isso é o equivalente a um debate religioso . O caminho mais rápido para o fracasso é apresentar um argumento que não é do ponto de vista do público, neste caso, os empresários .

Resposta mais longa: A mudança nos negócios é motivada por uma coisa e apenas uma coisa. Lucro para a linha de fundo.

... como posso pelo menos convencer meu chefe de assembléia que coisas como variáveis ​​fortemente tipadas, classes personalizadas e campos particulares não são um total desperdício de tempo e energia?

Eles não só podem ser um desperdício de tempo e energia, mas o mais importante é que eles custam dinheiro ! Você deve ser capaz de mostrar quantitativamente que suas sugestões levarão a um lucro substancial ao longo do tempo. Apenas afirmar que o código limpo é "melhor" não é suficiente, porque o código limpo custa muito mais para produzir.

Se você conseguir articular como o custo do uso da tecnologia moderna levará ($COST + X) * TIME = $PROFIT, onde Xexiste um número positivo não trivial e TIMEé relativamente curto, é possível criar um cenário atraente.

Outra maneira de calcular o ROI (retorno do investimento)

Fórmula de ROI

Se esse ROI / ROR for um número trivial, principalmente por um longo período, você também não terá muito caso de negócios.

Como sua empresa realmente ganha dinheiro?

quantas linhas de código? quantos clientes? quanta receita por ano esse software produz? a receita é principalmente contratos de suporte? ou novas licenças? o mercado-alvo é estável? Expandindo? contratação? o software é um líder de perda para outro produto muito mais rentável?

É difícil para um bom homem de negócios ignorar o dinheiro que está sobre a mesa.

Claro que você deve poder fazer backup de suas declarações com fatos concretos. Isso significa que você precisa fornecer números reais que mostram que realmente entende o negócio real e não apenas detalhes técnicos acadêmicos.

Não apenas os profissionais

Fornecer também uma análise de risco detalhada e quais seriam esses riscos $COSTse eles acontecessem ajudaria a convencê-los de que você tem um caso realista e não está apenas reclamando que não deseja mais usar o VB6.

Ensinando truques para cães velhos

... O que posso dizer para enfatizar melhor que a mudança para o .NET é uma boa mudança se e somente se nosso paradigma de programação atual também começar a mudar? ...

Mudar ou não Mudar o paradigma de programação para ser o mais idiomático possível da nova tecnologia faz parte da análise de risco. Mas esse é um argumento separado somente depois que você provar que há muito dinheiro a ser feito com uma alteração em primeiro lugar.

Pessoas de negócios tendem a ouvir casos de negócios, assim como pessoas técnicas tendem a ouvir casos técnicos. Todos os seus casos em sua pergunta estão defendendo méritos técnicos que são acadêmicos na melhor das hipóteses em sua situação.

Predição

Estou fazendo algumas suposições aqui. Aplicativo VB6, pequena loja, poucos desenvolvedores, 2 proprietários / desenvolvedores de empresas mais velhos estão apontando para um aplicativo de nicho de mercado que provavelmente está maduro (bugs e soluções alternativas são conhecidas), apresentam recursos completos e relativamente estáveis, independentemente da "bagunça" é a base de código. Isso me leva a acreditar que a pequena base de usuários também não está crescendo drasticamente ano após ano, o que me leva à seguinte conclusão.

Que realmente não haverá nenhuma razão comercial convincente para mudar de direção técnica com este aplicativo. E a transferência para o VB.Net também é uma perda de tempo, porque você terá a bagunça, mas agora com mais, e 2/3 da equipe de desenvolvimento não se dedica a aprender algo novo. Boa sorte.

Glorfindel
fonte
2
infelizmente, o custo de reescrita (mais treinamento e mais conhecimentos) geralmente supera o custo de manter o aplicativo em execução, pelo menos a curto e médio prazo. A longo prazo, no entanto, você corre o risco de que sua reescrita precise ser reescrita em $ next_new_technology.
Gbjbaanb
4
+1 debate religioso. Se o OP quiser trabalhar no .NET, ele deve conseguir um emprego em uma loja do .NET; Eu diria que mudar do VB6 para o .NET nesta empresa é um grande risco com benefício questionável.
Kirk Broadhurst
Ótima resposta, exceto que você examinou a parte dele sobre "A refatoração é quase impossível, e quaisquer alterações exigem muita pesquisa no código, e uma vez feitas, sempre parecem introduzir mais buracos". É a última declaração que tem valor para os negócios. Demonstrar que eles são incapazes de alterar a base de código sem custar significativamente o dinheiro da empresa é um argumento muito válido, de acordo com a sua resposta. Obviamente, as métricas precisam estar lá para fazer backup dessa declaração.
@ GlenH7 pessoalmente Acho que o que você cita é uma retórica e uma opinião pessoal dramática, porque o OP não mostra nenhuma preocupação por outra coisa senão forçar sua opinião e agenda pessoal. Minha resposta é propor que eles não estejam considerando qual seria o verdadeiro motivador da mudança e não é o que pensam ou consideram. Meu argumento é que mudanças incrementais a longo prazo que são "caras" sempre serão mais baratas do que o que elas estão propondo no mesmo período de tempo. Fazendo o que eles disseram e o que você cita em um argumento comercial insustentável.
Concordou que havia um certo grau de retórica na declaração. Algumas lojas (e não, geralmente não são as pequenas) rastreiam falhas / escapes, portanto é possível gerar métricas rígidas sobre os bugs. OTOH, a maioria das lojas não mantém essas informações e nada mais é do que um "pressentimento" que não conta muito em uma apresentação comercial.
11

Eu tenho um cliente cujo produto principal é escrito em VB6 e mantido por 3 pessoas. Eu vim para ajudá-los porque eles tinham um parceiro que queria que eles ligassem para um serviço da web. Isso é muito difícil de executar no VB6, mas fácil no VB.NET ou C #, e eu escrevi para eles um assembly .NET que parecia no VB6 como um componente COM para que eles pudessem chamá-lo. Então eles precisavam oferecer um serviço da web para alguém. Eles queriam escrever um pequeno utilitário autônomo e seria necessário criptografar e descriptografar algumas informações e analisar alguns XML. Eu os ensinei a escrever isso no .NET. Nos últimos cinco anos, mais e mais de seu código está no .NET, embora o principal produto não tenha diminuído. Há partes dele que eles odeiam - todos os aplicativos os têm - e onde eles podem retirá-las (agora começa a diminuir) e colocá-las em serviços ou utilitários separados. O restante será convertido holus-bolus para .NET. Sim, nomes de variáveis ​​incorretos e tudo - na minha opinião, existem muitos benefícios em mudar para o .NET, mesmo que eles não mudem seu paradigma de programação atual. Esses incluem:

  • você pode usar o Visual Studio mais recente com melhor pesquisa, melhor Intellisense, compilações mais rápidas etc.
  • você pode integrar-se a um sistema de controle de origem decente (ou seja, não VSS)
  • existem bibliotecas que acompanham o .NET gratuitamente que simplificam o trabalho de criptografia, análise de XML, processamento de imagens e muito mais
  • a internacionalização e a localização são muito mais fáceis em um projeto .NET (isso, com uma consulta de um grande cliente canadense que precisaria das versões em francês e inglês, pode ter contribuído para o meu cliente)
  • bibliotecas de controle de baixo custo (Telerik, Infragistics, ComponentOne etc) oferecem incríveis recursos quase sem custo
  • será muito mais fácil encontrar ajuda temporária, como um estudante de verão, em circunstâncias em que o tempo gasto para ensiná-los VB6 não vale a pena (não discuta como você se sente ao ensiná-lo a uma nova contratação em período integral)
  • seu aplicativo reconhecerá o UAC, portanto, ele funcionará melhor no Vista, 7 e 8. Ele não precisará ser executado no modo de compatibilidade com o XP

Há mais, mas certamente isso é suficiente?

A questão dos paradigmas de programação, digitação forte, o compilador é seu amigo, o encapsulamento é seu amigo e assim por diante está em minha mente (e eu sou pago para ter essas opiniões) completamente separados. Se você quiser morrer naquela colina, vá em frente, mas você estará morrendo com uma cópia do VB6 aberta.

Kate Gregory
fonte
O que você quer dizer com seu parágrafo final?
Dlras2
6
Que "mudar para o .NET" e "vamos todos programar de uma maneira diferente" são diferentes e que, se você optar por lutar contra o segundo, não é apenas provável que tenha sucesso, mas certamente não o fará. NET com essa abordagem. Quero dizer, eu concordo que eles devam programar uma maneira diferente. Mas o melhor caminho para o .NET é "como o que você tem agora, mas com calda de chocolate e granulado!"
Kate Gregory
Entendo o benefício de abordá-los como problemas diferentes, mas o problema é que abordá-los como problemas separados simplesmente garante programas igualmente não-sustentáveis, apenas no .NET.
Dlras2
11
Você terá aplicativos melhores (controles mais agradáveis, mais funcionalidade) e algum processo melhor (esgueirar-se em um controle de origem e talvez até rastreamento de itens de trabalho) junto com desenvolvedores que agora veem que isso pode ser feito de maneira diferente e que vale a pena mudar. por causa desses grandes benefícios. Eles serão muito mais receptivos à próxima coisa que você pedir a eles. E "não-sustentável" não é binário. O código não será ótimo, mas a situação ainda será melhor do que era. Você também terá credibilidade comprovada.
22812 Kate
8

Comecei com um projeto VB6 há alguns anos (sistema ERP personalizado da empresa) e lentamente o migrei para o .NET. Está em algum lugar pela metade.

Antes de tudo, converter do VB6 para o VB.Net é quase sempre uma péssima idéia (e eu fiz muita pesquisa sobre isso). Há apenas muito diferente. Além disso, se o seu chefe pensa que o VB.Net é "igual ao VB6", ele está completamente enganado e você precisa mudar sua perspectiva rapidamente.

Minha estratégia era manter as duas bases de código separadas e mantê-las separadamente e depois mover lentamente módulos inteiros do VB6 para o .NET, mas somente quando houvesse uma mudança significativa prestes a acontecer naquele módulo, para que pudéssemos amortizar parte do custo. Mesmo assim, reescrever é uma tarefa muito cara e arriscada.

Existem duas maneiras de integrar o VB6 existente ao novo código .NET (e você provavelmente fará isso por muito tempo, para se acostumar com a ideia). A primeira maneira que fiz foi começar a escrever pequenos módulos no .NET e depois fazer com que o aplicativo principal do VB6 iniciasse o executável .NET passando alguns parâmetros da linha de comando. Isso funcionou, mas esteja avisado de que o .NET tem um tempo de inicialização de 4 a 10 segundos; portanto, você está limitado no que pode fazer dessa maneira.

Depois que começou a ficar realmente doloroso, inverti a estratégia e usei o método deste artigo do CodeProject para exibir os formulários VB6 existentes no meu aplicativo .NET principal. Depois que segui essa rota, consegui incorrer em apenas uma ocorrência de inicialização do .NET e use o ClickOnce para implantação, o que foi uma dádiva de Deus em comparação com a maneira como o aplicativo VB6 foi implantado anteriormente.

Dito isto, aqui estão as vantagens que encontro no .NET sobre VB6:

  • Melhores estruturas de persistência (NHibernate, EntityFramework, Linq2Sql etc.)
  • LINQ (não posso enfatizar o suficiente como isso é importante)
  • Genéricos!
  • Sintaxe Lambda (resolve toda uma classe de problemas como "buraco no meio" elegantemente)
  • Da mesma forma Actione Functipos
  • Reflexão (algo que você raramente usa, mas quando o faz é enorme)
  • Suporte muito melhor ao teste de unidade (é claro, duvido que você convença seus outros funcionários a fazer o teste de unidade, mas você deve)
  • ReSharper (e outras ferramentas de refatoração / criação de perfil) (10x melhor que o MZ-Tools)
  • Projetos ClickOnce e / ou Setup / Installer
  • Projetos de serviço do Windows
  • Suporte verdadeiro orientado a objetos (o VB6 é baseado em COM e é muito ruim neste departamento).
  • Digitação estática
  • Assado no suporte XML
  • WPF e Windows Forms (os controles do VB6 são muito limitantes)
  • WCF
  • Muito mais código de exemplo online
  • Exceções (o tratamento de erros do VB6 é absolutamente terrível em comparação)
  • Integração de controle de origem do Visual Studio
  • Decimal type (VB6 nunca teve um tipo decimal de primeira classe, mesmo que possua CDec)
  • Suporte de primeira classe para Guid
  • Suporte de primeira classe para números inteiros de 64 bits
  • Melhores bibliotecas de coleções
  • ReportViewer
  • Multithreading, biblioteca paralela de tarefas

Desvantagens do VB6:

  • Você notará uma performance. Pode não ser o suficiente para se preocupar, mas confie em mim, você notará. Afinal, o VB6 compila para o código nativo.

Para ser justo, aqui estão algumas desvantagens de manter uma solução combinada do VB6 / .NET:

  • Manutenção de duas camadas de acesso a dados (assumindo que seu aplicativo VB6 realmente tenha uma)
  • Cabeamento extra para expor serviços / formulários / etc. de um lado para o outro
  • O dobro da complexidade / arquitetura para manter em mente

Agora, como você sugeriu, você realmente deve reconstruir sua arquitetura a partir do zero, se começar a escrever código no .NET. No entanto, parece que nenhuma das pessoas da sua empresa está familiarizada com o mundo de programação .NET e / ou Java, que é de onde vêm muitos padrões e práticas comuns às estruturas de grandes empresas.

Se você pegar alguém que está acostumado a arrastar um botão em um formulário, clicar duas vezes nele e escrever algumas strings SQL diretamente no manipulador de eventos click, e que estiver trabalhando para eles, é muito difícil fazer com que eles vejam uma vantagem em seguir o SOLID princípios de design. Por outro lado, se você concordar e decidir que todo o novo código será coberto 90% ou mais por testes de unidade automatizados, perceberá rapidamente que é realmente difícil de fazer, a menos que adote os princípios de design do SOLID.

Então você precisa dar uma boa olhada na realidade da situação. No meu caso, eu era o único programador e estava determinado a fazer com que todo o novo código fosse testado por unidade, embora não tivesse experiência com ele. Não posso enfatizar o suficiente o quanto isso impactou negativamente o que eu poderia fazer na primeira semana, mesmo nos primeiros meses. Ainda assim, eu estava determinado a fazê-lo e recebi o apoio da gerência. A maioria das pessoas não tem esse luxo. Agora tenho muito código e acabei de concluir uma grande refatoração quase sem problemas.

Realisticamente, você não fará testes de unidade, o que significa que é mais difícil justificar princípios como injeção de dependência para seus companheiros de equipe. Você precisará vender o .NET por outros méritos além dos benefícios arquitetônicos. Você precisa se concentrar em um melhor suporte de biblioteca e melhores ferramentas. Essa é a única coisa que ressoa. Eu sugeriria o seguinte em sua demonstração:

  • Crie um projeto Windows Forms (fique longe do WPF e do xaml - é muito surpreendente)
  • Conecte-se a um banco de dados SQL (algum banco de dados de teste)
  • Use Linq2Sql ou EntityFramework para gerar um modelo de dados para ele
  • Crie uma classe de repositório que tenha um método para retornar alguma lista de entidades
  • Escreva uma consulta nesse método usando linq, aponte o intellisense
  • Saliente que o linq funciona em todos os objetos, não apenas nas entidades
  • Mostre que se você alterar o banco de dados e gerar novamente o modelo, receberá um erro de compilação
  • Solte um DataGridViewna janela principal
  • Demonstrar ligação de dados preenchendo a grade com as entidades do repositório
  • Aponte todas as coisas legais sobre a grade que são muito melhores que o VB6
  • Crie um arquivo .rdlc (relatório)
  • Faça um relatório simples dentro do Visual Studio
  • Solte um visualizador de relatórios na janela e renderize o relatório dentro do visualizador de relatórios
  • (Obviamente, você precisa do ReportViewer instalado e praticou tudo isso primeiro)
  • Crie um problema "buraco no meio" e demonstre resolvê-lo criando um método que usa a Actioncomo parâmetro. Faça isso primeiro passando outro método como parâmetro e depois surpreenda-se passando um delegado anônimo usando a sintaxe lambda
  • Demonstre os genéricos usando as classes List<T>e Dictionary<T1,T2>collection e mostre como ele cria código fortemente tipado (o VB6 tem coisas semelhantes, mas é digitado dinamicamente)
  • Escreva um foreachloop que é embaraçosamente paralelo, use System.Diagnostics.Stopwatchpara medir o tempo necessário para executar e use a biblioteca paralela de tarefas para transformar o loop em um Parallel.Foreachloop e demonstrar a aceleração, supondo que você esteja em uma máquina com vários núcleos.
  • Demonstrar a capacidade de adicionar um manipulador de exceção global (isso é algo que o VB6 não pode fazer)

Isso é o que eu faria.

Scott Whitlock
fonte
1

Parece-me que esta é uma situação em que você precisará colocar seu chapéu de político em vez de seu de programação. Você deve estar muito atento a como argumentar e a não antagonizar seu público. Certifique-se de mostrar as vantagens do .Net em vez de mostrar as desvantagens do VB. Argumentar as desvantagens do VB colocará seus colegas de trabalho em uma posição em que eles precisam defender suas decisões e forçá-los a admitir que um idioma no qual eles investem pesado é um idioma ruim. Em vez disso, mostre a eles como a mudança para o .NET aumentará as ferramentas disponíveis e facilitará sua vida.

Minha maneira ideal de argumentar seria encontrar uma tarefa ou código que todo mundo está reclamando constantemente e corrigi-lo usando o .NET. Não estou especialmente familiarizado com o VB, mas aqui está uma pequena lista de tarefas irritantes que provavelmente seriam facilitadas usando o .NET em vez do VB.

  • Manipulação de String
  • Análise XML
  • Pesquisa / correspondência / Regex
  • Matemática (os idiomas mais novos geralmente têm bibliotecas de matemática mais rápidas e abrangentes)
  • Construção / design da GUI

Escolha qualquer uma das tarefas acima, ou alguma outra tarefa específica para os projetos nos quais você normalmente trabalha, e sente-se com elas e escreva algum código, a partir do zero, que lida com o problema de maneira rápida e fácil. Na verdade, mostrar o processo de escrita do código mostrará as ferramentas que as versões mais recentes do VS trazem para a mesa e fornecerá evidências de que a mudança para o .NET não tornará a vida de ninguém mais difícil.

Indo para isso, você absolutamente, positivamente deve fazer sua lição de casa. Se você não souber como as ferramentas funcionam, ou possui um código que não funciona corretamente, nunca poderá conquistá-las para o seu lado.

TwentyMiles
fonte
0

A primeira coisa que você diz é que o VB6 não é mais suportado pela Microsoft. Embora você possa mantê-lo funcionando, você precisa entender que suas opções a longo prazo são nulas. Eu nem sei se os aplicativos VB6 serão executados no Windows8 ou se o próprio IDE será executado no Win8.

Portanto, você precisa efetivamente reescrever eventualmente; se esse for o caso, é melhor começar agora ou mais tarde, dando a você tempo suficiente para descobrir qual nova tecnologia você deseja usar (enquanto o VB.NET parece ideal, esta é sua oportunidade de experimentar algo mais avançado, como fazer o aplicativo funcionar em iPads).

No curto prazo, você pode atenuar um pouco o problema, introduzindo novas seções como componentes COM para o aplicativo existente consumir; espero que esses componentes permaneçam quando ocorrer a reescrita inevitável.

Eu não me incomodaria com argumentos técnicos sobre por que o .NET é melhor que o VB6. Você terá um argumento perdedor lá, a tecnologia em si nunca resolve problemas. Depende de você como aplicar essa tecnologia e, se o aplicativo VB6 estiver resolvendo coisas para você, não há argumento para responder. Você pode falar sobre a facilidade de manutenção ou a disponibilidade de uma equipe experiente, mas, depois de fazer isso, admite que sua equipe existente não tem conhecimento da nova tecnologia e precisará ser treinada e, em seguida, leva algum tempo para se atualizar totalmente. com isso. Você também terá que responder às perguntas sobre como muitas reescritas acabam piores que o projeto original (algumas vezes devido à falta de conhecimento, outras devido a designs muito grandes).

gbjbaanb
fonte
A MS oferecerá suporte ao VB6 em computadores Intel / AMD com Windows 8. Você não pode escrever aplicativos Metro no VB6, mas também não pode escrever aplicativos Metro no .NET. Ambos são criados no Win32. Pelo menos o código escrito em C # para .NET deve ser mais fácil de transportar para o WinRT para rodar no Metro, mas não conte com isso como uma simples reconstrução.
Scott Whitlock
0

Dê a ele a analogia "carro velho, carro novo vs carro":

Sim, ambos provavelmente o levarão ao seu destino. No entanto, o novo carro não precisa de manivela , não precisa de afogador , não precisa de mapas , as rodas não travam quando você freia bruscamente e, finalmente, é muito mais provável que você se afaste de um acidente de carro .

  • VB6 é legado, é o novo COBOL
  • .NET tem melhores estruturas
  • O .NET possui ferramentas melhores
  • .NET tem melhor desempenho
  • .NET tem melhor IDE
  • .NET tem melhor suporte a idiomas
  • .NET possui melhores recursos
  • .NET tem melhor suporte da comunidade
Noite escura
fonte
7
As analogias dos carros geralmente falham, e a sua não é diferente. Uma coisa que um carro velho tem que um carro novo não é é pago! Se você possuísse um táxi e ele fosse pago e estivesse gerando mais dinheiro do que custaria para manter, e um carro novo custaria mais dinheiro para pagar do que fabricado, o que você preferiria ter como pessoa de negócios?
2
@JarrodRoberson É pago, mas eles tendem a frear com mais frequência, e depois de um tempo não funcionará mais. As analogias com carros são ótimas. :)
Steven Jeuris
11
Na verdade, essa analogia do carro é boa. O chefe do OP tem esse táxi e o OP deve considerar isso ao se aproximar dele. Uma troca completa não pode acontecer ao longo de um dia, mas vamos começar a mover bits, trocar de peça, um após o outro.
ZJR
11
O proprietário da empresa projetou e construiu ele mesmo. Provavelmente já se pagou muitas vezes, e a manutenção é gratuita para todos os efeitos, uma vez que existem apenas três desenvolvedores e ele é um deles. Como eu disse, as analogias com os carros são terríveis, especialmente essa e você faz o meu ponto de vista com seus argumentos que são completamente fora dos padrões dos negócios. Um novo software, na melhor das hipóteses, fará dele um lucro muito menor ano a ano, na melhor das hipóteses, e perderá dinheiro para ele por um período indeterminado de tempo.
2
Os aplicativos não têm entropia de desgaste, como os itens físicos, eles também não se atrofiam naturalmente; portanto, não se desgastam , nem quebram independentemente do uso, de modo que analogias com itens físicos, especialmente carros, não se aplicam. Um aplicativo será executado para sempre, desde que seja útil. Uma empresa em que trabalhei há alguns anos tinha uma máquina antiga baseada no MS-DOS que controlava os leitores de cartões nas portas. A idéia de que o software se desgasta é tola. Dito isto, um bom plano de fim de vida deve sempre estar em vigor. Mesmo que esse plano seja nunca reescrever o software.
0

Primeiro, acho que você deve mudar a pergunta (não na stackexchange, mas dentro da sua empresa). Não é tanto por que .Net é melhor que o VB6, mas mais como o VB6 não é mais suportado , é hora de seguir em frente, mas para quê. Pergunte às partes interessadas o que deve ser essa 'nova' tecnologia? Talvez não seja .Net.

Mas parece que você precisa mudar para uma nova tecnologia E implementar alguns bons padrões e práticas de programação. A resposta para a segunda parte é muito mais difícil. Você provavelmente precisará fazer isso em uma pequena seção do aplicativo e provar que vale a pena, ou seja, é mais estável, mais fácil de manter, etc.

fader escuro
fonte
-1

Diga a seus chefes para escrever dois anúncios de procura. Um para desenvolvedores de C #. Um para especialistas em VB6. Coloque-os lá fora. Compare os resultados.

Erik Reppen
fonte