O engenheiro de software Quoc Le cresceu no Vietnã rural, em uma pequena aldeia que não tinha eletricidade até os nove. Mas isso não o impediu de se tornar um candidato a PhD em Stanford em 2007, elaborando uma estratégia que permitiria que o software aprenda coisas por si só.
Os acadêmicos começaram a relatar resultados promissores, mas muito lentos, com um método conhecido como aprendizado profundo, que usa redes de neurônios simulados.
O Le encontrou uma maneira de acelerar significativamente esse método, criando redes neurais simuladas 100 vezes maiores que poderiam processar milhares de vezes mais dados.
Era uma abordagem prática o suficiente para atrair a atenção do Google, que o contratou para testá-lo sob a orientação do investigador AI Andrew Ng.
Quando os resultados se tornaram públicos em 2012, eles provocaram uma corrida em empresas como Facebook, Microsoft e outros para investir em pesquisas de aprendizagem profunda.
Sem orientação humana, o sistema havia aprendido a detectar gatos, pessoas e mais de 3.000 outros objetos, apenas ingerindo 10 milhões de imagens de vídeos do YouTube . Provou que as máquinas poderiam aprender sem a assistência laboriosa dos humanos e chegar a novos níveis de precisão para inicializar.
Percebe-se que um dia, o código de software e as aplicações poderiam ser escritas sem intervenção humana, mas a realidade é provavelmente décadas de distância e vamos começar a ver uma abordagem mais híbrida no caminho do desenvolvimento de software. Usando programas de computador orientados a AI e ferramentas de fluxo de trabalho para auxiliar o desenvolvedor e atingir o objetivo de aumentar sua produtividade.
Os desenvolvedores agora podem construir o código mais rapidamente e de forma mais confiável do que as gerações anteriores. Implantando software nas mãos dos usuários com maior velocidade e agilidade.
À medida que o iPhone comemora seu 10º aniversário, é claro que a paisagem de desenvolvimento de software mudou dramaticamente ao longo da última década. Carros de auto-condução, foguetes auto-aterradores e zangões auto-voadores são apenas alguns dos inovadores produtos de usuários finais que costumam dominar as manchetes. Mas eles ainda têm software em seu coração e engenheiros fantásticos que codificaram amorosamente cada linha.
O mundo que nos rodeia está ficando mais inteligente, e também as ferramentas que usamos para criar software. Melhorando a velocidade, qualidade e confiabilidade do software entregue nas mãos do usuário.
Tradicionalmente, os desenvolvedores confiaram em seus usuários para detectar problemas que eles enfrentam quando suas aplicações estão em produção, mas tudo isso está mudando à medida que as ferramentas de desenvolvimento crescem em sofisticação.
Um relatório recente da Tricentis identificou 548 softwares gravados falharem em 2016 atingindo as manchetes, impactando 4,4 bilhões de pessoas e US $ 1,1 trilhão em ativos.
É claro que, mesmo em organizações de grandes empresas com ferramentas de testes e análises em massa, os erros têm o hábito de se esgueirar sem ser capturados. Afetando as experiências dos usuários finais dos clientes, essas empresas trabalham tanto para deliciar.
Ferramentas de inteligência de software e rastreamento de erros que podem dizer o que há de errado com sua aplicação e por que já são usadas pelas empresas mais inovadoras do mundo, e elas ficarão ainda mais inteligentes.
Negando a necessidade de os usuários reportarem problemas, essas ferramentas estão direcionando aos desenvolvedores diretamente quando prestar atenção e onde as causas originais das questões, em última instância, são decorrentes de uma profunda análise diagnóstica. Contornando as equipes de suporte ao cliente lento ou mal informado e indo direto para as pessoas que podem agir.
Os engenheiros podem ser alocados para criar novos recursos, funcionalidades e produtos em vez de mantê-los, dando-lhes uma visão sem paralelo sobre como seus aplicativos estão se comportando de forma selvagem.
À medida que as aplicações estão se tornando mais complexas, as ferramentas de desenvolvimento e análise provavelmente sabem mais sobre seu software e clientes do que você.
Agora, não haverá desculpa para o envio de software de crappy .
E se você acha que a inteligência artificial está aqui para roubar lenta e sistematicamente seu trabalho, talvez ele possa oferecer-lhe um em vez disso.
O assistente de recrutamento da FirstJob, com base no AI, Mya engaja inteligentemente com os candidatos através do pipeline de contratação. Os recrutadores só precisam intervir onde o assistente não pode lidar com uma entrada específica e isso permite que as organizações processem mais aplicativos em um período de tempo mais curto.
Este tipo de inteligência artificial e aprendizagem inteligente está se tornando cada vez mais prevalente nas ferramentas que usamos para criar e manter o software.
Basta olhar para as idéias automatizadas do Google para um excelente exemplo de como o arrasto através de um palheiro de dados agora é tão simples quanto fazer uma pergunta.
Funcionalidade como esta prevalecerá em futuras aplicações de software, com o objetivo de tornar a equipe mais inteligente e mais produtiva. Empoderando-os para tomar melhores decisões ao invés de substituí-las completamente.
Após a pesquisa da Forrester pesquisou 25 equipes de desenvolvimento e entrega de aplicativos, os entrevistados disseram que a IA melhorará o planejamento, desenvolvimento e especialmente testes.
Os desenvolvedores de software poderão construir um software melhor, mais rápido, usando tecnologias de AI, como aprendizado avançado de máquinas, aprendizado profundo, processamento de linguagem natural e regras de negócios.
A integração e a entrega contínuas também estão aumentando a velocidade à medida que as equipes começam a se afastar dos grandes ciclos de lançamento assustadores em favor de implantações mais iterativas e menores. Com muitas atualizações de envio, lançamentos de recursos e correções de erros várias vezes ao dia.
De acordo com um estudo , equipes de alto desempenho que implementaram um modelo de entrega de implantação contínua ganharam uma vantagem ainda maior ao longo do ano passado. Recuperando rapidamente cortes de produção e infraestrutura e evitando falhas em primeiro lugar.
Isto é provável que lhes dê uma vantagem em satisfazer seus clientes, porque eles têm muitas mais chances de oferecer um novo valor e o que eles liberam é de maior qualidade. O resultado é um tempo de mercado mais rápido, uma melhor experiência do cliente e maior capacidade de resposta às mudanças no mercado.
A engenharia de software e o desenvolvimento web têm experimentado uma enorme inovação ao longo dos últimos anos. As equipes são o código de envio mais rápido do que nunca, com maior qualidade e com maior complexidade.
AI e ferramentas de inteligência de software visam tornar o desenvolvimento de software mais fácil e mais confiável para engenheiros de software da linha de frente em vez de roubar os trabalhos dos programadores tradicionais.
No entanto, as equipes que estão lentas para adotar essas inovações e novas metodologias podem perder seus concorrentes mais ágeis e capazes.
Então, como será o desenvolvimento de software dentro de dez anos?
Acho que teremos que esperar e ver.