1. O que é o SCRUM e o desenvolvimento ágil?
O SCRUM é um enquadramento que ajuda as pessoas, as equipas e as organizações a gerarem valor através de soluções adaptáveis para problemas complexos. Ao invés de dar instruções detalhadas às pessoas, as regras do SCRUM orientam as suas relações e interações. O SCRUM é fundado no empirismo e no pensamento lean. O empirismo garante que o conhecimento tem origem na experiência e a tomada de decisões é feita com base no que é observado. O pensamento lean reduz o desperdício e concentra-se no essencial.
O SCRUM utiliza uma abordagem iterativa e incremental para otimizar a previsibilidade e controlar os riscos, envolve grupos de pessoas que, coletivamente, detêm todas as competências e conhecimentos para realizar o trabalho e partilhar ou adquirir tais competências à medida que vão sendo necessárias. O SCRUM é baseado nos seguintes valores:
Compromisso, Foco, Abertura, Respeito e Coragem
Os pilares do SCRUM são:
- Transparência: o processo e o trabalho devem ser visíveis àqueles que estão a desempenhar o trabalho bem como àqueles que recebem o trabalho. A transparência permite o controlo. O controlo sem transparência é enganador e um desperdício.
- Controlo: os artefactos e o progresso em direção a um determinado objetivo acordado devem ser controlados frequente e cuidadosamente para detetar potenciais desvios ou problemas indesejados.
- Adaptação: Se algum dos aspetos de um processo de desvia dos limites aceitáveis ou se o produto resultante não é aceitável, o processo em aplicação ou os materiais em utilização devem ser ajustados. O ajuste deve se feito o mais rapidamente possível para minimizar maiores desvios.
As práticas ágeis incluem a descoberta de requisitos e melhoria de soluções através de esforços colaborativos de equipas auto-organizadas e multifuncionais com o(s) seu(s) cliente(s)/utilizador(es) final(is), o planeamento adaptativo, o desenvolvimento evolutivo, a entrega precoce, a melhoria contínua, e a resposta flexível a alterações nos requisitos, capacidade e compreensão dos problemas a serem resolvidos.
Os valores do manifesto ágil são:
- Pessoas e interações ao invés de processos e ferramentas. As ferramentas e os processos são importantes, mas é mais importante ter pessoas competentes a trabalhar eficazmente em conjunto.
- Soluções funcionais ao invés de documentação exaustiva. Uma boa documentação é útil para ajudar as pessoas a compreender como é que a solução é construída e como se utiliza, mas o principal elemento de desenvolvimento é a criação de soluções, não documentação.
- Colaboração com o cliente ao invés de negociação de contratos. Um contrato é importante, mas não substitui o trabalho em proximidade com os clientes para descobrir aquilo de que necessitam.
- Responder à mudança ao invés de seguir um plano. O plano de um projeto é importante, mas não deve ser demasiado rígido para poder acolher as mudanças na tecnologia ou no ambiente, nas prioridades dos parceiros, e na compreensão das pessoas acerca do problema e da sua solução.
A maioria dos métodos de desenvolvimento ágil desmonta o trabalho de desenvolvimento do produto em pequenos incrementos que minimizam o montante de planeamento e design iniciais. As iterações, ou sprints, são de curta duração, também designados por timeboxes. A equipa trabalha em todas as funções: análise, planeamento, design, codificação e teste. No final da iteração é apresentado um produto funcional aos parceiros. Isto minimiza o risco global e permite a rápida adaptação do produto. Uma regra importante é a “falhar frequentemente e cedo” uma vez que nas fases iniciais representa um custo muito mais baixo do que, mas fases próximas da data de entrega final. O objetivo é, claro, ter sucesso no final. Mas falhar num momento mais cedo, tal como os mal-entendidos em fases muito iniciais, tem uma resolução muito mais fácil através do constante envolvimento dos parceiros e os custos e riscos de insucesso num estádio de protótipo precoce é menos crítico que numa solução totalmente desenvolvida.
A vantagem chave das metodologias ágeis são a velocidade de lançamento no mercado, a mitigação dos riscos e a maior satisfação dos clientes. A colaboração em proximidade com os parceiros e utilizadores reduz o tempo e os custos bem como os riscos de engenharia caso um produto não vá de encontro os requisitos do utilizador.
Os sprints são o pulso do SCRUM, onde as ideias são transformadas em valor. Estes são eventos que asseguram o controlo e a adaptação do progresso em direção a um objetivo de produto. Quando o horizonte de um sprint é demasiado longo o Objetivo do Sprint pode tornar-se inválido, pode surgir a complexidade e o risco pode aumentar. Podem se utilizados sprints curtos para se criarem mais ciclos de aprendizagem e limitar os riscos com custos e esforços a um período de tempo mais curto. Cada sprint pode ser considerado como um pequeno projeto.
Os tópicos para cada sprint são:
- Porque é que este sprint é valioso? O proprietário do produto propõe como é que o produto pode aumentar o seu valor e utilidade no sprint A equipa SCRUM colabora na definição do objetivo do sprint e do porquê de o sprint ser valioso para os parceiros.
- O que é que pode ser feito neste sprint? Através das discussões com o proprietário do produto, os desenvolvedores selecionam itens da carteira do produto (basicamente, uma lista de tarefas com prioridades que têm que ser realizadas num projeto) para incluir no sprint A seleção pode ser desafiante, mas quanto mais os desenvolvedores sabem acerca do seu desempenho anterior, da sua capacidade futura e da sua Definição de Concluído, mais confiantes estarão nas suas previsões do sprint.
- Como é que o trabalho selecionado é realizado? Para cada item selecionado da carteira do produto, os desenvolvedores planeiam o trabalho necessário para criar um incremento que vá de encontro às definições de trabalho realizado. Isto é feito, frequentemente, através da decomposição dos itens da carteira do produto em itens de trabalho mais pequenos.
A equipa SCRUM é composta por um Master SCRUM, um Proprietário do Produto, e Desenvolvedores. Numa Equipa SCRUM não existem subequipas ou hierarquias. É uma unidade de profissionais concentrada num objetivo de cada vez, o Objetivo do Produto. As equipas são multifuncionais e autogeridas. A equipa é responsável por todas as atividades relacionadas com o produto desde a colaboração com parceiros, à verificação, manutenção, operação, experimentação, investigação e desenvolvimento e a qualquer outra coisa que possa ser necessária.
O Master SCRUM ajuda todos, tanto da equipa SCRUM como na organização, na compreensão da teoria e da prática SCRUM. É responsável pela eficácia da equipa SCRUM, ao permite qua a equipa melhore as suas práticas no âmbito do SCRUM. Normalmente, fazem-no através do coaching dos membros da equipa em autogestão e multifuncionalidade, ajudando a Equipa SCRUM a concentrar-se na criação de incrementos de elevado valor que vão de encontro à Definição de Concluído, na remoção de obstáculos e garantindo um campo de trabalho positivo e produtivo mantendo-o dentro do orçamento e da timebox.
O Master SCRUM ajuda o Proprietário do Produto na definição de objetivos de produto eficazes e na gestão da carteira de itens do produto e a Equipa SCRUM a compreender a necessidade de itens da carteira de produto claros e concisos. Ajuda na definição de um planeamento empírico do produto para um ambiente complexo e facilita a colaboração com parceiros.
O Master SCRUM, também, lidera, treina e acompanha a organização na sua adoção do SCRUM, planeia e aconselha na implementação do SCRUM na organização, ajuda os funcionários e os parceiros a compreender o SCRUM e remove barreiras.
O Proprietário do Produto é responsável pela maximização do valor do produto resultante do trabalho da Equipa SCRUM. É também responsável pela gestão eficaz da carteira do produto, a qual inclui o desenvolvimento e a comunicação explícita do objetivo do produto, pela criação, ordenação e comunicação clara dos itens da carteira do produto, e por garantir que a certeira do produto é transparente, visível e compreendida. Para que o Proprietário do Produto tenha sucesso, toda a organização deve respeitar as suas decisões.
O Proprietário do Produto é uma pessoa, não um comité!
Os desenvolvedores são as pessoas da equipa SCRUM que criam o resultado. As competências específicas necessárias são, frequentemente, vastas e por isso é necessário uma multi ou transdisciplinaridade. Os desenvolvedores são sempre responsáveis pela criação de um plano para o sprint, conferência de qualidade, adaptação dos seus planos ao objetivo do sprint e por se responsabilizarem uns aos outros enquanto profissionais.