Desenvolvimento orientado a modelos garante um futuro sem legado
19 de julho de 20222021 provou ser outro ano desafiador. Mesmo assim, a pandemia em curso também nos trouxe algumas coisas boas. A transformação digital que muitas empresas tiveram que implementar rapidamente, certamente levou a novas aprendizagens. Por exemplo, como lidamos com o trabalho remotamente, quais soluções de TI usamos e como podemos nos livrar permanentemente do legado. Vemos neste artigo como o desenvolvimento orientado a modelos é a melhor escolha para garantir flexibilidade na operação e para evitar futuros legados.
Robert van der Linden, Thinkwise CEO
Os últimos anos têm sido um grande ponto de virada na indústria de software. Organizações que funcionavam perfeitamente com um sistema de TI central da década de 1990, complementadas com inúmeras aplicações periféricas, de repente perceberam que tinham chegado a um ponto de ruptura. Afinal, você não pode continuar adicionando mais soluções de emergência para otimizar suas operações para algo inevitável como bloqueios e trabalhar remotamente. A única solução para quebrar esse impasse é revisar drasticamente sua infraestrutura de TI e finalmente romper com sua dívida tecnológica de uma vez por todas.
Estratégia de modernização
Em qualquer tipo de modernização de TI, as soluções legadas são o maior gargalo. Como você substitui em um período razoável de tempo e sem o risco de atraso, terrivelmente acima do orçamento, ou mesmo falhar completamente um sistema principal do qual a continuidade depende ? Afinal, quase não há garantias dentro da indústria de software de que um projeto será realmente bem sucedido.
Isso significa que você precisa fazer uma escolha estratégica, que determinará o futuro, e até mesmo a própria existência de sua organização. Você não deve ter medo de romper com velhos métodos e formas de pensar. Com isso em mente, vamos listar algumas considerações.
Qual é o melhor momento de modernizar?
Substituir uma solução de TI desatualizada que é a base para suas operações primárias, é um passo extremamente radical, e deve haver um argumento convincente para justificar esta medida tão drástica. Isso pode ser, por exemplo, o aumento dos custos de manutenção, limitações em relação à inovação e desenvolvimento contínuo, ou problemas de capacidade e segurança. Além do fato de que o software mais cedo ou mais tarde chega ao seu fim de vida, os especialistas em TI especializados em fazer a manutenção da tecnologia obsoleta, vão se aposentar gradualmente. O que você vai fazer quando o último deles se for? Então, não espere muito tempo para resolver este problema. Caso contrário, pode ser tarde demais.
Programação, configuração ou modelagem?
Qual tipo de software utilizará para a modernização?
Software personalizado
A próxima questão crucial é qual é o caminho certo a tomar. Você opta por desenvolver um sistema completamente personalizado com ferramentas tradicionais de desenvolvimento? Se for assim, pode quase ter certeza de que o projeto vai passar por cima do orçamento e custar uma quantidade incrível de tempo. E que uma vez que o código foi entregue, você essencialmente criou outro sistema legado.
Pacote de software de prateleira
Uma alternativa é selecionar um pacote de software padrão e configurá-lo para atender às suas necessidades. Isso parece uma boa ideia, mas as promessas feitas sobre a flexibilidade dos pacotes de software raramente são entregues. Todos os anos, enormes quantidades são perdidas para implementações de software fracassadas, com algumas empresas tendo que jogar a toalha depois de muitos anos de implementação ou aceitando que devem adequar os processos ao sistema recentemente implantado.
E mesmo quando conseguir a implementação bem sucedida, é uma questão de tempo fazer ajustes necessários na aplicação, devido ao avanço da sua maturidade, mudanças estratégicas ou mudanças no mercado, muitas vezes não são possíveis nos pacotes de software. É um dos principais motivos para existirem tantas planilhas de excel e outras soluções periféricas nas organizações.
Em geral, a maioria do código já é legado quando é entregue, e software padronizado só é útil se ele se encaixa exatamente e suporta os processos existentes, o que acontece principalmente em apoio de processos padronizados de suporte a atividade principal de um negócio. Resumidamente, a criação e a entrega de software requer uma abordagem radicalmente diferente, muito mais estruturada e muito mais rápida.
Software orientado a modelos
É por este motivo que o uso de modelagem de software com ferramentas de low-code está em alta, pois este método oferece a possibilidade de criar software sem grandes dependências de programadores tradicionais. Software que você pode criar de forma estruturada e que você pode expandir e modificar sem problemas. Isso permite que você obtenha resultados tangíveis muito mais rápido e envolva funcionários em uma fase muito mais cedo no processo.
Desenvolver mais rápido significa pensar diferente
No desenvolvimento tradicional de software, o prestador de serviços de TI faz aos seus clientes todos os tipos de perguntas difíceis sobre seus processos de negócios e os força a fazer escolhas importantes no início do processo. Ele junta todas as informações em um projeto gigantesco, e no final do processo sai o produto desejado. Ou melhor, supostamente desejado, pois é mais comum que o produto não é nada do jeito que foi imaginado, ou que ao longo dos meses ou anos de desenvolvimento os requisitos mudaram e o produto entregue não faz mais sentido.
É por isso que no desenvolvimento moderno de software, você deve sempre se concentrar na entrega de MVPs (Minimum Viable Products, Produtos Viáveis Mínimos). Você analisa os desafios mais importantes enfrentados pela organização naquele momento e tenta resolvê-los o mais rápido possível usando software.
Agilidade é chave
As metodologias ágeis tiveram a sua entrada no mundo de software justamente para resolver o problema do desenvolvimento tradicional (desenvolvimento cascata), no qual o software é entregue em ciclos pequenos no qual feedback é obtido pelos usuários o mais cedo possível. Isso trouxe uma assertividade muito maior na entrega do software desejado e uma sensação de que algo está de fato acontecendo gerando satisfação e engajamento.
Somente há um problema ainda com o desenvolvimento tradicional. Ele gera linhas de códigos, milhares de linhas que são digitados manualmente por pessoas que obviamente cometam erros. Os erros que causam bugs, que causam a necessidade de automação de testes e o teste manual feito por pessoas. E com o feedback do usuário, é complexo fazer os ajustes por ter de entrar no espaguete de código causando novamente a chance de erros.
Agilidade com desenvolvimento orientado a modelos
Por sua natureza, o desenvolvimento baseado em modelos não tem códigos e muitas funcionalidades e efeitos são visualmente disponíveis para o usuário final avaliar as vezes até durante o próprio desenvolvimento. Isso faz com que as plataformas de low-code sejam um aliado muito importante no desenvolvimento de software em combinação com metodologias ágeis, permitindo a entrega de MVP´s de forma rápida com o envolvimento dos usuários finais. Uma vez entregue, você pode então expandir esse software de forma fácil e rápida dentro da mesma estrutura de low-code, sem a necessidade de todos os tipos de aplicativos periféricos, e com a garantia de entregar um software de alta qualidade.
Vá com certeza
Ainda há muitas organizações que continuam a repetir o mesmo erro várias vezes. Eles escolhem um pacote de software ‘seguro e confiável’ com um preço alto baseado no nome do fornecedor, que no final, após anos de configuração, ainda não atende às suas expectativas. Eles acreditam as promessas de um provedor de serviços de TI que, posteriormente, não é capaz de entregar com sucesso um projeto dentro do orçamento e o prazo estabelecido. Ou gastam milhões em desenvolvimento personalizado para descobrir apenas após a entrega que até lá a solução não corresponde mais aos requisitos atuais e a tecnologia escolhida no início do projeto foi superada por algo novo.
Tudo isso pode ser evitado, mas é preciso começar a pensar diferentemente sobre software. Selecione software de alta qualidade e um fornecedor de software que garanta o sucesso. Software de negócios que é drasticamente diferente, porque você pode modelar a funcionalidade em vez de programá-lo. Isso é muito mais rápido e também o torna menos dependente de programadores ou consultores caros. Use um software que não seja rígido, mas que possa ser continuamente modificado e desenvolvido mais adiante. E tudo isso sem se tornar tecnologicamente obsoleto e sem o risco de que o conhecimento de como o software funciona eventualmente desapareça da organização. Na minha opinião, este é o caminho para um futuro sem legado.