| Linha 229: | Linha 229: | ||
** Evitar perder vendas e possíveis clientes fiéis por não suportar pagamento com cartão de crédito | ** Evitar perder vendas e possíveis clientes fiéis por não suportar pagamento com cartão de crédito | ||
<br> | <br> | ||
= Os papéis na Scrum = | |||
<br> | |||
* Papéis no time Scrum: | |||
** Scum Master (SM) | |||
** Product Owner (PO) | |||
** Team Member | |||
* Scrum Master: | |||
** Tem a finalidade de representar a garantia de fluidez na organização do processo verificando e fazendo os ajustes necessários para que o método se adapte ao projeto | |||
** Também serve como guia para toda a equipe aplicar corretamente as práticas do Scrum, afinal, reflete na gerência e o SM fica responsável por impactar as conquistas do produto | |||
*** Realiza os ajustes do processo | |||
*** É o guia de referência do framework Scrum | |||
*** Remove impedimentos | |||
*** Protege o time | |||
*** Ajuda e orienta o PO | |||
*** Pode ser um mebro da Equipe, por exemplo, um desenvolvedor mas pode levar a conflitos | |||
*** Ele nunca deve ser o PO | |||
*** Não é gerente, é um líder servidor, o time Scrum é auto-organizável | |||
* Product Owner: | |||
** Responsável por manter o Backlog | |||
** É uma pessoa, não um comitê, este últim pode apenas aconselhar | |||
** Somente ele muda a prioridade de um item | |||
** Pode ser um membro do time mas não é aconselhável pois pode reduzir sua habilidade de lidar com partes interessadas | |||
** O PO nunca pode ser o Scrum Master | |||
* Time: | |||
** Transformam desejo em produto | |||
** Intedisciplinares | |||
** Existem pessoas especialistas | |||
** Todos contribuem mesmo que precise aprender novas habilidade | |||
** Não há títulos | |||
** Sem subtimes | |||
** Autogerenciáveis | |||
** Sinergia | |||
** Tamanho ótimo: 7 mais ou menos 2 | |||
** Times grandes geram muita complexidade | |||
** Os times pode mudar | |||
** SM e PO não estão incluídos nesta conta | |||
** Os membro do time são chamados Pigs, qualquer outra pessoa é chamada de Chicken | |||
** Galinhas não podem dizer aos porcos como eles devem fazer seu trabalho | |||
** Galinhas e Porcos vem da seguinte estória: | |||
*** Uma galinha e um porco estão juntos quando a galinha diz: | |||
*** - Vamos abrir um restaurante! | |||
*** O porco reflete e então diz: | |||
*** - Como seria o nome deste restaurante? | |||
*** A galinha diz: | |||
*** - Presunto com ovos" | |||
*** O porco diz: | |||
*** - Não obrigado, eu estaria comprometido, mas você estaria apenas envolvida | |||
* E você em seu time, é um Chicken ou um Pig? | |||
Edição das 03h53min de 1 de agosto de 2016
Desafios do Desenvilvimento de Software
- 1. Responder ao cliente
- 2. Falta na comunicação das equipes
- 3. Entender as necessidades do cliente
- Exercício:
- Pause o vídeo e analise a figura:
- Figura da árvore e do balanço
- 4. Compreender porque os projetos falham
- 5. Aumentar a produtividade da equipe de desenvolvimento
- Lei de Brooks
- 6. Escolher o framework certo para desenvolver o software
- Metodologias ágeis mais comuns:
- Extreme Programming
- Scrum
- Lean
- Feature Drive-Programming (FDD)
- Kanban
- RUP
- OpenUp
- Metodologias ágeis mais comuns:
- Desenvolvimento ágil:
- Scrum é de longe o mais simples e mais fácil
- 7. Como reter bons profissionais?
- Clientes x Desenvolvedores
- O que é Scrum?
Abordagem Interativa e Incremental
- Segundo Schauber ??:
- O Scrum é baseado na teoria de controle dos processos empíricos emprega uma Abordagem Interativa e Incremental para otimizar a previsibilidade e reduzir riscos:
- Devido à complexidade, 3 pilares sustentam essa teoria:
- Tamanho
- Mudança de requisitos
- Urgência e necessidade de demonstrar mais valor rapidamente
- É inconcebível, desenvolver sistemas usando o modelo cascata que implementa todo o software de uma única vez
- Abordagem incremental
- Permite desenvolver o software em pedaços, em partes
- Sozinhas não faz muito sentido mas através dela temos noção de como ficará o resto
- Abordagem iterativa
- Começa com um esboço, um rabisco e aos poucos adiciona-se novas camadas até que se chegue ao produto final
- No caso do software, pode-se começar desenhando o blueprint de uma tela, depois um protótipo e em seguida, o frontend para depois adicionar as funcionalidades
- Desenvolvimento iterativo e incremental é uma estratégia de planejamento que segue a linnha: "Dividir para conquistar"
- O software é construído em partes, em ciclos
- A cada iteração tem um novo incremento
- Duarte (2015)
- Explica que é o produto que deve estar pronto após o sprint podendo ainda ser aperfeiçoado no próximo sprint
- Importante que o incremento seja algo concreto e utilizável, uma demo ou uma página navegável
- Qual o propósito do Scrum?
- Scrum vem sendo utilizado para o desenvolvimento de produtos complexo desde o início dos anos 90
- Scrum não é um processo e nem uma técnica e sim um framework dentro do qual você pode usar várias técnicas ou processos
- Papel do Scrum:
- Fazer transparecer a eficiência relativa de suas práticas de desenvolvimento para que você possa melhorá-las enquanto provê um framework através do qual os produtos complexos possam ser desenvolvidos
- Teoria do Scrum:
- Fundamentado na teoria de controle de processos empíricos emprega uma abordagem iterativa e incremental para otimizar a previsibilidade e controlar riscos
- Diferentemente de processos de linha de produção onde se tem um processo produtivo padrão, o Scrum é apropriado para processos empíricos onde não temos fórmulas e receitas prontas pois no meio do processo, desvios podem acontecer assim como em um processo artesanal
- Processo definido:
- São processos onde se conhece todas as variáveis pois tem poucas ou nenhuma mudança ao longo do processo
- São repetitivos e previsíveis
- Geralmente existe uma documentação aplicada à execução do processo
- Processos empíricos
- Processos onde não se conhece todas as variáveis, não são repetitivos e são imprevisíveis
- Geralmente baseado no conhecimento e experiência
- Às vezes, quando desenvolvemos um software não conhecemos todos os requisitos e os que são conhecidos mudam com certa frequência
- Geralmente todas as estimativas são baseadas no conhecimento das pessoas
- Isto quer dizer que no mesmo trabalho feito por equipes diferentes a duração pode varias pois a equipe mais experiente deve realizar o trabalho mais rápido
- O desenvolvimento de software é um problema complexo e se comporta de maneira imprevisível
Framework Scrum
- Consiste de um conjunto formado por times Scrum e seus papéis associados, eventos com duração fixa, timeboxes, artefatos e regras
- Times Scrum são projetados para otimizar flexibilidade e produtividade
- Para este fim, são auto-organizáveis, interdisciplinares e trabalham com interações
- O time consiste em desenvolvedores com todas as habilidades necessárias para transformar os requisitos do PO em um pedaço realmente entregável do produto ao final da Sprint
- Fundamentado na teoria dos processos empíricos, o Scrum faz uma abordagem experimental com o intuito de melhorar a previsibilidade e controlar o risco
- 3 pilares para a sustentação das implementações:
- Transparência
- Adaptação
- Inspeção
- Schauber explica:
- Transparência:
- faz com que aspectos do processo atinjam resultado e sejam visíveis àqueles que tem o papel de gerenciar os resultados
- Os aspectos não podem ser somente transparentes, ou sejam quem inspecionar o processo irá acreditar que algo está concluído
- Inspeção:
- Os diferentes aspectos que contém no processo devem ser inspecionados com frequência para detectar as variações que não serão aceitas
- A habilidade e a aplicação com que as pessoas devem verificar os resultados dos trabalhadores são considerados como os outros fatores contidos no processo
- Transparência:
- 3 pontos para adaptação e inspeção que verificam o progresso:
- Daily meeting
- Sprint review
- Utilizadas para verificar o progresso em direção à meta para a versão para a entrega e para fazer as adaptações que otimizem o valor da próxima sprint
- Sprint Planning ou Planning Poker
- Adaptação:
- Retrospectiva da Sprint é utilizada para revisar a sprint passada e definir que adaptações tornarão a próxima sprint mais produtiva, recompensadora e gratificante
- Timebox:
- Duração fixa e imutável
- Conceito que diz que a quantidade de tempo não poderá mudar
- Evita-se atrasos e facilita o planejamento
- Sprint
- Iteração que deve ser realizada de 2 a 4 semanas no qual a equipe de desenvolvedores deverá produzir um entregável de valor para o cliente
- Durante a sprint são realizadas as reuniões de área que tem duração fixa de 15 minutos e não mais que isso
- Ao final da sprint, é feita uma reunião de revisão da sprint
- Para sprints de um mês, reuniões com duração fixa de 4 horas
- Para sprints menores, esta reunião pode diminuir de tamanho
- Reunião de planejamento da Sprint (Planning Poker)
- Pode levar de 4 a 8 horas de duração para sprints de 4 semanas
- Sprints Scrum de 2 semanas:
- Os times ficam de 2 dias a 3 dias fazendo uma Plannig Poker => não está correto
- Todos devem se preparar antecipadamente para reduzir este tempo
- Após a revisão da Sprint antes da próxima reunião de planejamento
- A equipe Scrum tem a reunião de retrospectiva da Sprint
- Essa reunião tem duração fixa de 3 horas
Cerimônias do Scrum
- Compoem os principais momentos do encontro no framework
- O Scrum emprega os eventos com duração fixa, timeboxes, para criar regularidade
- Entre os elementos do Scrum que tem duração fixa, temos:
- A reunião de planejamento da versão para a entrega
- A Sprint
- A reunião de área
- A revisão da Sprint
- A retrospectiva da Sprint
- O coração do Scrum é a Sprint que é uma interação de um mês ou menos, de duração consistente com o esforço de desenvolvimento
- Todas as sprints utilizam o mesmo modelo de Scrum e todas as Sprints tem como resultados um incremento do produto final que é potencialmente entregável
- Cada Sprint começa imediatamente após a anterior
- Release Planning e Planning Poker (Sprint Planning)
- A cada dia do Sprint a equipe faz uma reunião de área chamada Daily Scrum ou Daily Meeting (Standup Meeting)
- Ela tem como objetivos:
- disseminar conhecimento sobre o que foi feito no dia anterior
- identificar impedimentos
- Priorizar o trabalho a ser realizado no dia que se inicia
- Os Daily Scrum normalmente são:
- realizados no mesmo lugar
- na mesma hora do dia
- idealmente na parte da manhã para ajudar a estabelecer as prioridades do novo dia de trabalho
- O Daily Scrum não deve ser usado como uma reunião para resolução de problemas
- Questões levantadas devem ser levadas para fora da reunião e normalmente tratadas por um grupo menor de pessoas que tenham a ver diretamente com o problema ou possa contribuir para solucioná-lo
- Durante o Daily Scrum cada membro da equipe provê respostas para cada uma das três perguntas:
- O que você fez ontem?
- O que você fará hoje?
- Há algum impedimento no seu caminho?
- Ao final de cada Sprint é feito um Sprint Review Meeting
- Durante esta reunião o time mostra o que foi alcançado no Sprint, tipicamente, isto tem o formato de um demo das novas funcionalidades
- Os participantes do Sprint Review tipicamente incluem:
- PO - Product Owner
- Scrum Team
- Scrum Master
- Gerência
- Clientes
- Engenheiros de outros projetos
- Durante o Sprint Review o projeto é avaliado em relação aos objetivos do Sprint determinados durante o Sprint Planning
- Idealmente o time completou cada um dos itens do Product Backlog trazidos para fazer parte do Sprint mas o importante mesmo é que a equipe atinja o objetivo geral da Sprint
- A última reunião de um Sprint no Scrum tem como objetivo avaliar o processo de trabalho em um Sprint, ou seja, adaptar o que não estiver permitindo a agilidade
- A reunião é conduzida pela equipe para a equipe
- Deste modo, o PO nunca vai à reunião somente se for convidado
- Uma das técnicas mais utilizadas na Retrospectiva é a WWW
- What Went Well? (O que deu certo?)
- What Went Wrong? (O que deu errado?)
- Cada membro anota em postites os pontos positivos e os pontos negativos de um Sprint podendo ser usado cores para os mesmos
- O SCrum Master é responsável por dar um limite de tempo para que a equipe fique focada no objetivo de avaliar individualmente o que considerou bom e o que considerou ruim para o Sprint em avaliação
- A fase de coleta leva em torno de 10 minutos
- Os pontos positivos são lifos e se discute os mais relevantes
- Depois, os pontos negativos são apresentados
- A equipe discute os problemas que tem causado maior dor e todos juntos propõem planos de ação
- Existem diversas outras técnicas de Retrospective
Regras da Sprint
Quebrando estórias em tarefa
- Estórias são trabalhos que podem ser entregues e o PO deve se preocupar
- As tarefas são atividades que não podem ser entregues ou atividades que o PO não precisa se preocupar
- Figura
- Divisão de uma estória em tarefas
- Quando dizemos que queremos quebrar uma estória em tarefas não significa que serão geradas estórias menores e sim as atividades de programação, teste, banco de dados e etc que são necessárias para que esta estória seja finalizada
- No exemplo, a primeira tarefa, o Task, criada, é a consulta de reserva de apartamento, ou seja, isso é um pedaço da estória mas não é suficiente para o cliente
- Às vezes, nem pode ser colocada em produção
- Quando você quebrar as estórias em tarefas durantes a reunião de planejamento do sprint, a equipe tende a pensar nas tarefas de programação
- Perceba que além das taregas funcionais, ainda existem as tarefas técnicas como por exemplo, criar tabelas
- O cliente ou PO não se interessa no como essa tarefa é realizada, apenas deseja o resultado da funcionalidade pronta
- Esta é uma decisão arquitetural que cabe ao time de desenvolvedores juntamente com o arquiteto pensar na solução
- Com a quebra de tarefas exercitamos a famosa frase de César: "Dividir para conquistar", ou seja, conseguiremos melhores resultados e teremos a sensação de completude a cada dia
- As tarefas devem ser decompostas para que possam ser feitas em menos de um dia
- Outra vantagem de se quebrar estórias em tarefas é que a conclusão de cada tarefa menor ajudará a manusear o progresso do time e quando eles irão concluir ou terminar de queimar os pontos do sprint
- O gráfico de burn-down ajuda a visualizar isso e a cada tarefa de um ou meio ponto queimado, desmarcamos um ponto a menos no gráfico e com isso o acompanhamento e andamento do trabalho
- Por esse motivo, cada tarefa deve possuir o tamanho máximo de um dia
- Se forem horas por exemplo, seria 8
- Se medirmos em ideal days, seria 1
- Ou poderia ser em Stor?? point que seria uma medida relativa
Definition of Done
- Acordo formal do Scrum Team que define claramente quais são os passos mínimos para a conclusão de um item potencialmente entregável
- Serve como um contrato entre o Scrum Team e o PO
- Garante que todo o produto gerado pelo projeto estará dentro dos padrões de qualidade estabelecido entre eles
- Criar um Definição de Pronto ou Definition of Done é um esforço colaborativo entre o Scrum Master, o Scrum Team e o PO
- O documento de Definitio of Done pode evoluir normalmente ao longo do projeto
Meta da Sprint
- Trata-se de uma breve descrição do propósito da Sprint, por exemplo:
- problemas específico do negócio a ser resolvido
- ou um agrupamento de funcionalidades afins
- Tipicamente, o trabalho durante a sprint é estarem alinhados com o objetivo de alcançar a meta do sprint
- A meta não deveria ser definida como algo que não demonstre o valor real do negócio a ser alcançado no final da sprint
- Portanto não procure definir a meta dessa sprint como algo do tipo:
- Entregar todos os itens
- Não gerar nenhum bug
- Implementar as funcionalidades de pagamento
- Colocar em produção as funcionalidades
- Seria muito melhor assim:
- Aumentar o faturamento da loja com novas formas de pagamento
- Evitar perder vendas e possíveis clientes fiéis por não suportar pagamento com cartão de crédito
Os papéis na Scrum
- Papéis no time Scrum:
- Scum Master (SM)
- Product Owner (PO)
- Team Member
- Scrum Master:
- Tem a finalidade de representar a garantia de fluidez na organização do processo verificando e fazendo os ajustes necessários para que o método se adapte ao projeto
- Também serve como guia para toda a equipe aplicar corretamente as práticas do Scrum, afinal, reflete na gerência e o SM fica responsável por impactar as conquistas do produto
- Realiza os ajustes do processo
- É o guia de referência do framework Scrum
- Remove impedimentos
- Protege o time
- Ajuda e orienta o PO
- Pode ser um mebro da Equipe, por exemplo, um desenvolvedor mas pode levar a conflitos
- Ele nunca deve ser o PO
- Não é gerente, é um líder servidor, o time Scrum é auto-organizável
- Product Owner:
- Responsável por manter o Backlog
- É uma pessoa, não um comitê, este últim pode apenas aconselhar
- Somente ele muda a prioridade de um item
- Pode ser um membro do time mas não é aconselhável pois pode reduzir sua habilidade de lidar com partes interessadas
- O PO nunca pode ser o Scrum Master
- Time:
- Transformam desejo em produto
- Intedisciplinares
- Existem pessoas especialistas
- Todos contribuem mesmo que precise aprender novas habilidade
- Não há títulos
- Sem subtimes
- Autogerenciáveis
- Sinergia
- Tamanho ótimo: 7 mais ou menos 2
- Times grandes geram muita complexidade
- Os times pode mudar
- SM e PO não estão incluídos nesta conta
- Os membro do time são chamados Pigs, qualquer outra pessoa é chamada de Chicken
- Galinhas não podem dizer aos porcos como eles devem fazer seu trabalho
- Galinhas e Porcos vem da seguinte estória:
- Uma galinha e um porco estão juntos quando a galinha diz:
- - Vamos abrir um restaurante!
- O porco reflete e então diz:
- - Como seria o nome deste restaurante?
- A galinha diz:
- - Presunto com ovos"
- O porco diz:
- - Não obrigado, eu estaria comprometido, mas você estaria apenas envolvida
- E você em seu time, é um Chicken ou um Pig?