[MÚSICA] Olá! Bem-vindo ao curso Princípios de Desenvolvimento Ágil de Software. Eu sou Clovis Fernandes e hoje iremos falar sobre o Time Scrum, a equipe que vai desenvolver software com base na nossa metodologia proposta Scrum com XP. Então, qual vai ser essa equipe? Essa é a nossa pergunta. Quais são os papéis? Quem são as pessoas e os papéis que vão fazer parte dessa equipe? Normalmente nós teremos três tipos de pessoas, duas vocês já conhecem, que é o product owner, o proprietário do produto, o dono do produto, e o time de desenvolvimento normal, aqueles que são os desenvolvedores. Eu estou acrescentando aqui, agora, o que a gente chama de Scrum Master. O Scrum Master é novo papel que também vai fazer parte desse Time Scrum. Então quando eu falo do time do scrum é diferente do time de desenvolvimento. Time de desenvolvimento é só aquele que vai realmente desenvolver. Qual a diferença? O product owner, ele está preocupado muito com o que fazer, o what, o quê que eu quero que seja feito. O time de desenvolvimento com o como, o how. E o scrum master? O scrum master está aqui para conduzir o processo do scrum e XP. Ele é que vai garantir que todos os valores e pilares do scrum sejam seguidos pelo time, o restante do time scrum, que é o product owner e o time de desenvolvimento. E também até pelos stakeholders, os clientes, e todos que estariam envolvidos com esse desenvolvimento de software, também precisam pegar esse espírito ágil, e aí cabe ao scrum master mostrar isso para todo mundo. Uma coisa que nós iremos mostrar agora são, vamos dizer assim, as características do time scrum, que o time scrum deve possuir. Eles são auto-organizáveis e multifuncionais. O que eu quero dizer por auto-organizável? Ninguém de fora do time diz como as coisas devem ser feitas. Quem escolhe o que deve ser feito é o próprio time. Por exemplo, nós estamos mostrando aqui uma metodologia que é o Scrum com o XP, que a gente chama de Scrum e XP. Dentro do XP nós escolhemos algumas coisas, nós estamos mostrando, por exemplo, a programação pares, o TDD, estamos mostrando a integração contínua do software que vai sendo desenvolvido. Mas quem realmente decide que partes do XP, por exemplo, vai ser usado é o time. Ele que vai escolher. Ele se organiza para fazer aquilo que é mais apropriado para esse time, então ele que vai escolher. No fundo ele pode até escolher não fazer com o XP, como nós estamos mostrando pra vocês. Já a questão de ser multifuncional, isso tem bastante a ver, o próprio scrum master, ele tem todo esse lado de gerenciar o processo do scrum e XP. O product owner vai te ajudar a definir o que deve ser desenvolvido e sempre vai tirar essas dúvidas da equipe. E o time de desenvolvimento, ele tem que ter uma formação que a gente chama de multifuncional, ou seja, as equipes vão ser de três a nove pessoas e elas devem ter diferentes conhecimentos, diferentes competências. Porque isso vai ajudar no desenvolvimento. O que a gente chama de time multifuncional é isso. Nós vamos ter gente que entende de desenvolvimento web, gente que entende de banco de dados, de computação nas nuvens, de Java, e de banco de dados, e de várias coisas que têm a ver com o desenvolvimento. Essa é a multifuncionalidade. Alguns desses membros do time têm o que a gente chama do que seria uma formação do full stack developer, que é aquele que consegue conhecer muita coisa cada parte do desenvolvimento, desde o front-end, do back-end, de servidor, de redes. Mas esse profissional, ele é raro. E, hoje dia, com a quantidade de técnicas e linguagens que estão envolvidas no desenvolvimento web, é muito difícil alguém dominar bem tudo. Então, quanto mais informações diversas tiver a equipe, é melhor. Por isso que você não pode ter nem menos que três nem muito mais que nove, a gente vai ver isso quando falarmos sobre o time de desenvolvimento. Esse modelo de time ajuda a aperfeiçoar as características que são intrínsecas, que a gente valoriza muito no scrum e XP, que é a flexibilidade, a criatividade e a produtividade. Isso sempre dentro de ritmo sustentável. E o que vai ajudar nisso? O que vai ajudar nisso são as entregas iterativas. Você vai ter ciclos, geral são ciclos curtos, que a gente está chamando de sprint, e incrementos, eles são iterativos e incrementais. Você vai pegar uma determinada user story, desenvolver o código correspondente para aquilo e isso vai fazer com que exista comprovação daquilo que a gente estava imaginando nos requisitos e naquilo que realmente é implementado. Isso, ao longo do desenvolvimento, vai dar muita realimentação, muito feedback. Então, quando o product owner, o cliente, o usuário, os stakeholders, no final verificam se os testes de aceitação que eles tinham previstos foram bem realizados e que aquele resultado realmente ficou de acordo com o que eles esperavam, okay. Mas e se não ficar? Se não ficar, você tem o feedback, e isso vai ser útil pra você tomar novas decisões. E dentro dos pilares do scrum e XP que você tem essa questão da inspeção e da adaptação, você verifica e vê que a coisa não deu certo e adapta. Mas você não fica fazendo isso de qualquer jeito. Como você está sempre preparando no espírito do EDUF, você vê o suficiente, você consegue visualizar melhor e fazer caminhos de adaptação para que você não fique num vai e volta, ou vai para lado e vai para o outro. Outra característica importante do time scrum é que no final você tem entregas que são funcionais, elas funcionam, você está vendo os incrementos funcionando. Ou seja, você pegou uma user story, você está vendo como é que ela vai ficar realmente implementada. E isso é compromisso que a cada sprint você tem no desenvolvimento do scrum e XP. E isso dá uma capacidade muito grande de você se realimentar e a se adaptar às necessidades que vão aparecendo. Com isso, nós vimos que o time scrum, ele é montado para, vamos dizer assim, garantir que você vai ser flexível o suficiente pra aceitar mudanças e se adaptar a essas mudanças ao longo do caminho e ao mesmo tempo fazendo entregas que tenham valor para o stakeholder, para o product owner. E isso é que é importante. Nas próximas aulas nós iremos falar sobre cada desses tipos do time. Nós vamos falar sobre o product owner, que a gente já vem falando ao longo do tempo, mas agora vamos falar especificamente. Depois, do time de desenvolvimento e depois pouquinho mais sobre o papel do scrum master. [MÚSICA] [MÚSICA]