Quais são as vantagens de desenvolver tecnologias desatualizadas? [fechadas]


28

Um pouco de fundo :

Estou trabalhando em uma grande empresa, usando o Windows XP e codificando Winforms no VB6 / VB.Net e algumas WebForms no VB.Net (código de manutenção de 95%). Eu tenho uma tela de 4: 3 19 ". Uma versão mais moderna do Windows não está acontecendo tão cedo, e nenhum trabalho greenfield é feito pelo que parece!

Não me disseram nada sobre isso quando entrei na empresa, fiquei enganado ao pensar que estaria trabalhando com tecnologias e estruturas muito mais atualizadas.

Tenho uma experiência muito mais atualizada em trabalhos anteriores, tanto com estruturas mais modernas quanto com outras linguagens de programação, e quando estou conversando com amigos de desenvolvedores de outras empresas, só ouço falar sobre como eles estão usando a estrutura mais recente do ASP MVC, ou Vagrant / Ruby on Rails / etc e estou recebendo os olhos verdes!

Eu poderia me arrumar com outro emprego rapidamente, mas sinto que deveria dar mais uma chance a esse.

A questão :

Estou tentando me convencer de que meu trabalho atual não é tão ruim assim. Então, quais são as vantagens desse tipo de papel? Existem vantagens em trabalhar com tecnologias desatualizadas? Talvez algumas técnicas que eu não aprendesse trabalhando com as mais modernas? Ou esse é o tipo de lugar onde as carreiras vão morrer, e eu deveria sair enquanto ainda tenho minha alma?


11
Você pode reformular o corpo da sua pergunta, para separar claramente a história pessoal da questão central.
DougM 14/01

2
Você pode fingir que está construindo foguetes ou trabalhando no controle de tráfego aéreo. Esses campos geralmente usam tecnologia realmente antiga, pois nesse ponto todos os bugs são corrigidos ou conhecidos. Mas mesmo engenheiros de controle de tráfego aéreo ou de foguetes não tocariam no VB6 com um bastão de 10 pés. :)
DXM

3
Seguro desemprego? ....
Robert Harvey

2
Eu costumava codificar em Delphi há mais de uma década. Eu gostei, era uma linguagem boa, melhor do que VB yardy yardy, mas não era assim que as coisas estavam indo. Eu pulei. Mas até hoje os empregos em Delphi continuam borbulhando e eles estão pagando um bom dinheiro! Dang it.
precisa saber é o seguinte

11
Embora eu admire o fato de você estar tentando tirar o melhor de uma situação ruim, não tente convencer-se de que seu trabalho atual não é tão ruim assim. Falando por experiência própria: ficar muito tempo em um emprego com tecnologia ultrapassada pode facilmente se transformar em um buraco que é realmente difícil de tirar do emprego. Pelo menos tente jogar com a tecnologia mais moderna ao lado, se possível.
Evicatos

Respostas:


26

tudo o que eu ouço é como eles estão usando o framework ASP MVC mais recente, ou Vagrant / Ruby on Rails / etc, e estou recebendo os olhos verdes!

Ah, mas lá estão eles brincando com seus brinquedos, e você está fazendo um trabalho real, usando uma ferramenta que faz o trabalho para obter uma solução.

É isso que você deve considerar - o software é frequentemente um caso amador, com pessoas pulando de uma nova tecnologia interessante para a próxima moda mais recente. Existem outros que a tratam como uma carreira muito mais profissional, onde as ferramentas não importam tanto quanto o produto ou solução que você cria.

Há lugares em que a tecnologia antiga precisa ser substituída por algo novo, mas geralmente são apenas atualizações, não substituições por atacado. Por exemplo, o VB6 é atualizado para o VB.NET, o Visual Studio 2002 é atualizado para o Visual Studio 2012. Quem entra em uma reescrita completa sempre acha que as coisas não são tão fantásticas com as novas ferramentas. (é por isso que Joel, entre outros, diz que a reescrita é sempre a resposta errada)

Portanto, concentre-se em realizar as coisas e atualize-o onde puder, devagar e com cuidado, onde isso fizer sentido - não porque você queira brincar com os brinquedos mais novos (que serão descartados em breve), e a última coisa que você deseja é manter um sistema escrito por pessoas que codificaram a tecnologia legal do ano passado )


11
O VB6 não foi mais atualizado para o VB.NET do que o DOS para o Windows NT. FWIW.
DougM 16/01

21

Há, de fato, vários benefícios para uma empresa ficar com tecnologias desatualizadas:

  1. Às vezes, coisas herdadas não funcionam com coisas novas

    Uma empresa pode ter investido uma grande quantia de dinheiro em sistemas que simplesmente não funcionam com idiomas ou sistemas operacionais mais recentes. Um exemplo clássico são muitos aplicativos da Web da intranet que são compatíveis apenas com o IE6 e IE6. A escolha entre aderir ao Windows XP + IE6 e jogar fora um sistema operacional e investir dinheiro no novo não é óbvia.

  2. Mudar para mudar não é uma escolha sábia

    Exemplo: muitos bancos ainda continuam mantendo aplicativos originalmente escritos em COBOL. Quando as coisas funcionam, por que uma empresa decide reescrevê-la em outro idioma, dado o custo de reescrever um grande sistema crítico de negócios, bem como o risco de errar, introduzindo um monte de novos bugs? (Um dos motivos é descrito abaixo)

  3. As licenças são caras

    Digamos que uma empresa tenha algumas centenas de desktops que usam o Windows XP. Eles querem migrar para o Windows 8. Qual é o custo de uma única licença do Windows 8 Enterprise? E se multiplicarmos esse custo pelo número de máquinas?

    Torna-se ainda pior para servidores. Uma licença única para Oracle ou Microsoft SQL Server custa entre US $ 30.000 e US $ 40.000. Se uma empresa possui, digamos, cinquenta servidores de banco de dados, ela se torna rapidamente muito cara mesmo com o licenciamento por volume.

    Na minha empresa, estamos presos ao Visual Studio 2010. Sofremos com seus inúmeros erros e sabemos que eles nunca serão resolvidos, pois a Microsoft abandonou esta versão. Mas US $ 13.000 (considerando que precisamos da versão Ultimate por causa de seus recursos exclusivos que não estão disponíveis em outras versões) são altos demais para que possamos atualizar para o Visual Studio 2013.

Dito isto, também existem desvantagens importantes.

  1. Coisas herdadas não atraem novos talentos

    Esse é um dos problemas das empresas que mantêm aplicativos COBOL: elas têm dificuldade em encontrar desenvolvedores baratos. Além disso, trabalhar em mainframes e escrever código COBOL não é algo atraente para pessoas criativas.

    Embora sejam uma boa opção para sistemas de backbone que precisam permanecer sólidos, esses sistemas e idiomas não se encaixam bem em produtos que exigem inovação constante.

  2. Velho não significa seguro

    Como reescrever um produto em um novo idioma pode introduzir novos bugs, manter os sistemas antigos que não são mais suportados também pode ser perigoso. Imagine que um bug seja encontrado no Windows 98, o que poderia comprometer todo o sistema: a Microsoft lançaria uma atualização para resolvê-lo?

  3. O legado é viral

    A incompatibilidade entre sistemas legados e sistemas mais recentes significa que, frequentemente, quando você adere a um produto, idioma ou infraestrutura antigos, não poderá atualizar em outro lugar. Um aplicativo de intranet antigo que funciona apenas no IE6 leva ao Windows XP em todas as áreas de trabalho, o que significa que você não pode migrar para uma nova versão do Active Directory, o que significa que você não pode usar novos aplicativos que exigem a versão mais recente do Active Directory e em breve.

  4. Produtividade

    Novas versões de produtos trazem novos recursos que, às vezes, aumentam a produtividade. Uma tarefa que levaria uma hora com o Visual Basic 6.0 poderia ser realizada em menos de uma hora com o Visual Studio 2013, porque o Visual Studio 2013 e o .NET Framework 4.5 trazem Intellisense aprimorado, Entity Framework e milhares de outras coisas que reduzem o código para escrever, aumente a velocidade de escrita do código e diminua o risco de introdução de erros.

    Se o exemplo não estiver claro o suficiente, aqui está outro. No Windows 3.1, os administradores de sistema configuravam todas as máquinas, uma a uma, manualmente (a menos que houvesse alguma automação da qual não conheço). Hoje, eles usariam o PXE e o Windows Assessment and Deployment Kit para implantar em minutos um novo sistema operacional e software em milhares de máquinas automaticamente.

    O uso de versões mais antigas pode simplesmente se tornar um custo proibitivo. Pode não ser óbvio para alguns usuários que estão felizes em usar o Windows 95, mas é muito mais óbvio para desenvolvedores, administradores de sistemas, designers, cientistas e outras pessoas que dependem fortemente do poder do hardware e aplicativos.


Use Linux e Eclipse ou MonoDevelop. Custo da licença: $ 0.
Demi

7

Há algumas vantagens em desenvolver com tecnologias desatualizadas, mas se elas superam ou não o custo que você sofre por perder a fluência com suas substituições e a dor de trabalhar com elas é uma escolha pessoal entre você e elas.

Posso pensar em três benefícios de trabalhar com tecnologia obsoleta substituída:

  1. Familiaridade com a própria tecnologia antiga

    As únicas tecnologias antigas ainda em uso são aquelas que alguém, em algum lugar, decidiu que é mais barato manter do que substituir. Ser capaz de listar a experiência de trabalho com essa tecnologia mais antiga pode, por si só, ajudá-lo a conseguir outro emprego trabalhando na mesma área. E à medida que mais e mais desenvolvedores avançam, o prêmio que você pode cobrar por trabalhar nesse tipo de coisa aumenta.

  2. A chance de praticar aprendendo algo novo

    Você não é realmente um programador se puder apenas programar em idiomas que alguém lhe ensinou. Ser capaz de adaptar suas técnicas e modelos à tecnologia mais antiga requer exatamente as mesmas habilidades que você precisaria para se adaptar à nova tecnologia.

  3. Compreensão mais profunda de por que eles foram substituídos

    É difícil explicar para um RH ou programa executivo não programador por que o VB.NET ou C # é superior ao VB6 se você não estiver familiarizado com a própria tecnologia. E se você não estiver totalmente familiarizado com o último, aprender o que eles substituíram pode ajudar a entender alguns dos motivos pelos quais as substituições foram escritas como eram.


Tudo dito acima, não há absolutamente nenhuma razão para uma empresa persistir na manutenção de qualquer aplicativo escrito em tecnologia que se tornou tão desatualizada.

Se ele puder ser deixado em paz até que o tempo de execução falhe devido a algum erro não documentado, isso é uma coisa - mas a cada hora que um desenvolvedor gasta em tecnologia antiga sem um plano de transição é uma dívida técnica que a empresa terá que pagar eventualmente.


9
Discordo de "não há absolutamente nenhuma razão pela qual uma empresa deva persistir na manutenção de qualquer aplicativo escrito em tecnologia que se tornou tão desatualizada". Se estiver fazendo com que a empresa ganhe mais dinheiro do que custa para manter, eles devem mantê-lo. Eles devem procurar substituí-lo por uma solução mais moderna, mas, embora esteja ganhando dinheiro e não possa ser facilmente substituído, deve ser mantido.
Stephen

Às vezes é verdade, mas se o software está "ganhando" dinheiro em vez de "economizar" dinheiro, alguém está prestando um desserviço a seus clientes.
DougM 15/01

O software pode economizar dinheiro para o cliente e para a empresa que o desenvolve. Nem tudo é uma aplicação interna. Heck, o software também pode ganhar dinheiro para o cliente também. Veja o Visual Studio. Ganha dinheiro tanto para o vendedor (Microsoft) quanto para o comprador (casas de software).
Stephen

Sim, foi por isso que eu disse assim. E, repetindo, se você está vendendo software construído em uma plataforma morta há dez anos, está prestando um desserviço a seus clientes.
DougM 15/01

11
Eu discordo. Como desenvolvedor, desejo sempre usar a tecnologia mais recente. Mas, do ponto de vista do usuário, eles podem obter um grande valor de um programa VB6 antigo que está sendo mantido. Pode não ser econômico ou prático desenvolvê-lo do zero, mas pode valer a pena mantê-lo (isso é particularmente verdade para softwares especializados que possuem apenas um nicho de mercado muito pequeno).
Stephen

6

Em algum momento, a empresa precisará se preocupar com o fim da vida útil do VB6, mas, infelizmente, o VB.NET ainda tem um pouco de ar.

Existe algum motivo relacionado ao qual você precise trabalhar em um único monitor pequeno? Parece mais a empresa ser barata do que se preocupar com tecnologias bem testadas. Não é como se alguns monitores de 21 "apresentassem bugs.

Para manter suas habilidades nítidas e ser pago por isso, sugiro analisar sua configuração de compilação, teste e implantação. Essa pode ser uma oportunidade para começar a introduzir algumas tecnologias mais recentes usando rake, powershell e / ou nant para compilação e implantação. Se você não tiver testes de unidade, comece a adicioná-los.

No final do dia, se a empresa não estiver no espaço tecnológico, ela sempre será secundária a eles. Faz todo o sentido manter a estabilidade para proteger suas operações de negócios principais.

Vou evitar dar conselhos de carreira, tenho certeza que outros cobriram as bases.


6

Para as pessoas idosas, avançar para o final de sua carreira profissional, vender seu profundo conhecimento de uma tecnologia mais antiga para uma empresa que ainda usa as coisas antigas, pode ser financeiramente atraente . Por exemplo, se você tem experiência no PDP-11, pode se mudar para o Canadá .

No entanto, no início de sua carreira, eu recomendaria seguir em frente.


3

Existem várias vantagens:

1) Haverá muitos recursos disponíveis para as tecnologias, desde que não sejam obscuros e não amplamente utilizados.

2) Espero que outros na empresa sejam bem versados ​​nas tecnologias, pois não mudaram.

3) Se não houver muito desenvolvimento novo, você poderá refatorar o código antigo para ficar mais limpo ou mais rápido. Observe que o tipo de loja que mantém essa tecnologia antiga provavelmente será contra a alteração de qualquer código que "funcione", apesar de ser abominável.


5
Se o código funcionar, não deverá ser alterado se você puder evitá-lo. Toda vez que um desenvolvedor faz uma alteração, há a possibilidade de introduzir novos bugs - e novos bugs negam amplamente o benefício do uso de código antigo.
DougM 14/01

A mudança, obviamente, não é uma boa ideia. No entanto, quando o software atinge um certo nível de maturidade, a atenção geralmente se volta para o ajuste de partes mais lentas do aplicativo.
Robbie Dee

3

Vou me concentrar no outro lado da questão, ou seja, as desvantagens do uso de novas tecnologias, pois as vantagens de tecnologias desatualizadas foram suficientemente abordadas em outras respostas.

Ainda temos uma grande base de código do Visual Studio 6 e parece que ela não será substituída em breve.

No entanto, estamos avançando com novas tecnologias onde podemos para novos desenvolvimentos.

Como eu acho que você faz alusão, é possível escrever o VB.NET que faz interface com o código VB6 herdado usando COM.

O uso de tecnologias de ponta é sem dúvida divertido, pois geralmente trazem benefícios significativos à produtividade. No entanto, o outro lado é que você pode encontrar um bug / falha que o atrasa dias / semanas. É chamado de borda de sangramento por uma razão!

Mesmo que a empresa gaste o dinheiro para atualizar o software, isso (como descobri por experiência pessoal) pode ser um obstáculo, independentemente da maneira que a empresa escolher:

Porta do software

O software é reescrito, mas precisa ser exatamente igual ao software antigo para não incomodar os usuários. A alegria de trabalhar com novas tecnologias é substituída pelo fato de você não poder usar nenhuma das novas magias da GUI.

Atualização do Visual Studio

Você realmente não usa nenhum dos novos recursos corretamente, pois gasta muito tempo resolvendo falhas no código, onde ele funciona bem em uma versão do estúdio, mas não na outra.

Migração funcional

Você migra o software mantendo a funcionalidade principal. Isso permite a maior liberdade do ponto de vista do desenvolvedor, mas podem ser introduzidos erros que podem levar a empresa a questionar o valor desse exercício, a menos que novos recursos de valor agregado também sejam incluídos.

O Nirvana para a maioria dos desenvolvedores é um treinamento de qualidade em tecnologias modernas, uma chance de praticar o que você aprendeu e, em seguida, um projeto inovador para você.

O que você deve fazer depende muito do tipo de pessoa que você é. Os neófilos sempre querem trabalhar com o novo material, enquanto os especialistas acreditam que a tecnologia antiga é a melhor. A maioria de nós está em algum lugar no meio. Você precisa trabalhar onde se sentir confortável. Se você acha que pode viver com o status quo, então ótimo, pegue a moeda por enquanto e fique de olho para uma posição mais adequada.


1

Pode não ser exatamente o que você está perguntando, mas tenho algumas sugestões:

Eu acho que o maior benefício é o que você pode oferecer ao seu empregador em termos de experiência quando eles perceberem que precisam migrar. O XP será descontinuado este ano, então imagino que seu departamento de TI já esteja considerando uma estratégia de migração. (Caso contrário, prepare seu currículo, porque a empresa não vai demorar muito.)

Com isso em mente, pode ser prudente começar a compilar uma lista de vantagens para migrar os principais conjuntos de ferramentas de software em conjunto com a migração do SO / plataforma. Ajude a educar sua cadeia de gerenciamento que não é tecnicamente segura quanto ao ROI em relação às novas tecnologias. Seus gerentes não se importam com estruturas de zumbido e brinquedos tecnológicos, mas devem estar muito interessados ​​em suas projeções de longo prazo em relação aos custos comparativos de despesas de manutenção contínuas, desenvolvimento futuro etc.

Nessa mesma linha, você pode aproveitar esta oportunidade para descobrir o nível de satisfação de seus clientes (os funcionários que usam seu software). Que melhorias eles gostariam de ver? Que insetos os deixam loucos? Quais recursos melhorariam significativamente sua eficiência? Se você puder mostrar aos seus empregadores que um novo investimento em tecnologia impactaria demonstrativamente seus resultados, você poderá ganhar o título de Gerente de Migração Técnica.

E isso ficaria bem em QUALQUER currículo.

ATUALIZAÇÃO: Parece que você não está sozinho no seu setor: " 95% dos caixas eletrônicos do mundo executam XP ". Não me interpretem mal: XP é ótimo - eu sempre fui fã. Mas a realidade é que, quando os patches e atualizações de segurança terminarem, o XP não será um produto viável para um banco. Seu trabalho (em benefício dos clientes do seu banco) é informar graciosamente, mas persistentemente, seus gerentes de que eles acabarão pagando muito mais (em acordos de serviços estendidos ou atenuação de ataques) para manter o XP após a data de aposentadoria. Como o link de @ RobbieDee apontou: você tem até 14 de julho de 2015. Isso é tempo suficiente (se você começar agora) para projetar, implementar e implantar um sistema de substituição.

(Mas NÃO tente vender essa idéia para o cara que acabou de assinar a instalação do XP em toda a empresa. Ele não é seu aliado. Com esse julgamento, seus dias nesse cargo são contados. Apenas trabalhe em silêncio até que prevalecem as cabeças mais sábias.)


FYI - apoio (pelo menos em parte) foi estendido para além do prazo original de 2014: bbc.co.uk/news/technology-25758308
Robbie Dee

Oi, obrigado pela resposta. Isso simplesmente não está acontecendo tristemente, a empresa (um banco) recentemente (no final de 2013) passou por uma atualização do PC, na qual gastaram muito dinheiro substituindo todos os computadores da cadeia pelo novo kit da Dell. Eles então pagaram as pessoas da IBM para limpar todas essas máquinas e instalar o XP! Pelo que sei, se eles quisessem atualizar para um sistema operacional mais moderno, essa seria uma oportunidade de ouro. Normalmente, sua resposta seria um bom conselho, embora isso seja +1.
prisoner24601

@RobbieDee -que dá ao usuário114764 o tempo necessário.
kmote 21/01
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.