Aplicando Metodologia Ágil a Projetos de Ciência de Dados

Aplicando Metodologia Ágil a Projetos de Ciência de Dados

28 de March, 2020 0 By António César de Andrade
Click to rate this post!
[Total: 0 Average: 0]


Os princípios e valores ágeis podem ser aplicados à maneira como você aborda os projetos de ciência de dados

As metodologias de gerenciamento de projetos são comumente usadas para realizar projetos ou produzir um produto (ou referido como uma ferramenta). Eles são, em geral, processos e estruturas que dividem o objetivo geral de tarefas individuais organizadas em uma linha do tempo. Isso pode ser adaptado para ser usado para abordar projetos de ciência de dados.

No passado, o tradicional Metodologia Waterfall (datada de 1970) tem sido muito popular. Ele define todos os requisitos e parâmetros do produto no início, para que a equipe do projeto possa trabalhar em direção a esse objetivo em fases seqüenciais. Este método tem sido muito adequado para a indústria de transformação, onde as especificações do produto raramente variam com o tempo. Requer planejamento inicial muito extenso e, idealmente, o produto final é exatamente o mesmo que o especificado no começo.

Quando a metodologia Waterfall está se tornando inadequada, muitos metodologias populares de gerenciamento de projetos surgiram ao longo dos anos, especialmente na indústria de desenvolvimento de software. Deixe-me compartilhar o mais popular.

Cachoeira vs Agile. Figura por autor.

Metodologia ágil

Metodologia ágil foi desenvolvido em 2001 e é amplamente utilizado para gerenciar projetos de desenvolvimento de software. É adequado para ciclos de desenvolvimento acelerados e possui provisões para alterações nas especificações durante o processo de design e construção. É flexível e busca a melhoria incremental iterativa do produto através da colaboração da equipe. Projetos ágeis são caracterizados por uma série de tarefas que são concebidas, executadas e adaptadas conforme a situação exige. As equipes ágeis respondem aos requisitos imprevisíveis (conforme o projeto se desenvolve) por meio de processos de trabalho iterativos.

Abaixo estão Princípios ágeis que servem como diretrizes para a maneira de trabalhar:
• Satisfação do cliente através da entrega antecipada e contínua de software
• Acomodar requisitos variáveis ​​durante todo o processo de desenvolvimento
• Entrega frequente de software de trabalho, pois o software de trabalho é a principal medida de progresso
• Colaboração e interação entre as partes interessadas do negócio (cliente) e desenvolvedores (fornecedor) em todo o projeto, incluindo comunicação frente a frente dentro da equipe de desenvolvimento
• Apoiar, confiar e motivar as pessoas envolvidas
Estruturas ágeis para suportar um ritmo consistente de desenvolvimento
• A atenção aos detalhes técnicos e design aumenta a agilidade
• Simplicidade na busca de soluções
• Reflexões regulares na equipe auto-organizada sobre como se tornar mais eficaz

O foco da metodologia Agile não é o que fazer, mas como pensar; valoriza e coloca prioridade em:
• Indivíduos e interações (em vez de processos e ferramentas)
• Software de trabalho (em vez de documentação abrangente)
• Colaboração com o cliente (em vez de negociação de contrato)
• Responder a mudanças (em vez de seguir um plano predeterminado / fixo)

Maneira ágil de trabalhar. Figura por autor.

Embora os princípios e prioridades do Agile sejam empregados para aumentar a produtividade, a maioria deles pode ser aproveitada para projetos de ciência de dados (DS). Além disso, os cientistas de dados não sabem como agendar o projeto porque é impossível determinar um cronograma específico. A maioria dos projetos do DS exige tentativa e erro, seguindo caminhos diferentes e tentando técnicas diferentes. Eles não possuem um elemento de certeza na saída; portanto, o Agile é mais adequado para ser adotado para direcionar o fluxo de trabalho.

A maioria dos outros projetos lida com o que os clientes querem, o que os desenvolvedores querem e o que a empresa procura. Ao trabalhar com o DS, outra perspectiva é adicionada: o que os dados estão dizendo. Os cientistas de dados não podem entender os dados a menos que desenvolvam uma compreensão básica deles. Há muita investigação, exploração, teste e ajuste. O Agile usa o conceito de iteração e feedback constante para refinar um sistema em desenvolvimento, a fim de avançar no Pirâmide de valor de dados.

Pirâmide de valor de dados. Figura por autor.

Ao trabalhar em projetos do DS, as idéias não são alcançáveis ​​imediatamente; várias iterações são necessárias antes que qualquer insight possa ser descoberto. Vou explicar as principais práticas de trabalho ágeis (Estrutura Scrum) e como eles podem ser aplicados ao DS:

  1. Definir a necessidade do negócio e o objetivo do projeto. Isso geralmente é conduzido pelo proprietário do produto, responsável pelos recursos e pela qualidade do produto. É a coisa mais importante, mas essa é a crença principal a que você se referirá ao construir. No DS, o proprietário do produto pode ser o cliente, a empresa ou o cliente final (por exemplo, usuário final de uma ferramenta de previsão). Entenda quais problemas o proprietário do produto está enfrentando e adapte a proposta do projeto para atender às suas necessidades.
  2. Crie o backlog. Concentrando-se nos requisitos do usuário (“histórias do usuário” no Agile), uma lista de tarefas é derivada a ser realizada para criar recursos do produto ou melhorar o desempenho do produto. A equipe do DS cria o backlog em conjunto com o proprietário do produto para determinar os recursos e os objetivos de desempenho do produto. O backlog pode começar com a obtenção dos dados de maneira estruturada antes que eles possam ser analisados. Em seguida, pode ser uma lista para seleção de recursos ou engenharia de recursos, ou uma lista de modelos para selecionar, ajustar e otimizar.
  3. Priorizar a lista de pendências, identifique as tarefas de lista de pendências que trarão mais valor com o mínimo de esforço. No DS, nem toda abordagem vale a pena tentar; portanto, cubra as mais promissoras primeiro. Quando os principais são transmitidos, você pode achar que os outros restantes não são tão importantes quanto se pensava inicialmente.
  4. Faça um sprint (o trabalho de desenvolvimento real). Sprints são geralmente ciclos de duas semanas nas quais tarefas de alta prioridade na lista de pendências são trabalhadas. No DS, cada sprint pode levar de duas a quatro semanas, dependendo do tamanho da equipe. Durante o sprint, sempre complete a tarefa com a maior prioridade antes de passar para a próxima da fila.
  5. Tenha standups diários. As reuniões stand-up são para que os membros da equipe prestem contas uns aos outros sobre o progresso no sprint atual. Cada membro da equipe se revezam no relatório de status – o que foi feito no dia anterior, o que fazer hoje, possíveis obstáculos. A comunicação mais eficaz acontece quando os membros da equipe do DS se encontram pessoalmente para compartilhar seu trabalho.
  6. Revise a saída do sprint (reunião retrospectiva do sprint). No final de duas semanas, deve haver uma saída funcional para a equipe do projeto demonstrar, com uma melhoria incremental no produto. Os cientistas de dados devem compartilhar as saídas antes de tentar aperfeiçoar os processos. Obtenha feedback das partes interessadas do cliente e prepare-se para o próximo sprint. O feedback regular é um princípio essencial para a maneira Agile de melhoria incremental iterativa.
  7. Prepare-se para o próximo sprint. Identifique as tarefas que estão indo bem para continuar realizando e identifique aquelas que são impedimentos a serem removidos. É importante entender o fato de que, diferentemente do desenvolvimento de software, o DS é mais baseado em experimentos do que em tarefas. O DS ajuda a explorar os dados, para que sejam tratados como vários experimentos de pesquisa. Mais uma vez, crie e priorize a lista de pendências para que o próximo sprint possa ser realizado, para trabalhar nas próximas áreas de melhoria.
  8. Lançar o produto final. Quando todas as partes interessadas concordam que não são necessárias mais melhorias no produto, ele está pronto para a implantação final. Os projetos do DS seguem a “lei da melhoria decrescente”. Por exemplo, se um modelo alcançou uma precisão de 70%, a próxima melhoria de 5 a 10% exigirá muito mais esforço do que antes e também depende das limitações no conjunto de dados. Decida na equipe se os esforços valem a melhoria incremental.

foto por You X Ventures em Unsplash

Desafios com o cliente

Além de ter uma comunicação adequada entre a equipe do DS e o cliente, as expectativas do cliente devem ser gerenciadas. Todos os clientes geralmente adoram a idéia de que o Agile é flexível e concede a eles mais oportunidades de mudar de idéia à medida que o projeto se desenvolve. No entanto, eles podem não perceber que essa flexibilidade também é cara em tempo e dinheiro. Aqui estão algumas coisas que você deve fazer:

(I) Faça o cliente entender que flexibilidade é inevitavelmente cara. É como um bilhete econômico flexível de tarifa completa, que permite que a mudança de itinerário custe muito mais do que a tarifa fixa. Fazer alterações na decisão também significa que o cliente está pagando pelo tempo e esforço perdidos no passado.

(II) Defina a expectativa do cliente de dedicar tempo a freqüentes reuniões retrospectivas do sprint (por exemplo, a cada duas semanas) para avaliar os sprints concluídos. Além disso, o representante do cliente em cada reunião precisa ser (com poderes pela alta gerência) capaz de tomar decisões sobre as especificações do produto. Para o Agile funcionar, o cliente precisa fornecer feedback contínuo e definição de prioridades para manter o projeto em movimento.

(III) ganhar do cliente Confiar em que cada iteração seja realizada com os melhores esforços possíveis para agregar valor e melhorar o produto. Enquanto detém o poder de tomada de decisão, o cliente também espera que uma iteração tenha uma tremenda melhoria. Esse desequilíbrio de responsabilidade no relacionamento cliente-fornecedor deve ser convertido em confiança mútua e vontade de experimentar juntos. Princípio do Agile em colaboração significa que é um esforço de equipe na tomada de decisões e na entrega de valor.

foto por You X Ventures em Unsplash

Produto com minima viabilidade

Um dos principais recursos da maneira de trabalhar com Agile é o desenvolvimento de um produto mínimo viável (MVP), qual é o configuração mais fundamental do produto (ou ferramenta). Após a definição dos objetivos do projeto, é feita uma proposta sobre a abordagem do problema, incluindo o MVP a ser construído no menor tempo possível, por exemplo, um mês para projetos do DS. O MVP possui apenas as funcionalidades mais importantes, mas seu desempenho pode não ser o mais ideal.

Parece muito arriscado colocar uma versão menos que concluída para o cliente testar; portanto, a equipe (incluindo o cliente) precisa estar preparada para isso. O objetivo é fazer o MVP funcionar, testá-lo e verificar se ele está realmente na direção correta para resolver o problema, ajudando assim o caso de negócios. O MVP crescerá melhor, porque a equipe do DS usará o que aprendeu com os comentários do MVP para criar uma versão melhorada. Agile é implantar e aprender continuamente com seus erros e trabalhar com o cliente para melhorar o produto.

Natureza iterativa do Agile. Figura retirada de “); tamanho do plano de fundo: 1px 1px; posição do plano de fundo: 0px calc (1em + 1px);”> TowardsDataScience.

Agile é planejar, construir, testar, aprender, repetir

Entrega do projeto do DS

A metodologia Agile permite aos cientistas de dados a capacidade de priorizar e criar roteiros com base em requisitos e metas. A cada iteração, os cientistas de dados podem aprender algo novo, obter resultados mais refinados e utilizá-los para a próxima melhoria incremental. Abaixo estão alguns resultados do projeto Agile para moldar e orientar o processo do projeto:
Declaração da visão do projeto: Um resumo que articula os objetivos do projeto.
Roteiro do projeto: A visão de alto nível dos requisitos necessários para alcançar a visão do projeto.
Lista de pendências do projeto: Ordenada por prioridade, esta é a lista completa do que é necessário para dar suporte ao seu projeto.
Plano de liberação: Um cronograma para o lançamento de um produto (ou ferramenta) funcional, mas não a documentação. Os projetos devem se auto-documentar ao longo do caminho.
Lista de pendências do Sprint: As histórias do usuário (requisitos), metas e tarefas vinculadas ao sprint atual.
Incremento: A funcionalidade do produto de trabalho que é apresentada às partes interessadas no final do sprint e pode ser potencialmente fornecida ao cliente.


Sumário

Espera-se que as metodologias ágeis se tornem mais comuns para projetos do DS em um futuro próximo. Muitos cientistas de dados relataram que os torna mais produtivos. Isso não ocorre porque os cientistas de dados se tornaram mais hábeis, mas porque o Agile pode ajudá-los a otimizar seus projetos. Em vez de gastar tempo com modelos que provavelmente não revelam resultados produtivos, é melhor gastar esse tempo para outros fins direcionados a resultados.

Ser “ágil” (flexível) significa que você precisa adotar uma abordagem dinâmica no planejamento e ser adaptável às novas necessidades da nova situação quando ela surgir. O ambiente Agile apela a uma ação rápida, falha rapidamente, discute e avalia e tente novamente usando uma abordagem diferente ou um método aprimorado. Funciona muito bem em ambientes dinâmicos, onde há um potencial de alteração ou evolução de requisitos.

Tudo de bom para seus projetos de DS!


Referência:
Ciência de dados? Ágil? Ciclos? Meu método para gerenciar projetos de ciência de dados na indústria de alta tecnologia.



Fonte