6.14.2024

SOFTWARE Where ? Without software ! Hmmm

What does a well-implemented SOFTWARE represent for your life and your company??? Think !  Software today is part of the SAME business. Any company, in any sector, depends to a greater or lesser extent on its software to work. A BANK without software does nothing, a GENERAL SERVICES company without SOFTWARE is NOTHING ! But, there are shadows hanging over the companies. It is the so-called technical debt, a software development concept that emerged around the early 1990s. The term comes from a metaphor inspired by the concept of existing debt in the area of finance and business, applied to the software field. Outdated software incurs future costs, such as credit cards: interest, to be refunded in the form of additional maintenance time and increasingly frequent bug fixes. The technical debt must be paid quickly to avoid the accumulation of interest, hence the analogy with the concept of financial debt, exists for TECHNOLOGY.

Hence, many companies look with anxiety and optimism at using generative AI such as Copilot, AI Frameworks and chatGPT and others to mitigate the problem. And of course, the super optimists believe that in up to ten years we will no longer need developers. Well, to me, affirmations in that sense have no scientific basis. Generative AI is not miraculous, but it can be a tool kit to increase productivity, not replace developers.

There is much more to software engineering than just generating code, such as getting user requirements up to debugging and testing. One of the most fundamental programming Skills remains the domain of humans : problem solving. Analyzing a problem and finding an elegant solution to it is still a programming experience that is still far from being done by current algorithms. 

The creative aspect the skills of addressing a problem are more important than the language or tools. Don’t fall into the trap of comparing yourself to AI, which is a statistical output of a great model. This would underestimate the human capacity of the software creation activity. There are big differences between what a human developer does and what a probabilistic model generates: being a developer is more than just writing arbitrary lines of code. The root of the problem: we have a tendency to anthropomorphize AI and so we call an AI tool a co-worker. This is equating their production to human labor. The concept that the metrics of an AI tool are directly compared to those of human workers is at best inadequate.

Therefore, software engineering is much more than winning programming contests. Good software engineering practices are proving even more valuable than before. These practices include planning system design and software architecture, which serves as a good context for AI-based tools to be used to more effectively predict what code you need to generate. Therefore, the generation of code by these tools is only a complement to the human activity of software engineering.

Programming and software engineering, defines society its vital importance and the training of programmers who seek to know and understand and not just memorize frameworks.





6.13.2024

Uma empresa sem SOFTWARE ?

O que representa um SOFTWARE bem implementado para sua vida e sua empresa??? Pense !  Software hoje é parte do negócio MESMO. Qualquer empresa, de qualquer setor, depende em maior ou menor grau dos seus softwares para funcionar. Um BANCO sem software não faz nada, uma empresa de SERVIÇOS GERAIS sem SOFTWARE não é NADA ! Mas, existem sombras pairando sobre as empresas. É a chamada dívida técnica, um conceito de desenvolvimento de software que surgiu por volta do início dos anos 90. O termo vem de uma metáfora inspirada no conceito de dívida existente na área de finanças e negócios, aplicada ao campo de software. Um software desatualizado incorre em custos futuros, como em cartões de crédito: juros, a serem reembolsados na forma de tempo adicional de manutenção e correção de bugs cada vez mais frequentes. A dívida técnica deve ser paga rapidamente para evitar o acúmulo de juros, daí a analogia com o conceito de dívida financeira, existe para TECNOLOGIA a divida TECNOLOGICA.


Daí que muitas empresas olham com ansiedade e otimismo o uso da IA generativa como o Copilot e o chatGPT e outros, para mitigar o problema. E claro, os superotimistas acreditam que em até dez anos não precisaremos mais de desenvolvedores. Bem, para mim afirmativas nesse sentido não tem base científica. A IA generativa não é milagrosa, mas pode ser sim, um tool kit para aumentar a produtividade, não substituir os desenvolvedores.

Há muito mais na engenharia de software do que apenas gerar código, como obter requisitos do usuário até depuração e teste. Um dos skills de programação mais fundamentais continua sendo domínio dos humanos : resolução de problemas. Analisar um problema e encontrar uma solução elegante para ele ainda é uma experiência de programação que está ainda muito longe de ser feita pelos algoritmos atuais. 

O aspecto criativo as habilidades de abordar um problema são mais importantes do que a linguagem ou as ferramentas. Não caia na armadilha de se comparar à IA, que é uma saída estatística de um grande modelo. Isso seria subestimar a capacidade humana da atividade de criação de software. Existem grandes diferenças entre o que um desenvolvedor humano faz e o que um modelo probabilístico gera: ser um desenvolvedor é mais do que apenas escrever linhas arbitrárias de código. A raiz do problema: temos a tendência de antropomorfizar a IA e por isso chamamos uma ferramenta de IA de colega de trabalho. Isso é equiparar sua produção ao trabalho humano. O conceito de que as métricas de uma ferramenta de IA sejam diretamente comparadas às dos trabalhadores humanos é, na melhor das hipóteses, inadequada.

Portanto, a engenharia de software é muito mais do que vencer concursos de programação. Boas práticas de engenharia de software estão se mostrando ainda mais valiosas do que antes. Essas práticas incluem o planejamento do design do sistema e da arquitetura do software, que serve como um bom contexto para que ferramentas baseadas em IA sejam usadas para prever com mais eficiência qual código você precisa gerar. Portanto, a geração de código por essas ferramentas é apenas um complemento da atividade humana da engenharia de software.

A programação e a engenharia de software, define a sociedade sua vital importância e a formação de programadores que buscam conhecer e entender e não decorar somente frameworks.



SOFTWARE Where ? Without software ! Hmmm

What does a well-implemented SOFTWARE represent for your life and your company??? Think !  Software today is part of the SAME business. Any ...