Agile Data Science - Conceitos de Metodologia

Neste capítulo, vamos nos concentrar nos conceitos do ciclo de vida de desenvolvimento de software denominado “ágil”. A metodologia de desenvolvimento de software Agile ajuda na construção de um software por meio de sessões incrementais em iterações curtas de 1 a 4 semanas para que o desenvolvimento esteja alinhado com os requisitos de negócios em constante mudança.

Existem 12 princípios que descrevem a metodologia Agile em detalhes -

Satisfação dos clientes

A maior prioridade é dada aos clientes com foco nos requisitos por meio da entrega antecipada e contínua de software valioso.

Recebendo novas mudanças

As alterações são aceitáveis ​​durante o desenvolvimento do software. Os processos ágeis são projetados para funcionar de forma a corresponder à vantagem competitiva do cliente.

Entrega

A entrega de um software funcional é fornecida aos clientes dentro de um período de uma a quatro semanas.

Colaboração

Analistas de negócios, analistas de qualidade e desenvolvedores devem trabalhar juntos durante todo o ciclo de vida do projeto.

Motivação

Os projetos devem ser elaborados com um clã de indivíduos motivados. Ele fornece um ambiente para apoiar os membros individuais da equipe.

Conversa pessoal

A conversa face a face é o método mais eficiente e eficaz de enviar informações para e dentro de uma equipe de desenvolvimento.

Medindo o progresso

Medir o progresso é a chave que ajuda a definir o andamento do projeto e do desenvolvimento de software.

Manter um ritmo constante

O processo ágil se concentra no desenvolvimento sustentável. A empresa, os desenvolvedores e os usuários devem ser capazes de manter um ritmo constante com o projeto.

Monitoramento

É obrigatório manter atenção regular à excelência técnica e ao bom design para aprimorar a funcionalidade ágil.

Simplicidade

O processo ágil mantém tudo simples e usa termos simples para medir o trabalho que não é concluído.

Termos auto-organizados

Uma equipe ágil deve ser auto-organizada e independente com a melhor arquitetura; requisitos e designs surgem de equipes auto-organizadas.

Reveja o trabalho

É importante revisar o trabalho em intervalos regulares para que a equipe possa refletir sobre como o trabalho está progredindo. A revisão do módulo em tempo hábil melhorará o desempenho.

Stand-up diário

Levantar-se diariamente refere-se à reunião diária de status entre os membros da equipe. Fornece atualizações relacionadas ao desenvolvimento de software. Também se refere a abordar os obstáculos do desenvolvimento do projeto.

O stand-up diário é uma prática obrigatória, não importa como uma equipe ágil seja estabelecida, independentemente da localização do escritório.

A lista de recursos de um stand-up diário é a seguinte -

  • A duração dos encontros diários em pé deve ser de aproximadamente 15 minutos. Não deve se estender por um período maior.

  • O stand-up deve incluir discussões sobre a atualização do status.

  • Os participantes dessa reunião geralmente se levantam com a intenção de acabar se encontrando rapidamente.

História do usuário

Uma história é geralmente um requisito, que é formulado em poucas frases em linguagem simples e deve ser concluída em uma iteração. Uma história de usuário deve incluir as seguintes características -

  • Todo o código relacionado deve ter check-ins relacionados.

  • Os casos de teste de unidade para a iteração especificada.

  • Todos os casos de teste de aceitação devem ser definidos.

  • Aceitação do product owner enquanto define a história.

O que é Scrum?

Scrum pode ser considerado um subconjunto da metodologia ágil. É um processo leve e inclui os seguintes recursos -

  • É uma estrutura de processo, que inclui um conjunto de práticas que precisam ser seguidas em uma ordem consistente. A melhor ilustração do Scrum é seguir iterações ou sprints.

  • É um processo “leve”, o que significa que o processo é mantido tão pequeno quanto possível, para maximizar a saída produtiva na duração especificada.

O processo Scrum é conhecido por seu processo de diferenciação em comparação com outras metodologias de abordagem ágil tradicional. Está dividido nas seguintes três categorias -

  • Roles

  • Artifacts

  • Caixas de Tempo

As funções definem os membros da equipe e suas funções incluídas ao longo do processo. O Time Scrum consiste nas seguintes três funções -

  • Scrum Master

  • Proprietário do produto

  • Team

Os artefatos Scrum fornecem informações importantes das quais cada membro deve estar ciente. As informações incluem detalhes do produto, atividades planejadas e atividades concluídas. Os artefatos definidos no framework Scrum são os seguintes -

  • Backlog do produto

  • Sprint backlog

  • Gráfico de queima

  • Increment

As caixas de tempo são as histórias de usuário planejadas para cada iteração. Essas histórias de usuário ajudam a descrever os recursos do produto que fazem parte dos artefatos Scrum. O backlog do produto é uma lista de histórias de usuários. Essas histórias de usuários são priorizadas e encaminhadas às reuniões de usuários para decidir qual delas deve ser retomada.

Por que Scrum Master?

Scrum Master interage com todos os membros da equipe. Vamos agora ver a interação do Scrum Master com outras equipes e recursos.

Proprietário do produto

O Scrum Master interage com o proprietário do produto das seguintes maneiras -

  • Encontrar técnicas para alcançar o backlog efetivo de produtos de histórias de usuários e gerenciá-las.

  • Ajudar a equipe a entender as necessidades de itens de backlog de produtos claros e concisos.

  • Planejamento de produto com ambiente específico.

  • Garantir que o product owner saiba como aumentar o valor do produto.

  • Facilitar eventos Scrum como e quando necessário.

Time Scrum

O Scrum Master interage com a equipe de várias maneiras -

  • Treinar a organização na adoção do Scrum.

  • Planejando implementações de Scrum para a organização específica.

  • Ajudar os funcionários e partes interessadas a compreender os requisitos e as fases de desenvolvimento do produto.

  • Trabalhar com Scrum Masters de outras equipes para aumentar a eficácia da aplicação de Scrum da equipe especificada.

Organização

O Scrum Master interage com a organização de várias maneiras. Alguns são mencionados abaixo -

  • A equipe de coaching e scrum interage com a auto-organização e inclui um recurso de funcionalidade cruzada.

  • Treinar a organização e as equipes em áreas onde o Scrum ainda não foi totalmente adotado ou não foi aceito.

Benefícios do Scrum

Scrum ajuda os clientes, membros da equipe e stakeholders a colaborar. Inclui abordagem com prazo definido e feedback contínuo do proprietário do produto, garantindo que o produto esteja em condições de funcionamento. Scrum oferece benefícios para diferentes funções do projeto.

Cliente

Os sprints ou iterações são considerados para uma duração mais curta e as histórias de usuário são projetadas de acordo com a prioridade e são consideradas no planejamento do sprint. Ele garante que a cada entrega de sprint, os requisitos do cliente sejam atendidos. Caso contrário, os requisitos são anotados e planejados e levados para o sprint.

Organização

A organização com a ajuda de Scrum e Scrum masters pode focar nos esforços necessários para o desenvolvimento de user stories, reduzindo assim a sobrecarga de trabalho e evitando retrabalho, se houver. Isso também ajuda a manter o aumento da eficiência da equipe de desenvolvimento e satisfação do cliente. Essa abordagem também ajuda a aumentar o potencial do mercado.

Gerentes de Produto

A principal responsabilidade dos gerentes de produto é garantir que a qualidade do produto seja mantida. Com a ajuda do Scrum Masters, torna-se fácil facilitar o trabalho, reunir respostas rápidas e absorver alterações, se houver. Os gerentes de produto também verificam se o produto projetado está alinhado de acordo com os requisitos do cliente em cada sprint.

Equipe de desenvolvimento

Com a natureza limitada pelo tempo e mantendo os sprints por um período menor de tempo, a equipe de desenvolvimento fica entusiasmada para ver se o trabalho é refletido e entregue corretamente. O produto de trabalho incrementa cada nível após cada iteração, ou melhor, podemos chamá-los de “sprint”. As histórias de usuário projetadas para cada sprint tornam-se a prioridade do cliente, agregando mais valor à iteração.

Conclusão

Scrum é uma estrutura eficiente dentro da qual você pode desenvolver software em trabalho em equipe. É totalmente projetado com base em princípios ágeis. ScrumMaster está lá para ajudar e cooperar com a equipe Scrum de todas as maneiras possíveis. Ele atua como um personal trainer que o ajuda a cumprir o plano projetado e realizar todas as atividades de acordo com o plano. A autoridade do ScrumMaster nunca deve se estender além do processo. Ele / ela deve ser potencialmente capaz de gerenciar todas as situações.