Programadores: especialistas em tecnologia ou negócios?

Photo by Tom Fisk from Pexels

Certa vez, durante uma conversa informal, ouvi de um programador com algumas décadas de experiência as seguintes afirmações:

  1. No passado, grande parte dos programadores tinha formação acadêmica em áreas relacionadas com contabilidade e administração.
  2. Atualmente, a grande maioria estuda cursos diretamente relacionados a área de TI (ex: Ciência da Computação, Engenharia de Software, etc.)
  3. Os programadores de antigamente se interessavam mais por lógica de negócio do que por aspectos técnicos do desenvolvimento de software.
  4. Portanto, eram melhor capacitados para desenvolverem sistemas comerciais para gestão de empresas.

Essas afirmações me deixaram bastante pensativo, principalmente por que elas me pareceram um pouco injustas com os programadores da “nova geração”. Na verdade, se essas afirmações estiverem corretas, creio que qualquer empresa que produz software comercial deveria começar a se preocupar, visto que boa parte dos novos programadores, em teoria, não estaria capacitado para trabalhar com sistemas do tipo. Mas, será que essa preocupação teria mesmo algum fundamento?

Vamos começar pelas 2 primeiras afirmações. Há algum dado que as comprove? Bom, embora eu não tenha dados mais antigos para comparar, os dados da Stack Overflow Developer Survey 2019 comprovam que atualmente 63,3% dos desenvolvedores profissionais estão estudando ou já são graduados em alguma área relacionada à Ciência da Computação, Engenharia da Computação ou Engenharia de Software. Disciplinas relacionadas a negócios aparecem só em 7º lugar, citadas por 2,2% dos entrevistados.

Esses dados não são suficientes para uma análise detalhada, é verdade. Mas acredito que pela diferença gritante nos interesses de estudo, podemos constatar que o interesse dos desenvolvedores em áreas relacionadas a negócios é de fato reduzido. Além das estatísticas, posso dizer que verifico essa situação também na prática. Tenho uma jornada relativamente curta como desenvolvedor, mas boa parte dos desenvolvedores com os quais convivi e conversei não tem um apreço especial pelo mundo dos negócios.

Isso nos leva a crer, portanto, que as 3 primeiras afirmações estão corretas. Contudo, essa situação não é exatamente algo novo. No texto A History of Computer Programming Languages, o pesquisador Andrew Ferguson fala um pouco da invenção do COBOL, lá nos anos 50, e qual era o objetivo que a linguagem tentava atingir na época:

A programação comercial começou a “decolar” em 1959, e por causa disso, a [linguagem] COBOL foi desenvolvida. Ela foi projetada desde a base como uma linguagem para homens de negócios. Seus únicos tipos de dados eram números e strings de texto. (…) Todas essas funcionalidades foram criadas para facilitar o aprendizado e adoção dessa linguagem pelo empresário comum.

A partir desse trecho, podemos traçar uma pequena linha do tempo: na primeira metade do século XX, boa parte dos programadores não se interessava por negócios. A linguagem COBOL foi criada para resolver esse problema e, graças a essa e muitas outras linguagens de alto nível houve um boom no desenvolvimento de software comercial nas décadas subsequentes. Porém, mais recentemente o interesse por negócios voltou a cair. Ou seja, ao que parece, este é um fenômeno cíclico. Estamos em uma nova fase da história na qual os programadores voltam sua atenção mais aos desafios específicos da área tecnológica do que a aplicação desse conhecimento no meio empresarial.

Mas, considerando que essa falta de interesse possa ser algo apenas passageiro, quando o ciclo atual irá terminar? Quando os programadores voltarão a se interessar por negócios? Talvez não demore muito. Como explica John DeCleene no artigo Which is More Promising: Data Science or Software Engineering?, a ciência de dados (ou Data Science, em inglês) é uma tendência promissora:

De forma geral, os Engenheiros de Software criam produtos que produzem dados, enquanto os Data Scientists analizam esses dados. Pode-se dizer que Engenheiros de Software criam os meios para obter informação, mas são os Data Scientists convertem essa informação em inteligência útil para os negócios.

Ou seja: vivemos em um mundo onde as aplicações tem acesso a grandes volumes de informação específica, e está se tornando cada vez mais importante saber como entender esses dados e usá-los a nosso favor. no contexto de sistemas comerciais, isso significa que, mais do que simplesmente escrever código, é importante que existam profissionais preparados para entender com a informação produzida/coletada pelo software pode ser utilizada para otimizar processos de negócio e melhorar o dia a dia nas organizações.

Apesar de menos interessados nos domínios empresariais, vejo que isso não torna a geração atual de programadores menos capaz de compreendê-los. Com boa modelagem de processos e comunicação com analistas de negócio, gerentes de projeto e usuários, qualquer desenvolvedor pode entender os processos realizados dentro de uma empresa e criar sistemas que auxiliem na automatização e otimização dessas atividades. Contudo, é necessário tempo adequado para que os programadores possam aprender. Na maioria das organizações estes profissionais já tem muitas demandas técnicas, e portanto é preciso encontrar um meio termo entre especialização técnica e de negócio.

Fontes: