Definição
Agile (desenvolvimento ágil de software) é uma família de abordagens “ágeis” para o desenvolvimento de software. Essas abordagens também são às vezes chamadas de frameworks ou metodologias ágeis.
O Agile se originou no ambiente de TI, mas depois se espalhou para outras áreas – da engenharia industrial à inteligência artificial.
O significado de Agile é formulado no Manifesto de Desenvolvimento de Software Ágil: “Pessoas e interações são mais importantes do que processos e ferramentas. Um produto funcional é mais importante do que uma documentação abrangente. A cooperação com o cliente é mais importante do que concordar com os termos do contrato. Estar pronto para a mudança é mais importante do que seguir o plano original. “
O Manifesto Ágil é o documento mestre de todas as abordagens de desenvolvimento ágil. Criado em 2001 por um grupo de programadores entusiasmados que queriam entender o que exatamente está no centro do desenvolvimento de um produto de TI útil e procurado, o Agile assume que, ao implementar um projeto, você não precisa depender apenas de planos detalhados que foram criados com antecedência. É importante focar nas condições em constante mudança do ambiente externo e interno e levar em consideração o feedback de clientes e usuários. Isso incentiva os desenvolvedores e engenheiros a experimentar e buscar novas soluções sem serem limitados por estruturas e padrões rígidos.
Abordagens ágeis separadas incluem scrum e kanban.
Scrum é uma “abordagem estruturada”. Uma equipe universal de especialistas trabalha em cada projeto, à qual se juntam mais duas pessoas: o product owner e o scrum master. O primeiro conecta a equipe com o cliente e acompanha o desenvolvimento do projeto; este não é um líder de equipe formal, mas sim um curador. O segundo ajuda o primeiro a organizar o processo de negócio: ele realiza assembleias gerais, resolve os problemas do dia a dia, motiva a equipe e monitora o cumprimento da abordagem scrum.
A abordagem Scrum divide o fluxo de trabalho em sprints iguais – geralmente períodos de uma semana a um mês, dependendo do projeto e da equipe. Antes do sprint, as tarefas para este sprint são formuladas, ao final, os resultados são discutidos e a equipe inicia um novo sprint. Os sprints são muito convenientes para comparar uns com os outros, o que permite que você gerencie a eficiência do trabalho.
Kanban é uma “abordagem de equilíbrio”. Sua tarefa é equilibrar diferentes especialistas dentro da equipe e evitar uma situação em que os designers trabalhem dia e noite e os desenvolvedores se queixem da falta de novas tarefas.
A equipe inteira é uma – não há funções de product owner e scrum master no kanban. O processo de negócio não está dividido em sprints universais, mas sim na fase de execução de tarefas específicas: “Planeado”, “Desenvolvido”, “Testado”, “Concluído”, etc.
O principal indicador de desempenho no Kanban é o tempo médio necessário para concluir uma tarefa em toda a linha. A tarefa passou rapidamente – a equipe trabalhou de forma eficiente e sem problemas. A tarefa foi atrasada – você tem que pensar em qual estágio e por que houve atrasos e cujo trabalho precisa ser otimizado.
Para visualizar abordagens ágeis, são utilizadas placas: físicas e eletrônicas. Eles permitem que você torne o fluxo de trabalho aberto e compreensível para todos os especialistas, o que é importante quando a equipe não tem um líder formal.
O que é Agile?
Agile é uma abordagem para gerenciamento de projetos ou desenvolvimento de software. No Agile, os requisitos e as soluções evoluem por meio da iteração e do esforço colaborativo de equipes multifuncionais e auto-organizadas e usuários de negócios. O Agile aceita mudanças nos requisitos, mesmo em um estágio posterior. Clientes, participantes de negócios e desenvolvedores trabalham juntos durante todo o projeto. As equipes ágeis ajustam seu comportamento para atender às necessidades de mudança do projeto.
Agile é uma filosofia ou orientação (Griffin). O Agile é amplamente utilizado como um guia para se aproximar do trabalho do projeto. O Agile enfatiza a iteração de desenvolvimento, bem como o teste no ciclo de vida de desenvolvimento de software (SDLC). O Agile divide um produto ou projeto inteiro em pequenas montagens. Na metodologia Agile, o desenvolvimento ou teste ocorre simultaneamente. O Agile oferece suporte à colaboração e também à comunicação direta.
O que é Scrum?
Scrum é a base para gerenciamento de projetos ou desenvolvimento de software. Scrum é um dos processos ágeis. O Scrum se concentra em entregar valor de negócios para usuários de negócios em um período mínimo de tempo. Os projetos são divididos em sprints, que geralmente duram de uma a três semanas. Scrum tem três funções principais: scrum master, product owner e membros da equipe.
Scrum enfatiza a auto-organização e propriedade compartilhada entre os membros da equipe. Ele vê o gerenciamento de projetos como um processo de criação de valor compartilhado; e enfatiza a colaboração e o desenvolvimento iterativo para gerenciar com eficácia as mudanças e criar produtos melhores para atender às necessidades do cliente. O Scrum vê o tempo como uma restrição. Ele enfatiza o tempo de boxe e usa o planejamento de sprint diário e reuniões de revisão.
Semelhanças entre Agile e Scrum:
Agile e scrum estão relacionados ao gerenciamento de projetos e ao desenvolvimento de software. Uma vez que Scrum é uma das maneiras de implementar o Agile, ambos têm várias semelhanças. Ambos enfatizam o uso ideal de recursos. Ambos enfatizam o gerenciamento eficiente e eficaz de várias tarefas.
Agile e scrum, ambos visam tirar o máximo proveito dos usuários de negócios. Eles tentam garantir que um produto ou projeto seja entregue aos usuários de negócios o mais rápido possível. Ambos enfatizam a melhoria contínua, colaboração, comunicação aberta, etc.
A natureza do Agile e Scrum:
Agile é uma metodologia de desenvolvimento baseada em uma abordagem incremental e iterativa; enquanto Scrum é um dos muitos esquemas de implementação ou processos Agile.
Scrum fornece módulos incrementais para o cliente a cada semana ou quinzena.
Exemplos de uso
Um dos princípios do Agile é baseado na responsabilidade pessoal de uma pessoa, não na depuração de processos internos.
(De um artigo em VC.ru)
Ao trabalhar com equipes profissionais, usamos Scrum, na maioria das vezes escolhemos um ciclo de 2-3 semanas com reuniões retrospectivas que nos permitem manter tudo sob controle.
(De uma entrevista com Vedomosti com Frank Sosier, treinador do Freestanding Agility)
A ideia principal do Kanban é a visualização do fluxo de trabalho. Consiste na criação de um painel físico no qual você pode marcar visualmente o seu progresso.
(Da tradução da coluna Forbes em Rusbase)
Se falamos do que é ágil, eu me limitaria a essa frase – é um conjunto de valores dentro do qual construímos nosso trabalho com produtos, com processos dentro da organização.
(Alexey Pimenov, sócio-gerente da ScrumTrek em um artigo na Rusbase)
Como e por que a metodologia scrum apareceu
Antes do advento do Scrum, a abordagem em cascata foi adotada no mundo do desenvolvimento de software. O trabalho no produto foi executado de acordo com o seguinte plano.
- Defina os requisitos do produto.
- Planeje todo o projeto do início ao fim.
- Escreva o código.
- Teste o produto.
Os desenvolvedores coordenaram o plano de trabalho com o cliente e seguiram rigorosamente os termos de referência. Quando o produto ficou pronto, ele foi testado, mas não era mais possível mudar algo. Portanto, se fossem detectados erros, eles teriam que começar tudo de novo e o tempo de trabalho aumentaria.
Isso foi até que um grupo de inovadores decidiu mudar a situação completamente. Eles observaram como as equipes de sucesso trabalham: sem perder prazos e obtendo exatamente o resultado que planejaram. Descobriu-se que o sucesso estava na flexibilidade do processo.
As lições aprendidas ajudaram a criar o Manifesto de Desenvolvimento Ágil de Software. Incluiu apenas quatro pontos, mas eles mudaram completamente o processo.
Manifesto de desenvolvimento ágil de software
1 Pessoas são mais importantes do que ferramentas.
2 A qualidade do produto é mais importante do que a documentação.
3 A interação com o cliente é mais importante do que o contrato.
4 A prontidão para a mudança é mais importante do que um plano definido.
Esses quatro pontos foram a base para o surgimento do Agile, o processo de desenvolvimento de software flexível. Posteriormente, foram criados 12 princípios, que ainda são usados em qualquer metodologia ágil.
12 Princípios Ágeis
1 O principal é um bom software e um cliente satisfeito.
2 Prontidão para mudanças a qualquer momento.
3 Software totalmente funcional – tão freqüentemente quanto possível.
4 A reunião de equipe é melhor para a troca de informações.
5 O cliente e a equipe de desenvolvimento devem trabalhar juntos.
6 Confie nas pessoas para fazer seu trabalho.
7 Há software funcionando – há progresso.
8 Processos ágeis – desenvolvimento contínuo.
9 A atenção à qualidade promove a flexibilidade.
10 A simplicidade do processo elimina trabalho desnecessário.
11 A equipe auto-organizada trabalha melhor.
12 Busca contínua de maior eficiência.
Ágil e cascata, escalas
Uma das metodologias de desenvolvimento ágil de software, que se baseia em princípios ágeis, é o Scrum.
Os criadores do Scrum, Jeff Sutherland e Ken Schwaber, observaram o trabalho dos militares americanos, das forças especiais e até mesmo de jogadores de rúgbi por muitos anos. E perceberam que seu sucesso se baseia na interação e no trabalho em equipe. Sutherland e Schwaber perceberam que isso era exatamente o que os desenvolvedores de software precisavam. Foi assim que surgiu a metodologia Scrum.
Princípios fundamentais do Scrum
O Scrum está sempre focado no cliente, que deve receber o produto desejado no prazo e com o menor custo. Isso pode ser alcançado seguindo alguns princípios essenciais.
Trabalho em ciclos curtos (sprints)
Planeje um sprint, não todo o projeto de uma vez. Cada sprint é um período de tempo durante o qual a equipe trabalha em uma parte totalmente acabada do produto.
Flexibilidade. “Verifique e adapte”
Flexibilidade de processo e teste de produto após cada sprint. Se algo der errado, a equipe está sempre pronta para mudar a estratégia de desenvolvimento ou revisar o backlog Backlog Uma lista ordenada de tarefas nas quais a equipe scrum está trabalhando ao criar um produto.
Participação do cliente e usuários na criação do produto.
O cliente não fica de lado, mas está totalmente envolvido no trabalho. Para isso, existe o papel do dono do produto, que é desempenhado pelo próprio cliente ou por seu representante. É por meio dele que a equipe interage com os usuários. Como o desenvolvimento é realizado em estágios curtos, os usuários se envolvem nos testes quase que imediatamente.
Após o teste inicial, eles recebem acesso ao produto e o proprietário do produto coleta feedback. É assim que a equipe pode melhorar o resultado.
Interação da equipe
Uma equipe Scrum é um grupo de pessoas que trabalham por um resultado e como um todo. Todos se esforçam por um objetivo comum.
A importância da equipe scrum
Uma equipe scrum geralmente é um grupo de cinco a nove pessoas. Este é o número ideal, mas às vezes há equipes de três. Se houver mais pessoas, fica mais difícil para elas interagirem entre si, o que atrapalha o trabalho e reduz a produtividade.
Estrutura de comando
-
Proprietário do produto. A pessoa que representa o produto e é o intermediário entre o cliente, os usuários e a equipe de desenvolvimento. Às vezes, pode ser o próprio cliente.
-
Scrum Master. Na maioria das vezes – um funcionário especialmente contratado que lidera a equipe até o resultado. Ele não gerencia a equipe, mas supervisiona a implementação dos princípios básicos do Scrum. Sua tarefa não é pressionar, não fazer todo o trabalho sozinho e não distribuir responsabilidades, mas ajudar, direcionar e resolver questões que dificultam o processo de desenvolvimento.
-
Desenvolvedores. Uma equipe scrum sempre tem pessoas com diferentes conjuntos de habilidades. Assim, uma equipe de cinco a nove pessoas lidera todo o projeto do início ao fim. Uma equipe – um produto acabado.
Como é uma equipe scrum
Distribuição de funções
O Scrum funciona quando há distribuição de funções. Há três deles.
Equipe. Este é um grupo auto-organizado de 3-9 pessoas. A contribuição de um funcionário individual não é avaliada. O que importa é o resultado que a equipe alcançou com o esforço conjunto.
Proprietário do produto. Geralmente é um empresário que conhece seu negócio e entende as necessidades dos clientes. Ele tem experiência suficiente para saber como deve ser o produto acabado. O Product Owner é o elo entre a equipe, o consumidor e a produção. Ele trabalha com feedback, toma decisões importantes e monitora o orçamento do projeto. O product owner não diz à equipe qual caminho seguir, mas apenas olha o resultado.
Scrum Master ou Líder de Equipe. O Scrum Master é responsável pelo sucesso da equipe. Ele não toma decisões e não lidera. Sua tarefa é fazer a equipe trabalhar sem influência gerencial. O Scrum Master é a cola que mantém a equipe unida.
Ferramentas Scrum
Scrum é uma técnica de planejamento flexível adequada para qualquer projeto. Com sua ajuda, você pode aumentar a produtividade da empresa e obter melhores resultados. Por exemplo, a equipe costumava passar um mês em uma tarefa e meio mês em melhorias. Agora, a mesma tarefa levará 2 semanas e, provavelmente, não haverá melhorias.
Instruções: como usar Scrum para trabalhar como Ajail
Scrum é mais simples do que outros frameworks. Ele dá as ferramentas e sugere em que sequência usá-las para obter o resultado.
Scrum sugere fazer isso:
- Para aumentar a base teórica: leia livros sobre o tema e assista a vídeo-aulas. As gravações das conferências Agiledays estão disponíveis no YouTube no canal. Na comunidade, os seguidores do Scrum compartilham suas experiências – você pode aprender com eles.
- Selecione um proprietário do produto. É a pessoa que apresenta o produto acabado em detalhes. Ele também avaliará riscos, benefícios e tomará decisões estratégicas.
- Monte uma equipe de 3-9 pessoas. A equipe deve ter pessoas com conhecimento e habilidades suficientes para trabalhar no projeto.
- Indique um Scrum Master ou contrate um profissional de uma agência de consultoria.
- Convide o product owner para escrever um backlog e deixe a equipe avaliá-lo. É ótimo se a equipe avaliar não em horas, mas em unidades relativas.
- Agende um sprint. Deve ter uma duração fixa e uma lista precisa de tarefas que não podem ser complementadas.
- Torne o trabalho transparente. Cada membro da equipe deve ver quais tarefas já foram resolvidas e quais ainda precisam ser trabalhadas. Para fazer isso, você precisa de ferramentas: um quadro de scrum ou um diagrama de burnout.
- A realização de reuniões diárias com toda a equipe é um Scrum diário. Nas reuniões, os membros da equipe verificam os resultados uns dos outros, observam em que estágio o projeto se encontra e decidem como avançar para a meta. A reunião dura 15 minutos. Se demorar mais, a equipe e o Scrum Master estão fazendo algo errado.
- Termine o sprint com uma revisão. Sprint review – uma reunião com a presença de qualquer pessoa interessada: consumidor, cliente, product owner, scrum master. Na reunião, a equipe mostra o produto acabado ou parte dele. Não importa o que seja, o principal é que cumpra a sua função.
- Conduza uma reunião retrospectiva imediatamente após a revisão do sprint. Quando a equipe mostra um produto funcionando, todos se sentam à mesa e analisam o sprint. O que foi bem? O que pode ser melhorado? Que obstáculos a equipe superou? No final da reunião, o Scrum Master e a equipe devem pensar em como tornar o próximo sprint ainda melhor.
- Agende um novo sprint imediatamente!
Para quem é o Agile?
Agile está mudando a forma como abordamos a vida e o empreendedorismo. Ele ensina você a reagir rapidamente às circunstâncias e se adaptar a elas.
Agile funciona em qualquer lugar: em gestão, comércio, serviços. Alguém o usa para administrar suas próprias vidas e acompanhar tudo.
Mas ninguém pode garantir que ele ajudará uma determinada empresa. Se a empresa for pequena, é mais fácil mudar a opinião das pessoas. As grandes corporações acham mais difícil: quando há vários departamentos, e cada um tem seu próprio líder, a implementação do Agile pode ser atrasada. A equipe resistirá à mudança. Para facilitar, essas empresas convidam treinadores Agile.
Agile não é adequado para aqueles que têm feito um produto típico por muitos anos consecutivos. É mais lucrativo para essas empresas fazer mil cadeiras iguais de uma vez: ainda haverá pedidos. Mas assim que aparece um cliente com um pedido especial, você precisa exatamente da mesma cadeira, mas deixe as pernas serem mais largas e o estofamento ficará mais brilhante – o Agile é necessário.
Uma palavra para os especialistas
Dependendo das tarefas, aplicamos diferentes métodos dentro da filosofia – ágil, scrum, kanban.
Scrum permite que você desenvolva as qualidades necessárias nos funcionários – proatividade, independência, organização, habilidades de comunicação e visão. O ponto principal do método é realizar tarefas em equipes auto-organizadas, onde cada um tem seu papel e cada um é responsável por sua parte no trabalho. Usando o scrum, conduzimos pesquisas de pessoal, desenhamos gráficos da velocidade esperada de conclusão das tarefas.
Usamos o Agile nas comunicações internas. Recentemente, realizamos outro sprint para eliminar o atraso dos funcionários. Todos os chefes e especialistas envolvidos no projeto passaram o dia inteiro na reunião, discutindo as conquistas, os desafios e as próximas tarefas do novo sprint.
Agora estamos introduzindo ativamente o método kanban na empresa. O objetivo da implementação do kanban é aumentar a flexibilidade da produção, melhor se adaptar às mudanças nas demandas do mercado. Na prática, o método nos ajudou a conseguir uma correspondência entre o estoque do depósito e os produtos realmente usados na produção.
Um ponto importante: a metodologia ágil é uma direção geral, e kanban e scrum já são suas variedades.
Usamos o pacote scrum + waterfall, e também refinamos o próprio prancha ágil durante o ano. Principal razão de uso: transparência e simplicidade. Na verdade, este acaba sendo o mesmo pipeline de Henry Ford: a transição de uma tarefa de status a status com uma mudança de executor, portanto, o princípio básico para a própria placa ágil já é a simplicidade.
Usamos o Agile como parte direta de nosso fluxo de trabalho, de modo que todos os projetos, desde branding e desenvolvimento de website até nossa IA e startup de publicidade nativa NativeOS, são realizados em Chernika exatamente de acordo com este fluxo de trabalho.
Um produto funcional é mais importante do que documentação detalhada. Isso não significa que não mantemos nenhuma documentação, não. Em vez disso, é uma visão voltada para a eficiência com um golpe para a burocracia desnecessária.
O Scrum trouxe ritmo e compreensão para a nossa equipe – quer estejamos pontualmente ou não. Vemos a velocidade do trabalho da equipe, não há sensação de foda constante. Anteriormente, havia situações em que antes do hard release o scrum desaparecia em algum lugar e todos começavam a descobrir – agora que o perdemos, há uma sensação constante de que estamos no prazo. Se surgirem riscos, nós os discutimos com o PD no início, ajustamos o plano ou reduzimos o escopo das tarefas de alguma forma.
O trabalho ficou mais transparente, a jornada de trabalho começou a se enquadrar na norma de 8 horas e parecia que começamos a fazer mais. Entendemos que quando você tem a sensação de que não está fazendo o suficiente, você sente que precisa trabalhar mais – isso tem um efeito muito negativo na produtividade, você precisa se livrar disso.
Para clareza e abertura do trabalho do departamento de desenvolvimento, colocamos um quadro especial marcado “para fazer”, “em andamento”, “revisão”, “teste”, “concluído”, onde todos os membros da equipe colam adesivos com as tarefas (na coluna “fazer”) e, à medida que são concluídos, são movidos para os pontos subsequentes, e um final feliz é o final “pronto”. Isso ajuda a ter uma visão geral e torna possível ver o que cada participante é trabalhando em.
Um ponto muito importante do método (e organização do workflow): após a aprovação de todas as tarefas (“to do”), a lista é bloqueada para inserção. Assim, as novas tarefas que chegam não distraem do processo e não tornam o trabalho mais lento.
Todos os participantes também avaliam cada tarefa em termos de tempo e custos de material que serão necessários para concluir. E a cereja do bolo são as reuniões diárias em um horário específico (Daily Scrum), onde cada membro da equipe fala brevemente sobre o que vai fazer hoje, o que fez ontem (e se enfrentou algum obstáculo). Isso é importante no caminho para as metas de longo prazo – é assim que você pode entender a tempo que é hora de mudar sua estratégia.
Implementamos Scrum em duas tentativas porque todos, da equipe aos usuários, desejam um resultado mais previsível. Este é um ponto positivo da metodologia – ritmos claros agilizam a equipe, aumentam o nível geral de conhecimento sobre o projeto. Como resultado, o resultado se torna mais previsível, inclusive para nossos “stakeholders” – usuários.
O trabalho em equipe também aumenta a responsabilidade: todos recebem um bônus apenas se a equipe tiver concluído as tarefas definidas em um determinado estágio.
Inga Koryagina
Agile é uma filosofia, scrum é uma estrutura, cascata é um método, kanban é um sistema de gerenciamento. Scrum e kanban são opções ágeis, mas têm algumas diferenças claras. Scrum requer funções fixas, enquanto o kanban não possui as funções requeridas. Scrum é baseado em iterações que combinam planejamento, otimização de processos e liberação. No Kanban, você pode fazer isso regularmente ou sempre que precisar. A equipe scrum exige uma avaliação de seu trabalho, enquanto a equipe kanban não.
Fontes usadas e links úteis sobre o tópico: https://rb.ru/story/agile-scrum-kanban/ https://ru.esdifferent.com/difference-between-agile-and-scrum https: // skillbox. ru / media / management / kak_ponyat_scrum / https://allo.tochka.com/agile-scrum