Saiba como o Scrum pode tornar os seus projetos de Inteligência Artificial/Machine Learning mais valiosos

O Scrum está na moda, já que ele ajuda os projetos a serem mais ágeis. Neste artigo eu vou te explicar como essa prática ajuda os projetos de IA e ML.

Os projetos de Inteligência Artificial (IA) e Machine Learning (Aprendizado de Máquina) são um dos principais pontos de discussão no campo da tecnologia hoje em dia. A questão é que nem sempre esses projetos conseguem proporcionar valor imediato, já que ambos tem a característica da melhoria contínua, ou seja, vão sendo aperfeiçoados com o tempo. Por isso, a metodologia ágil do Scrum, é uma excelente opção para gerenciar esses projetos.

Para quem quer saber o que é o Scrum, eu recomendo dois artigos. O primeiro tem uma explicação bem detalhada sobre a definição desse framework, enquanto que o outro é uma comparação bem divertida do funcionamento do Scrum com o programa Masterchef:

Uma viagem ao túnel do tempo

Antes de entender o que é o Scrum, vamos fazer uma viagem, diretamente no túnel do tempo…

Se por um lado, hoje temos as metodologias ágeis, muito usadas por startups e por empresas que prezam por projetos de experimentação (como os projetos de IA/ML), a metodologia em cascata foi sempre uma prática tradicional para gerenciar projetos, por oferecer uma visibilidade estável e um fluxo para o progresso do projeto. Isso é feito por meio de cinco fases:

A metodologia em cascata é composta por cinco fases: Requisitos, Projeto, Implementação, Verificação e Manutenção.

Com esse modelo, não há ciclos de feedback e nem incentivo para revisar, retrabalhar ou revisitar uma etapa anterior. Exatamente o contrário do que acontece em projetos ágeis, onde o feedback é um dos itens mais valiosos para nortear um projeto.

Então, você pode supor que os métodos em cascata, apesar de serem possíveis de utilizar nos projetos de IA/ML, são quase inviáveis. Isso porque esse modelo mais preditivo é ideal quando o escopo do trabalho é bem definido e há poucas incertezas sobre o projeto, enquanto é pouco flexível, algo essencial para os projetos de IA/ML.

Os diferenciais do Scrum/Agile

Em comparação com o desenvolvimento tradicional de software, o Scrum (e consequentemente o Ágil) visa sistemas e projetos mais complexos, com características dinâmicas, indeterminadas e não lineares. Ou seja, projetos onde estimativas precisas, planos estáveis e previsões exatas estão longe de ser uma realidade.

Grande parte dos métodos ágeis, como o Scrum, buscam minimizar riscos por meio de desenvolvimento de software em períodos mais curtos, que se chamam iteração. Em cada uma dessas iterações, ocorre uma pequena e valiosa entrega de incrementos ao cliente, e tudo isso é feito com muito mais frequência, por meio das Sprints.

Assim, o cliente obtém valor de forma mais rápida e fornece feedbacks mais constantes, para que esses trabalhos recebam vários tipos de melhoria.

Além disso, um benefício dos métodos ágeis como o Scrum é aprender com a experiência, permitindo revisar e melhorar as etapas conforme as entregas são realizadas e o aprendizado aumenta, sem precisar definir tudo desde o início.

Aqui, eu quero enfatizar o “aprender com a experiência”, uma vez que isso é compatível com o funcionamento dos projetos de IA/ML.

Prepare-se para ciclos rápidos de adaptação e inspeção!

Um laboratório de IA/ML é um dos lugares ideais para obter toda a produtividade dos Times Scrum.

O foco do Scrum em ciclos rápidos de inspeção e adaptação significa que as equipes de projetos de IA/ML no contexto Ágil podem monitorar o seu progresso.

Isso é importante, pois as equipes de IA no Scrum conseguem inspecionar, iterar e se adaptar de forma mais rápida e em ritmo constante, fazendo alterações e adaptações em seu sistema de ML, garantindo que ele esteja sempre melhor.

Seja qual for o laboratório de ML que as equipes estejam usando (Keras, Tensorflow, CUDA, etc.), o Scrum ajuda na priorização das atividades do projeto, além de contribuir com atualizações contínuas.

Como o Scrum funciona para os projetos de IA/ML?

Para oferecer um exemplo mais real, eu vou utilizar como fonte esse artigo da DZone, uma das maiores comunidades online e fonte de conhecimento para desenvolvedores de software. Você pode conferir ele na íntegra aqui:

O Scrum é uma abordagem disciplinada para lidar com a complexidade e a incerteza. Chandan Lal Patary — autor do artigo — conta que no início, o projeto de IA/ML no qual ele estava trabalhando utilizava uma abordagem Lean, se transformando para o modelo do Scrum por meio de Sprints.

A partir disso, foi implementado um ritmo de trabalho em quatro etapas: Criar, Treinar, Implantar e Refletir. Cada uma dessas etapas possui algumas atividades:

Criar

  • Declaração do problema — Conversa com o cliente e as partes interessadas para classificar e definir os problemas relacionados ao negócio. São formuladas perguntas que ilustram as metas de negócio nas quais as técnicas de ciências de dados podem se concentrar;
  • Obtenção dos dados — A quantidade e a qualidade dos dados determinam a validade do modelo. O resultado deste exercício é uma representação dos dados que serão usados para treinamento;
  • Entendimento dos dados — Como o próprio nome diz, essa atividade é concentrada em compreender o resultado dos dados;
  • Processamento dos dados — Nessa atividade, é preciso agrupar os dados e fortalecê-los para o treinamento. É feito uma limpeza do que pode ser essencial (duplicações, imprecisões, relação com valores ausentes, normalização, conversões dos tipos de dados, etc.). Além disso, randomizamos os dados, o que elimina os efeitos da ordem específica em que coletamos ou preparamos os dados de outro modo. Por fim, a visualização dos dados pode ajudar a detectar relações entre variáveis ou diferenças de classe, e talvez seja preciso outras análises exploratórias.

Treinar

Nessa fase, temos o treinamento, avaliação e ajuste do modelo.

Então, ela é bem simples, já que só vai tratar do conjunto de dados que pertence a um algoritmo, sendo que esse algoritmo aproveita uma modelagem matemática sofisticada para interpretar e desenvolver previsões.

Assim, é possível verificar se esse modelo se comporta de forma satisfatória para produção, além de avaliar o treinamento e teste desse conjunto de dados. É possível utilizar uma série de algoritmos concorrentes para aprendizado de máquina, além de vários parâmetros de ajuste associados e que são acomodados para solucionar a significância dos dados em questão.

Implantar e Refletir

Essas duas etapas se relacionam, e servem para fundamentar o modelo treinado. Será aqui que você vai empregar os dados de teste e também vai analisar a precisão do modelo.

Se esses resultados não forem bons, podemos modificar e treinar novamente o modelo. Depois disso, a coleção de modelos funciona satisfatoriamente, e podemos colocá-la em operação para que outras aplicações a absorvam. Dependendo dos requisitos de negócio que foram definidos, as previsões são constituídas em tempo real ou via cluster.

Por fim, essa atividade resulta em avaliar o modelo com as partes interessadas do negócio. Isso fará com que outros elementos de dados sejam incluídos (ou não) no modelo. Poderá ser preciso também revisar a escolha do algoritmo e adaptar os parâmetros do algoritmo nomeado para revisar o desempenho.

(Perceba que essa última atividade ligada pelo autor soa bastante parecida com a Reunião de Revisão da Sprint, onde os “incrementos” de um determinado produto são entregues).

Membros do Time Scrum nos Projetos de Inteligência Artificial/Machine Learning

O Time Scrum é uma equipe multifuncional e auto-organizada, sempre tendo em mente um propósito comum. Aqui vai uma lista dos componentes de um Time Scrum em projetos de IA/ML:

Scrum Master — Responsável por garantir o Scrum conforme ele é descrito no Scrum Guide. Ele faz isso ajudando todos a compreender a teoria e prática do Scrum, ou seja, não apenas o Time Scrum em si, como a própria organização;

Product Owner — Responsável por maximizar o valor do produto resultante do trabalho do Time Scrum. A forma como isso é feito varia de organização para organização;

Desenvolvedores — As pessoas do Time Scrum que se comprometem em criar qualquer Incremento utilizável nas Sprints. No caso de um projeto de IA/ML, esse time de desenvolvimento geralmente é composto por:

  • Analista de dados;
  • Cientista de dados;
  • Engenheiros de dados;
  • Engenheiros de software.

Uma verdade (quase) absoluta

Ainda que muitos concordem que o Ágil, seja por meio do Scrum ou por qualquer outra prática, funcione muito bem nos projetos de IA/ML, algumas pessoas discordam dessa informação.

Como exemplo, eu posso lembrar de um artigo que saiu na Forbes ano passado, escrito por Kathleen Walch. Caso queira ler o texto inteiro, é só acessar o link que vou deixar logo abaixo:

O título escrito pela autora, “Por que as Metodologias Ágeis erram o alvo em projetos de IA e ML”, acaba “denunciando” como a ausência de uma definição mais exata do que seria um incremento “entregável” complica o uso do Agile.

Poderíamos refutar essa questão, dizendo que o modelo de machine learning é uma entrega, quando na realidade ele pode ser visto (segundo a autora) como um facilitador de uma entrega, não fornecendo nenhuma funcionalidade mais concreta. Se nos aprofundarmos mais nos modelos de aprendizado de máquina, fica difícil saber o que exatamente está nesse modelo. Afinal, ele é apenas um código algorítmico combinado com dados do modelo de treinamento (se for supervisionado), configurações de parâmetros, dados de configuração de hiperparâmetros, entre outros componentes técnicos.

Na realidade, você pode ter o mesmo algoritmo com dados de treinamento diferentes, gerando um modelo diferente, ou você pode ter um algoritmo diferente com os mesmos dados de treinamento, gerando um modelo diferente.

Com isso, se torna difícil definir o que é a entrega nesse contexto.

Por isso, a autora defende o uso de outras abordagens não-ágeis para aumentar a eficiência do próprio Ágil nesse tipo de projeto. A principal seria o Cross-industry standard process for data mining (CRISP-DM), que foca na interação contínua para diversos dados, o que auxilia em um projeto que manuseia tantos dados.

Abrace o Scrum/Agile sem medo de ser feliz (Mas cuidado com as ressalvas)!

Com tudo isso que foi dito, fica claro que, apesar de algumas ressalvas, o Ágil (seja com o Scrum ou com outra abordagem), ainda é uma ótima opção para projetos de IA/ML. Com sua abordagem iterativa, que gera ciclos contínuos de feedback, o Scrum pode proporcionar ainda mais valor para um projeto tecnológico tão complexo, sofisticado e que depende do “aprendizado pela experiência”.

Se você gostou desse conteúdo, não deixe de me seguir nas redes sociais: @adrianopontocafe

Um grande abraço e até mais 😊

CEO & Fundador da PMG Academy | MBA-FGV | Pós-Graduado Neurociência Educacional | Consultor de TI | Design Instrucional na https://www.pmgacademy.com

CEO & Fundador da PMG Academy | MBA-FGV | Pós-Graduado Neurociência Educacional | Consultor de TI | Design Instrucional na https://www.pmgacademy.com