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.