Olá sejam bem-vindos ao canal engenharia de software com ênfase o ML Eu sou professor Jenis gues eu já atuo na área de modelagem de software há vários anos eu tenho quatro víros publicados sobre o assunto e eu já ministrei diversas palestras e cursos técnicos sobre modelagem de software utilizando a linguagem uml na aula de hoje eu pretendo dar continuidade ao tema sobre processos de desenvolvimento de software mais mais exatamente sobre processo de desenvolvimento ágeis dessa vez abordando o tema sobre scran Então vamos iniciar a nossa aula Então essa é a Sétima aula sobre processo de
desenvolvimento ágeis e esta vai ser a primeira aula sobre o Framework scrum eu resolvi dividir esse tema em duas aulas por ele ser bastante extenso Mas vamos começar a nossa aula bom primeiramente scran não é não é exatamente uma metodologia ágil Na verdade ele é um Framework ou seja um arcabo um Framework leve que tem por objetivo auxiliar pessoas equipes e organizações a Gerar valor por meio de soluções adaptáveis para problemas complexos então basicamente esse Framework ele permite ser adaptado a ambientes de desenvolvimento ágeis é importante eh destacar que grande parte do conteúdo aqui apresentado
foi retirado do scren Guide do Kate Weber alguns exemplos foram foram retirados do livro de engenheiria de software do professor Raul vs slavik e alguns outros conteúdos de outras fontes bom Aqui nós temos uma figura geral que tenta representar o processo scr então a uma das primeiras atividades é a produção do produ backlog que essencialmente é uma lista de funcionalidades de requisitos que os clientes desejam que o software suporte a essa atividade ela gera o produ backlog propriamente dito esse produto de backlog ele pode ser alterado pode ter funcionalidades adicionadas ao longo do processo depois
que existe um produto de backlog se passa para o planejamento Sprint Na verdade o planejamento Sprint já faz parte do Sprint como um todo mas ele é uma atividade que é realizada antes de começar a se executar realmente o Sprint basicamente no planejamento Sprint o product owner juntamente com a equipe de desenvolvimento ele seleciona itens do produto de backlog para serem implementados para serem desenvolvidos no Sprint atual isso gera o Sprint backlog que essencialmente é a listagem das funcionalidades que deverão ser desenvolvidas no Sprint em questão depois se passa para a execução do Sprint propriamente
dito onde o produto é efetivamente desenvolvido e a cada dia em que o Sprint é executado se executa o scran diário ou Daily scran que basicamente é uma reunião onde cada membro da equipe diz o que fez ontem ou no dia anterior O que pretende fazer no dia atual e Quais dificuldades ele está enfrentando essas dificuldades devem na medida do possível ser sanadas pelo scrummaster o resultado do Sprint é um incremento depois o incremento basicamente é um conjunto de funcionalidades que são adicionadas ao produto essas funcionalidades podem ser novas ou podem ser funcionalidades que foram
melhoradas obviamente o incremento não é simplesmente as funcionalidades podem ser podem ser produzidos outros artefatos como atividades de engenharia de requisitos de projeto modelos de software testes esse tipo de coisa mas essencialmente o incremento ele deve agregar valor e esse valor é representado por funcionalidade que o usuário pode utilizar após execução do Sprint é feita a revisão do Sprint a revisão do Sprint basicamente se avalia o incremento produzido o resultado do Sprint e depois é feita a retrospective Sprint em que se avalia o Sprint propriamente dito se procurando melhorá-lo em seguida se verifica se o
produto foi concluído se o produto é utilizável pelo cliente em que o processo pode ser encerrado ou então se ele ainda não está utilizável se faz um novo planejamento Sprint eventualmente pode-se incluir novos elementos no product backlog então este é o processo Sprint o processo scran geral ele tem três artefatos principais que são produto de backlog Sprint backlog e o incremento bom vou falar um pouquinho sobre os papéis do scr basicamente existe a equipe scram e dentro dela existem três papéis são os papéis de desenvolvedor ou developer a verdade equipe scran é composta por um
conjunto de desenvolvedores existe o papel do Product owner ou dono do produto e existe o papel de scram Master ou mestre scram os desenvolvedores como o nome já diz são os desenvolvedores propriamente ditos Quem produz realmente o produto o product aer é o dono do produto no sentido em que Ele Decide eh quais funcionalidades deverão estar contidas no product backlog eh ele prioriza essas funcionalidades e decide quais funcionalidades deverão constar em cada Sprint backlog que deverão ser implementados em cada Sprint e o scram Master é um facilitador ele tenta auxiliar a equipe a atingir seus
objetivos não somente equipe como dono do produto e a própria organização no sentido em que ela entenda a filosofia scram vamos falar um pouquinho sobre cada um desses papéis Então vamos começar com a equipe scram então a equipe scram é a equipe de desenvolvimento propriamente dita em geral Ela deve ter de se a 10 pessoas como já foi falado ela possui um scrummaster facilitador o product owner o dono do produto o que seleciona Quais elementos deverão ser eh implementados e um conjunto de desenvolvedores ela não costuma ser dividida em outros papéis como analista projetista e
programador uma vez que a equipe Ela É autogerenciável ISO significa que todos os membros da equipe eles interagem para desenvolver o produto em conjunto E eles decidem Quem fará o que quando e como então não existe esse tipo de papel fixo claro que um desenvolvedor ele pode em um determinado momento assumir o papel de analista ou de projetista ou de testador ou de programador mas não são papéis fixos a cada Sprint e ao longo do desenvolvimento eles decidem a equipe decide Quem fará o quê ainda falando sobre equip scran ela é uma unidade Coesa focada
em um objetivo por vez que é o o objetivo do produto ou o product goal Ah o product goal ele é estabelecido quando é gerado o product backlog uma equipe scran ela é multifuncional ISO significa que os membros eles precisam possuir muitas habilidades eh de tal forma que seja possível agregar valor em um determinado Sprint essas habilidades podem variar de acordo com o domínio do problema que se está ã resolvendo que se está solucionando Ela é autogerenciável como eu falei a equipe decide quem faz o que quando e como sem interferência externa ela deve ser
pequeno suficiente para permanecer ágil e grande suficiente para conseguir concluir um trabalho que agregue valor dentro de um Sprint equipes menores costumam se comunicar melhor e ser mais produtivas já equipes grandes não tem essa facilidade de comunicação e se recomenda Que Se considere uma reorganização em múltiplas equipes coesas focadas no mesmo produto em situações em que há várias equipes elas devem compartilhar o mesmo objetivo do produto o mesmo produo backlog e o mesmo produto então a equipe scr ela por todas as atividades que são relacionadas ao desenvolvimento do produto Isso inclui mas não está limitado
a colaboração com as partes interessadas a pesquisa desenvolvimento verificação experimentação basicamente determinar se o software está atendendo as necessidades do cliente operação manutenção e qualquer outra atividade que serja considerada necessário para concluir o produto ela deve ser estruturada e erada pela organização por empoderada significa que ela é capaz de gerir o seu próprio trabalho ela trabalha em sprints que são as iterações do scran os ela possui um conjunto de ciclos que são chamados de sprints e ela deve trabalhar a um passo sustentável Isso significa que a equipe não deve ser sobrecarregada não deve se exigir
demais dela e ela deve ter um ritmo sustentável de trabalho em termos de um número máximo de horas a se trabalhar pro dia isso melhora o foco e a consistência da equipe E a equipe scram ela é responsável por criar um incremento útil e valor e valioso Ou seja que agregue valor ao cliente que ele possa utilizar a cada interação ou seja cada Sprint ah existem três responsabilidades específicas dentro da equipe como já foi falado são os desenvolvedores que são quem desenvolve o software realmente além de outras atividades o product aer que é o dono
do produto que Como já foi dito é quem decide o que vai estar contido no produo de backlog e nos sprints backlogs e o scrummaster que é um facilitador que auxilia a equipe como um todo auxilia o product aer e até insere a filosofia scran na organização Então vamos falar um pouquinho sobre os desenvolvedores eles são os membros da equipe eles devem estar comprometidos em criar todos os aspectos de incremento que seja utilizável em cada Sprint Ah eles devem possuir muitas habilidades eh essas habilidades poderão ser amplas e vão variar de acordo com o domínio
do trabalho que eles estão desenvolvendo porém os desenvolvedores eles sempre serão responsáveis por criar um plano para o Sprint que essencialmente o Sprint backlog isso em conjunto com produto de aura eles devem incutir qualidade que esteja aderente à definição de pronto definição de pronto ou definição de feito basicamente estabelece o que se espera de um incremento o que se espera de cada item do Sprint backlog e num determinado nível de qualidade eles devem se for necessário adaptar o plano para atingir o objetivo do Sprint e eles devem trabalhar em equipe profissionalmente eles devem se responsabilizar
mutuamente como profissionais Vamos falar agora sobre product o product aer também conhecido como po ou dono do produto ele é responsável pelo projeto ele tem diversas atribuições entre elas conhecer e avaliar as necessidades do cliente então ele tem que produzir a visão do negócio o que o cliente precisa ele precisa determinar Quais são os requisitos mais importantes a serem tratados em cada Sprint ele dá a Palavra Final Ele Decide Quais são os itens do produto de backlog que constarão em um determinado Sprint então ele deve priorizar esses itens determinar Quais são os mais importantes os
mais adequados para um Sprint específico ele deve maximizar o valor do produto que a equipe produzir e ele deve gerir o retorno de investimento ou seja o Ro ou Return of investment Além disso ele também é responsável pelo gerenciamento do produto de backlog Isso inclui ele vai desenvolver o o o objetivo do produto e vai comunicar esse objetivo paraa equipe ele vai criar e comunicar claramente os itens do produto de backlog ele vai ordenar e priorizar esses itens e ele vai garantir que o produto de backlog seja transparente ou seja eu consigo verificar a sua
evolução visível todo mundo toda a equipe consegue ver quais são os elementos contidos no produt de backlog e toda equipe tem que compreender Qual é a necessidade daqueles itens qual é a função daqueles itens e nós temos o scrummaster o scrummaster ele não é um gerente no sentido tradicional ele não é um líder as equipes elas são auto-organizadas então elas não precisam realmente de um líder no sentido clássico o scrummaster ele é um facilitador ISO significa que ele deve auxiliar a equipe a resolver problemas e deve ser alguém que conheça bem o modelo scrum ele
é responsável por estabelecer o scram Isso significa que ele vai ajudar todos os envolvidos a compreender a filosofia scram tanto teórica como prática e essa compreensão da teoria prática deve ser incutida tanto na equipe como na organização e ele é responsável pela eficácia da equipe scran ele é responsável para para que a equipe Tenha um bom desempenho Além disso ele deve incentivar a melhoria contínua da equipe em termos que ela deve estar sempre tentando melhorar as suas práticas em cada Sprint como eu falei o scrummaster ele é um facilitador e ele serve a equipe scran
ao product owner e a organização como um todo o scrummaster ele serve a equipe de diversas maneiras entre elas ele irá treinar os membros da equipe de forma que eles sejam capazes de se autogerenciar e a serem multifuncionais autogerenciar significa que eles decidirão Quem fará o que quando e como e a serem multifuncionais quer dizer que eles terão múltiplas funções terão múltiplas habilidades seram capazes de assumir múltiplos papéis como analista testador projetista etc ele também auxilia equipe no sentido que ele tenta fazer com que ela se foque em criar incrementos de alto nível com alta
qualidade que atendam a definição de pronto como eu falei a definição de pronto estabelece o que se espera do produto em sua em seu estado final e também o que se espera que qual do em termos de desempenho de adequação de qualidade de cada funcionalidade eh o scrummaster ele deve remover impedimentos ao Progresso da equipe qualquer dificuldade que o membro da equipe esteja enfrentando ele deve tentar solucionar e ele garante que todos os eventos scram ocorram corretamente sejam positivos produtivos e mantém o cronograma com relação ao product aer o scran Master ele auxilia o product
aer em outras diversas tarefas como por exemplo a encontrar técnicas que auxiliem na definição do objetivo do produto e no gerenciamento do produ backlog então ele vai auxiliar o producer em técnicas de licitação e análise de requisitos em projeto em técnicas de priorização de requisitos esse tipo de coisa ele também auxilia a equipe a entender a necessidade de itens claros e concisos para o produ backlog Ou seja a equipe tem que ser capaz de produzir itens que sejam Claros autoexplicativos que eh tenha um objetivo bem definido e ele facilita a colaboração das partes interessadas com
a equipe e com o product e o scrummaster ele serve a organização liderando e treinando a organização na compreensão e adoção do scrum ah verificando situações em que uma implementação scram é adequada para a organização e tentando remover barreiras de comunicação entre as partes interessadas E a equipe partes interessadas Como já foi ensinado antes é qualquer pessoa eh interessada no produto que será afetada pelo produto de alguma maneira vou falar um pouquinho sobre os artefatos scram existem essencialmente três artefatos scram o product backlog ou backlog do produto o Sprint backlog ou back do Sprint e
o incremento o product backlog basicamente é uma listagem das funcionalidades que o software deverá suportar o Sprint backlog é uma lista de funcionalidades que foram selecionadas pelo product owner para serem implementadas em uma determinada iteração um determinado Sprint e o incremento é o resultado do Sprint é um conjunto de funcionalidades funcionais que devem ser agregadas ao produto como um todo bom então artefatos no scran representam trabalho ou valor eles precisam maximizar a transparência de informação chave ou seja os artefatos eles devem ser fáceis de ler fáceis de ver como eles estão progredindo fáceis de entender
ah e eles devem ser fáceis de serem inspecionados graças a essa transparência qualquer um que inspecionar esses artefatos vai ter a mesma base para adaptação adaptação é um dos pilares scran deve se adaptar na medida em que haja mudanças em que se Verifique que algo precisa ser melhorado eh cada artefato ele vai conter um compromisso esse compromisso irá garantir que o artefato em questão vai fornecer informações que melhorem a transparência e o foco da equipe isso permite medir Progresso do processo então nós temos três compromissos um para cada artefato para o produto de backlog o
compromisso é o objetivo do produto ou product goal para o Sprint backlog o compromisso é o objetivo do Sprint ou Sprint goal e para o incremento o compromisso é a definição de pronto a definition of Don então o objetivo do produto é o que se espera do do produto como um todo num nível de qualidade determinado o objetivo do Sprint é o que se espera do o incremento também com determinado nível de qualidade e a definição de pronto estabelece Quando Um item do Sprint back do Sprint backlog ou do Sprint back ou do produto backlog
ah estão estão consider foram foram desenvolvidos e foi estão H tem um nível de desempenho considerado adequado para aquele produto então vamos falar um pouco sobre o produto de backlog ele como eu já disse ele é basicamente uma lista emergente e ordenada do que é necessário implementar ou melhorar no produto basicamente é uma lista de funcionalidades que deverão ser desenvolvidas é a única fonte de trabalho que será realizado pela equipe scran e eventualmente essa essa lista Ela não é uma lista rígida é ela pode muitas vezes deve receber no novos itens ou esses itens podem
ser alterados ao longo do projeto no momento em que novas funcionalidades foram sendo descobertas ou que a função dessas funcionalidades seja melhor compreendida Ahã dentro do produto de backlog os itens que são considerados como capazes de ser feitos pela equipe dentro de um determinado Sprint eles são considerados como podendo ser elencados selecionados para um planejamento Sprint Ah então é o item ele atinge esse grau de evolução ou esse grau de Transparência depois de uma série de refinamentos basicamente o refinamento é o ato de dividir redefinir melhorar os itens do produto de backlog H de tal
forma que eles se tornem menores mais detalhados e mais precisos essa é uma atividade contínua que vai adicionar detalhes aos itens esses detalhes podem ser descrição tamanho prioridade importância ou complexidade de um determinado item por exemplo aqui nós temos um exemplo de producto backlog que foi tirado do livro do Raul vsl o livro de engenharia de software do Raul vsl Ah então Aqui nós temos o exemplo de produ backlog onde nós temos a algumas informações como um número identificador o nome do item do produto backlog o grau de importância que foi dado a esse item
esse grau de importância não implica complexidade mas sim a importância que aquele item recebeu do Product Ah o grau de complexidade que foi identificada para esse item ah como demonstrar que esse item foi ã concluído que ele atin que ele foi considerado pronto ou feito então aqui ela tem um conjunto de passos para o item depósito onde o usuário irá logar abrir a página de depósito depositar r$ 1 ir para a página de saldo e verificar que ele aumentou em R 10 e aqui também e uma última informação são as notas então aqui se anotou
que é necessário produzir um diagrama de sequência uml e que não há necessidade de se preocupar com criptografia Por enquanto é importante notar aqui que se anotou que é necessário produzir um diagrama de sequência uml Isso serve para destacar que o scram não se atém a somente codificar existem amplas atividades de engenharia de requisitos de projeto de modelagem e de testes dentro do scran a gente que confunde eh processos ágeis com o método tradicional desenvolver que é codificar e testar isso não é ser ágil Isso é ser utilizar uma codificação basicamente partir direto para codificação
sem uma engenharia de quisito sem um projeto é uma forma incorreta de proceder métodos ágeis produzem documentação produzem Model também eles só combatem a documentação inútil e burocrática desde que documentação ajude a compreender o problema ou a resolver o problema ela é útil e deve ser produzida quando necessário Ah eu vou falar um pouquinho sobre o compromisso do producto de backlog que é o objetivo do produto o producto go basicamente ele descreve um estado futuro que se espera para o produto e serve como uma meta para a equipe se planejar então o objetivo do produto
ele é com está contido no produto de backlog e na verdade todo o restante do produto backlog é produzido em torno do produto ele é criado é identificado para definir como se irá cumprir o objetivo do produto Ah então um produto é um veículo para entregar valor tem um limite Claro partes interessadas conhecidas como falei partes interessadas São pessoas que serão afetadas ou t interesse no produto os usuários ou clientes bem definidos Quem irá utilizar o produto quem está patrocinando o desenvolvimento do produto agora vamos falar sobre Sprint backlock ele é composto pelo objetivo Sprint
pelo conjunto de itens do produto backlog que foram selecionados para serem desenvolvidos naquele Sprint e um plano de ação para entregar o incremento o incremento é o resultado do Sprint um conjunto de funcionalidades então o Sprint backlock ele é um plano que ele é feito pelos desenvolvedores e para os desenvolvedores ele é uma imagem visível do que os desenvolvedores planejam realizar durante o determinado Sprint de tal forma que eles consigam atingir o objetivo do Sprint então um Sprint backlog ele diversas histórias de usuário ou ou funcionalidades e determina que atividades deverão ser feitas para que
essas histórias sejam concluídas a contento Ah o Sprint backlog ele pode sofrer atualizações ao longo do Sprint na medida que mais é aprendido sobre as histórias sobre as funcionalidades sobre as necessidades e ele precisa ser detalhado suficiente para que ele possa ser inspecionado ã durante o Daily scran durante o scran diário Aqui nós temos o exemplo simples de Sprint backlog que foi retirado do livro do professor vats ladk então Aqui nós temos cinco colunas a primeira contém as histórias de usuário scran também trabalha com histórias de usuários a a exemplo do XP onde uma história
ela estabelece que um determinado ã usuário assume um papel deseja que eh seja produzida um determinado serviço uma determinada funcionalidade com determinado objetivo então Eh por exemplo em um sistema de controle bancário eu ele eu posso ter uma história de usuário assim como um cliente do Banco eu desejo eh poder emitir o saldo da minha conta para que eu tenha ciência de quanto eu possuo depositado por exemplo um exemplo de de história de usuário bem simples depois de descrever as histórias depois de listar as histórias Cada história tem um conjunto de tarefas e elas são
divididas em um uma tabela de tal forma que eu consiga ver quais são as tarefas que eu ainda preciso fazer Quais são as tarefas que estão em andamento Quais tarefas precisam ser verificadas ou inspecionadas e Quais tarefas já foram já foram terminadas Ah agora vou falar um pouquinho sobre o compromisso do Sprint backlog que é o objetivo do Sprint ou Sprint goal ele é um objetivo único para Sprint não pode haver mais de um objetivo para um Sprint ele determina o que a equipe deseja alcançar naquele Sprint e ele permite flexibilidade em termos de trabalho
de como vai se trabalhar para atingir aquele aquele objetivo Ah o objetivo Sprint el também cria esse foco uma vez que ele encoraja a equipe scint a equipe scran a trabalhar em conjunto e não em duplas ou individualmente então a colaboração é fortemente incentivada no scram ã ele é criado durante o planejamento Sprint é uma das primeiras coisas a serem criadas ele é adicionado a Sprint backlog e os desenvolvedores eles precisam manter o objetivo do Sprint em mente enquanto o Sprint ele é desenvolvido E se o trabalho for diferente do que era esperado então a
equipe precisa colaborar com product aer para negociar o escopo do Sprint backlog dentro daquele Sprint mas sem afetar o seu objetivo Vamos falar agora sobre o incremento o último artefato o incremento ele é um passo concreto em direção ao objetivo do produto e cada incremento ele é uma adição aos incrementos anteriores ele deve ser possível verificar cuidadosamente cada incremento de forma a garantir que os incrementos estejam integrados corretamente e que funcionem juntos que não haja erros de integração que não haja comportamentos emergentes inesperados esse tipo de coisa Ah e o incremento ele precisa ser utilizável
pro cliente de maneira que ele realmente agregue valor eventualmente durante o Sprint pode se produzir múltiplos incrementos a soma dos incrementos vai ser apresentada na revisão do Sprint e o incremento eventualmente ele pode ser entregue antes mesmo que o Sprint chegue ao fim agora se o trabalho produzido ele não atender a definição de pronto então ele não é considerado parte de um incremento vamos falar um pouquinho sobre o compromisso do incremento que é a definição de pronto ou definition of Don Alguns chamam definição de feito então o incremento o o a definição de pronto é
uma descrição formal do que se espera daquele incremento num determinado nível de qualidade ele precisa atender essas medidas de qualidade e quando Um item do Product backlog Ele atende a definição de pronto então se considera que o incremento é produzido Como já foi falado pode se produzir eh vários incrementos e um determinado Sprint eh a definição de pronto ela cria transparência Ou seja você consegue perceber ã o que já foi concluído naquele emum determinado incremento Ah agora se um determinado item do produto backlog ele não atende a definição de pronto então ele não pode ser
entregue Não pode ser apresentado na revisão Sprint e ele deve ser retornado para o produto de backlog para ser abordado novamente em uma nova iteração um novo Sprint e nós terminamos a primeira parte do scran eu espero que vocês tenham achado esse conteúdo útil se vocês gostaram dessa aula eu peço que vocês se inscrevam compartilhe esse conteúdo com quem possa se interessar e eu agradeço a atenção de todos Obrigado nós nos vemos nas próximas aulas Y [Música]