* Por Por Elemar Júnior
A transformação digital, em todas as indústrias, tem mudado a forma como pensamos software e, na medida que novas alternativas podem ser exploradas, todos os dias, tecnologias novas emergem, em sua maioria, incompatíveis com as opções anteriores. A realidade corporativa não convive bem com o desequilíbrio de atualização tecnológica. Há riscos e custos em se estar “atualizado demais” ou “defasado demais”.
Compatibilidade retroativa é difícil quando o hardware muda e evolui o tempo todo. Escrever software para um dispositivo IoT, com pouco poder computacional, é muito diferente de escrever software para rodar em um servidor potente. Ter uma aplicação de serviços bancários funcionando bem em celulares, com milhões de usuários leigos, é bem diferente de construir essa mesma aplicação para funcionar em poucas centenas de computadores pessoais, com usuários treinados.
Além disso, se espera cada vez mais do software. Se no passado, usávamos sistemas digitais apenas para planejar a produção em uma fábrica, por exemplo, agora estamos coletando informações de sensores nas máquinas o tempo todo para melhorar a gestão. Tecnologia desenvolvida para ser utilizada em um determinado contexto quase nunca é apropriada em cenários mais avançados.
Qual é o impacto de uma tecnologia obsoleta em um software?
Software que depende tecnologias obsoletas ou que não são mais atualizadas é legado. Mais cedo ou mais tarde, precisará ser atualizado e, dependendo do nível de acoplamento com a tecnologia que se está tentando abandonar, pode ser necessário, até mesmo, refazê-lo do zero.
Aplicações bem planejadas, com componentes bem delimitados, restringem o uso de tecnologias para as partes onde elas são realmente necessárias. Isso torna o impacto sentido pela obsolescência muito menor. Infelizmente, software desenvolvido com esse cuidado, longe de ser regra, é exceção.
Muitas vezes, o custo de substituir uma tecnologia é alto demais. Por causa disso – na verdade, por falta de visão de longo prazo – as organizações postergam a atualização ao máximo, visando maximizar o retorno sobre o investimento.
Qual é o impacto de uma tecnologia obsoleta no time?
Profissionais de TI preferem, geralmente, trabalhar com as últimas novidades. Seja por gostarem do novo, ou por receio de comprometer a empregabilidade.
Manter uma tecnologia obsoleta, quase sempre, implica em manter um time obsoleto. Ou seja, gente com mais “tempo de casa”, especialista na tecnologia antiga e sem muita experiência com o novo.
Essa questão implica, muitas vezes, em ter que “começar uma equipe do zero” depois de algum tempo. Em todo caso, é importante lembrar que alocar pessoas novas para modernizar um componente legado costuma ser um erro grosseiro, visto que se sobra ao time capacidade em novas tecnologias, frequentemente falta conhecimento sobre o negócio.
O problema de adotar “soluções paliativas” para obsolescência
Uma alternativa comum, paliativa, que temos encontrado com frequência tem sido “envelopar” o componente que usa tecnologia obsoleta com outros elementos desenvolvidos com tecnologias mais modernas. Não é raro, por exemplo, encontrar APIs expondo dados e, algumas vezes, repetindo funcionalidades dos sistemas legados. Entretanto, na maioria das vezes, essa decisão não é implementada com a atenção que seria necessária e, logo, inconsistências emergem.
Também encontramos cenários onde o software construído com tecnologia legada nem mesmo suporta o volume de operações realizadas nos componentes com tecnologia moderna que estão os “envelopando”. Em consequência disso, é comum que ocorra defasagem de atualização de dados, limitando algumas alternativas estratégicas interessantes.
Mesmo quando o “envelopamento” é bem feito, com o tempo, o legado acaba “expondo seu cansaço” e, eventualmente, para de funcionar. Além disso, em ambientes corporativos, esta ação faz com que contratos de expansão de suporte tecnológico sejam firmados, extremamente caros, que são mantidos até que o fornecedor resolva não seguir em frente.
Impactos emergentes de uma tecnologia obsoleta para o negócio
O custo da defasagem tecnológica que, na maioria das vezes, se revela na impossibilidade de aproveitar oportunidades estratégicas, é muito alto para as organizações.
Em tempos onde a capacidade tecnológica é competência central, embora ainda não reconhecida como tal em muitas organizações, obsolescência tecnológica constitui desvantagem competitiva.
Como resolver o problema da obsolescência tecnológica
Em minha experiência, a resolução do problema de obsolescência tecnológica começa com o mapeamento apropriado das tecnologias empregadas pela organização.
Idealmente, esse mapeamento deve indicar quais são os software usando cada tecnologia, vinculando-os a seus times de desenvolvimento, usuários-chave e processos de negócio. É fundamental que qualquer tomada de decisão ocorra somente quando se saiba claramente que partes do negócio serão impactadas. Esse mapeamento pode ser alcançado através da manutenção de um repositório da arquitetura corporativa.
Não acredito em projetos com “virada de chave”. Qualquer projeto de atualização tecnológica para levar um software “dos oito aos oitenta” em uma única empreitada costuma não resistir aos primeiros obstáculos. Digo que o legado é uma “entidade mística”, que engole recursos sempre que um projeto de modernização ingênuo é iniciado.
Recomendo, antes de atualização tecnológica, que se faça uma relação de oportunidades a serem aproveitadas com as tecnologias mais modernas. Se não for possível indicar pelo menos um ganho real para o negócio, então não há ambiente favorável para uma atualização tecnológica (talvez a organização tenha problemas mais sérios para resolver antes).
Por mais que tecnologia seja um tema empolgante, nas empresas, não devemos nos mover por paixões, mas sim pela capacidade de gerar resultado. Tecnologias obsoletas e, consequentemente, software legado, atrofiam essa capacidade.
* Por Elemar Júnior é CEO da ExímiaCo
** Este texto não reflete, necessariamente, a opinião do Olhar Digital