A Inteligência Artificial vai substituir o trabalho de Devs? - PrograMaria

Entenda o impacto e implicações da Inteligência Artificial para o trabalho de pessoas desenvolvedoras

Com a Inteligência Artificial (IA) evoluindo e sendo cada vez mais empregada nas indústrias, ganha força a discussão sobre a possibilidade de ela substituir trabalhos (e quais trabalhos), quais são os impactos para as empresas, as indústrias e setores mais afetados, e quais as implicações para a sociedade. Segundo uma pesquisa da UnB, 54% dos empregos formais no Brasil estão ameaçados, e 30 milhões de postos e trabalho podem ser substituídos por máquinas e softwares até 2026.

Este debate não é de agora: acompanha a chegada de novas invenções tecnológicas que automatizam trabalhos antes desempenhados por humanos. A hipótese de que a introdução de máquinas gera desemprego desestrutural vem desde a época da Revolução Industrial, e é conhecida como Falácia Ludita! Para saber mais, clique aqui leia o artigo Os Ludditas e o futuro do trabalho, Kaio Serrate. E já há uma lista enorme de profissões que, de fato, foram extintas (ou quase). Quem aí já pegou elevador com uma pessoa ascensorista ou falou com uma pessoa telefonista?

O caso é que a Inteligência Artificial elevou muito o nível de atividades que a tecnologia pode desempenhar e tem transformado – e vai transformar ainda mais – a maneira como vivemos, trabalhamos e nos relacionamos! Não é à toa que, depois do vapor, eletricidade e computação é a IA – em conjunto com outras tecnologias emergentes – que caracteriza a passagem para a nova Revolução Industrial, estamos na 4ª Revolução, conhecida também como Indústria 4.0! Inclusive, o Fórum Econômico Mundial alertou para o impacto dessa revolução para o futuro do trabalho, especialmente para mulheres. Com as automações que essa revolução trará, estima-se que para cada vaga geradas no escopo da Indústria 4.0, as mulheres perderão 5 posições, justamente porque são mais presentes em ocupações facilmente substituídas e não possuem a capacitação para atuar neste novo contexto.

O site Will Robots Take My Job? (“Os robôs vão roubar o meu emprego?”) (em inglês)  mostra a probabilidade de diversos trabalhos serem automatizados, com base em um estudo publicado em 2013, usando um processo de classificação gaussiano, e com coleta de opiniões das pessoas sobre isso.

Frame do filme O Exterminador do Futuro com a frase "O que há para se preocupar com Inteligência Artificial?", em inglês

“O que há para se preocupar com Inteligência Artificial?” Lembra do filme O Exterminador do Futuro?

É fato que o avanço tecnológico irá substituir muitas profissões e há quem defenda a ideia de que isso vai gerar um alto nível de desemprego nas próximas décadas, e até mesmo predições bem radicais. Por outro lado, existem defensores da ideia de que esta e outras tecnologias incentivarão o desenvolvimento de novos produtos e serviços, levando à criação de novas ocupações, a demanda pela redefinição de cargos já existentes e a atualização de profissionais.

Sobre substituição em TI 

De forma geral, precisamos entender os limites da IA (Lembra da diferença entre IA genérica e estreita? A equipe de análise do Gartner crê que a “IA terá mais sucesso na resolução de problemas que são relativamente bem definidos e com um âmbito restrito, enquanto que os humanos continuarão peritos em definir problemas que precisam ser resolvidos e em resolver problemas complexos”.

Em outras palavras, tarefas repetitivas podem (e devem!) ser substituídas por máquinas! Dentro da área de TI, a IA poderá aumentar a eficiência das tarefas e otimizar fluxos de trabalho. Com capacidade de perceber, aprender e resolver problemas, a IA pode complementar, estender, substituir recursos, e também pode trazer possibilidades e recursos totalmente novos. (Inteligência Artificial nas Operações de TI, Gartner)

A previsão do Gartner, é de que “alguns cargos vão desaparecer, mas a IA vai melhorar algumas lacunas de competências e os departamentos de TI, como um todo, vão cada vez mais focar em trabalho mais criativo, que diferencie a empresa.”

Um exemplo que hoje já está avançado é na área de gerenciamento de infraestrutura, banco de dados e suporte. Quem comenta é a Thaissa Bueno Sanches, Consultora de Azure Data & Arquitetura de AI na Avanade: “essa áreas possuem em comum a característica de ser marcado por trabalhos repetitivos ou de encontrar padrões, o que torna mais provável a substituição”, disse em entrevista a PrograMaria.

Ela conta que a área de suporte, por exemplo “está a cada dia mais automatizada,  incluindo sistemas automatizados de monitoramento e prevenção de falhas”. Muitas empresas têm migrado suas infraestruturas locais (os famosos data centers) para o chamado serviço em nuvem de empresas como Microsoft, Amazon, IBM etc, que utilizam tecnologias de IA em suas soluções. “Assim, profissionais de infraestrutura são cada vez menos necessários. Ao mesmo tempo, surge a nova necessidade da pessoa especialista em Cloud. Antes, era comum as empresas terem funcionários 24 horas por dia, 7 dias por semana trabalhando com monitoramento de servidores, sistemas, em salas cheias de gráficos painéis etc, o que já não é mais necessário com a migração para a nuvem”, completa.

Thaissa descreve o ganho que a IA trouxe para a área: “Antes do uso de IA e Machine Learning, só se descobria uma falha nos servidores depois que ela acontecia. Hoje é possível ter uma ideia de quando um hardware vai falhar usando a manutenção preditiva, que utiliza  modelos matemáticos a partir de séries temporais para identificar a probabilidade de resultados futuros com base em dados passados. O modelo indica o melhor momento para a manutenção antes que a falha ocorra. Ele faz isso com base na leitura em tempo real dos dados de diferentes sensores presentes nos equipamentos,  prevendo quando o padrão dos indicadores se assemelhará ao padrão conhecido que levou a uma falha no passado. Indo mais além, se uma falha é eminente, o dispositivo pode ser desligado automaticamente e os recursos usados transferidos pra outra maquina através de um mecanismo também automático chamado replicação

O que devs pensam sobre IA

Entre pessoas desenvolvedoras, as opiniões e percepções sobre IA se divergem. Segundo uma pesquisa da Stack Overflow de 2018 com mais de cem mil pessoas desenvolvedoras ao redor do mundo:

  • Acima de 72% estão mais animadas sobre as possibilidades geradas pelo uso de IA do que preocupadas com os perigos potenciais.
  • A automação de trabalhos é a principal razão de animação com IA.
  • A principal preocupação é com a tomada de decisões importantes por algoritmos, seguida do medo da “IA ultrapassar a inteligência humana” (a “singularidade tecnológica”).
  • Entre outras preocupações, há o receio de que as definições de “justiça” passarão a ser baseadas nas decisões algorítmicas mais do que em decisões humanas.

Para saber mais sobre os riscos em torno deste tema, fique de olho no Módulo 4 da Sprint PrograMaria – Inteligência Artificial para Devs, sobre os impactos da IA para a sociedade.

Qual perigo da IA?
– Algoritmos tomando decisões importantes
– IA ultrapassando a inteligência humana (a singularidade)
– Desenvolver definição de justiça nos algoritmos versus decisões humanas
– Aumento da automação de trabalhos
Fonte: Artificial Intelligence – What Do Developers REALLY Think About AI?

O que é mais animador em IA?
– Aumento da automação de trabalhos
– Algoritmos tomando decisões importantes
– IA ultrapassando a inteligência humana (a singularidade)
– Desenvolver definição de justiça nos algoritmos versus decisões humanas
Fonte: Artificial Intelligence – What Do Developers REALLY Think About AI?

Como a IA vai mudar o desenvolvimento

A IA já mudou o mundo do desenvolvimento. E devs podem até usar IA “sem saber”. Você usa plugins de java autocomplete? Codota é uma destas ferramentas que é uma aplicação de IA. Diversos algoritmos que hoje são considerado comuns foram desenvolvidos dentro do campo da Inteligência Artificial, como Busca em profundidade, Busca em largura, Garbage Collection e até mesmo de Sorting. Você sabia que o famoso algoritmo de ordenação QuickSort foi inventado para apoiar um programa que traduzia do Russo para o Inglês? (Fonte: Is Artificial Intelligence really intelligent?)

Outra aplicação de IA que você talvez já tenha ouvido falar são bots que detectam erros nos códigos, como Repairnator. Assim como esta, existem outras ferramentas que apoiam o trabalho de pessoas desenvolvedoras, entre elas Kite, DeepCode, Microsoft Prose, e pix2code.

Mas e aí, vai substituir ou não?

A discussão sobre a substituição das pessoas desenvolvedoras pela IA é profunda, envolvendo aspectos da teoria da computação e até mesmo filosóficos sobre a natureza da mente humana e da cognição.  O site Will Robots Take My Job? prevê uma chance de 48% de o trabalho das pessoas desenvolvedoras ser substituídos por IA. Já se fala nos impactos do front-end, área responsável pelo desenvolvimento de interfaces web, por conta da inteligência artificial. Há iniciativas como o próprio pix2code, da startup Uizard Technologies, e sketch2code, do Airbnb que usam deep learning para converter uma imagem de um mockup e converte em código HTML.

Esta demo mostra como uma rede neural foi ensinada a programar websites por meio da plataforma de deep-learning  FloydHub. A rede é treinada com páginas web e como os pixels se conectam às tags de HTML, aprendendo como o navegador renderiza o HTML na tela que você vê. Depois de treinado, a rede consegue receber uma nova imagem e convertê-la em código HTML! Veja mais detalhes em Treinando Inteligência Artificial para fazer código front-end. Se quiser se aprofundar nessa discussão, leia o O futuro do front-end na era da Inteligência Artificial.

Há um artigo do Laboratório Nacional de Oak Ridge, nos Estados Unidos, que prevê que os computadores, com a combinação de aprendizados de IA e de tecnologias de geração de código, serão capazes de realizar completamente o trabalho de programadores até 2040, e ainda farão de forma mais rápida e melhor do que os humanos. O paper argumenta que é possível que as pessoas desenvolvedoras passem mais tempo usando features como autocomplete e recomendação de código do que propriamente escrevendo novas linhas.

Já existem diversos experimentos que fizeram IA escrever códigos de programação. Em 2015, Andrej Karpathy, que hoje é diretor de IA na Tesla, fez um projeto com Redes Neurais Recorrentes para gerar código. Ele combinou todos os arquivos do repositório Linux no Github em um documento gigante com 400 MB de código em C e treinou a Rede. Ela gerou um código que parecia código, tinha funções, tinha parâmetro, variáveis, loops e até indentação correta e comentários. Mas o código tinha erros sintáticos, declarava variáveis, mas não usava ou não definia variáveis e, não fazia nada com nada. rs

Há outros exemplos de iniciativas que pesquisam a utilização de IA para escrever código, como o DeepCoder, criado pela Microsoft em colaboração com pesquisadores da Universidade de Cambridge, e o SketchAdapt, do MIT.

O próprio Andrej Karpathy defende que “O papel da pessoa engenheira de software se transformará em curador de dados. Boa parte das pessoas programadoras do amanhã não vão manter repositórios complexos de software ou escrever programas intrincados. Eles vão coletar, limpar, manipular, rotular, analisar e visualizar dados que alimentarão as redes neurais” (AI Is Not the End of Software Developers, tradução livre: IA não é o fim das pessoas desenvolvedoras de software).

Acredita-se que no futuro devs criarão e comporão grandes conjuntos de dados para treinar aplicativos para serem inteligentes, em vez de codificar os recursos desejados (em inglês). Para saber mais, leia este relatório da Delloite (em inglês) sobre como devs estão usando IA para apoiar o design, desenvolvimento e implementação de software.

Mas isso leva a outra discussão: o trabalho da pessoa é só escrever código? 🙂 Entender o desafio, navegar pelo contexto, desfazer ambiguidades das regras de negócio, dialogar com stakeholders, trabalhar em equipe, identificar pontos de melhoria… A lista de atribuições dessa profissão é extensa e dificilmente será substituída por completo.

A  consultora de Azure Data & Arquitetura de AI Thaissa Sanches não acredita em total substituição, até porque alguém precisa desenvolver as máquinas e que haverá, sim, “mudanças na forma de se trabalhar e programar”. A IA pode, sim, ajudar na automatização de digitação e passos lógicos, na detecção de bugs, inconsistências e erros comuns, além de vulnerabilidades, antes da revisão do código. A IA também pode sugerir alterações, fornecer recomendações para código final, gerar testes necessários automaticamente, identificar defeitos (ou falsos positivos) e determinar suas causas principais.

Aliás, uso de IA em testes de software tem se tornado bastante populares. No episódio do Hipsters.Tech: Testes de Software e Inteligência Artificial, eles falam sobre testes automatizados com IA, descrevendo o desafio de desenvolver ferramentas que escrevem os testes automaticamente, encontrando bugs de forma mais rápida e efetiva.

IA não é “bala de prata”

As ferramentas aprimoradas pela IA são um bom exemplo de como a tecnologia pode capacitar, em vez de substituir, a força de trabalho humana. Além disso, com a popularização da adoção de IA pelas empresas, que começam a criar as suas áreas de Ciência de Dados e Machine Learning (Veja como Creditas e Magalu estão fazendo nisso), e também a enxergar o potencial da IA para resolver com mais eficiência problemas cotidianos, se torna fundamental para as pessoas desenvolvedoras entenderem mais sobre o campo, suas aplicações e oportunidades. “Não necessariamente todo mundo vai precisar aprender a fundo algoritmos de IA ou estatística, o mais importante será saber o básico, como usar e integrar esse tipo de tecnologia, até porque muita coisa hoje já está pronta, bastando integrar no seu software. E a tendência é que cada vez mais surjam essas ferramentas que facilitam a adoção de soluções de IA”, completa ela.

Quer saber mais? Leia a entrevista “A Inteligência Artificial não possui a mesma sensibilidade e capacidade criativa de tirar novas conclusões em cima de dados existentes”, com Mikaeri Ohana, cientista de dados, e Google Developer Expert em Machine Learning.

Aproveite os diversos cursos online que estão pela rede (e fique de olho no Módulo 5 da Sprint PrograMaria, que trará informação e orientação sobre como trilhar os primeiros passos na IA)!

Referências: