DevSecOps

27 abr, 2016

Algumas considerações sobre o “software que escreve código”, seu futuro e seu impacto nos negócios

Publicidade

Depois de mais de 25 anos da GeneXus desenvolver e comercializar um produto que, entre outras coisas, escreve código, começam a aparecer pontos de vista sobre a importância de escrever software de forma automática. Em particular, me inspira escrever sobre este assunto.

É possível escrever automaticamente um software que uma organização em particular precisa? Sim! É suficiente escrever o software automaticamente? Não, mas é um bom começo.

O cliente precisa e exige uma maior flexibilidade e liberdade no desenvolvimento de software, juntamente com uma forte redução de custos e tempo, por isso é essencial fazer mais algumas coisas:

  • Manutenção automática: A manutenção pode e deve ser automatizada. Se fazemos isso, economizamos custos significativos na forma de tempo, dinheiro e introdução de novos erros.
  • MultiPlataforma: No mundo de hoje, e mais ainda num futuro previsível, é necessário trabalhar com múltiplas plataformas e suas combinações: sistemas operacionais, linguagens de programação, sistemas de gestão bases de dados, dispositivos, arquiteturas, nuvens, internet das coisas, big data etc.
  • Prototipação ágil e funcionalmente completa: Ajuda muito para encontrar os erros de análise de forma conveniente; e quando os corrige, não tem custos significativos.
  • “Futureproofing”: É necessário que os sistemas de hoje possam facilmente evoluir de acordo com as necessidades de negócios e novas tecnologias disponíveis para facilitar a inovação contínua.
  • O futuro dos negócios e a tecnologia: Qual é o futuro? Quais são as necessidades futuras do negócio? Quais são as novas tecnologias disponíveis? Difícil dizer, mas aumentarão constante e rapidamente. Já hoje, existem fortes necessidades não satisfeitas e muita tecnologia disponível, que é pouco utilizada, ou de usada forma rudimentar.

Em um ambiente de desenvolvimento manual, a adaptação dos programadores às novas tecnologias é lenta e faz com que a adoção destas novas tecnologias demore muito tempo. Tudo isso vai aumentar ao longo do tempo e de forma acelerada.

É necessário que as empresas foquem os excelentes recursos humanos que possuem – que são sempre escassos – para compreender os problemas dos negócios e não em tarefas de baixo valor agregado, repetitivas, tediosas e cheias de erros, como escrever código manualmente. O bom uso de ferramentas automatizadas de desenvolvimento e manutenção do sistema é uma grande necessidade. E sem dúvida, o software que escreve código irá alterar o script da tecnologia.

Muitos produtos que escrevem código no início foram bem sucedidos, mas depois falharam. Por que? As causas podem ser múltiplas: oscilação do mercado, advento de novas tecnologias que requerem investimentos pesados, erros financeiros etc. No entanto, atrevo-me a pensar que as causas fundamentais são decisões tecnológicas muito conservadoras, ligadas a elementos de baixo nível como arquivos, mecanismos de acesso, sistemas operacionais, linguagens etc. Ou até mesmo hardware.

Meu pensamento é que se atuamos em elementos específicos de baixo nível, provavelmente podemos, no início, nos mover mais rápido. A medida em que o ambiente se complica ou se sofistica, devemos suportar novas necessidades, arquiteturas e tecnologias ou começamos a ter grandes dificuldades. Esta é, na minha opinião, a razão pela qual algumas empresas colegas foram bem sucedidas em um primeiro momento e com o tempo falharam.