[MÚSICA] [MÚSICA] Olá. Bemvindo ao Curso Princípios de Desenvolvimento Ágil de Software. Eu sou o Clovis Fernandes e hoje iremos falar de porquê que é importante definir, especificar a Visão da Aplicação no contexto de modelo ágil como o Scrum & XP. Vamos começar pelo começo. Você tem uma ideia, grande software que você quer desenvolver. E aí você imagina. O que é que eu preciso fazer para que eu desenvolva esse software? Uma ideia é usar o nosso Scrum &XP e vai nos ajudar a desenvolver. E aí? Que é que eu faço, que é que eu preciso começar a fazer? Antes, no começo do Scrum eu defino Sprint Zero. Eu vou fazer projeto do que eu quero, vou antecipar pouco o que eu quero fazer. Esse Sprint Zero normalmente é de uma, duas semanas e eu tenho duas coisas essenciais que eu vou definir, que é a Visão da Aplicação que é conjunto de informações que vão me ajudar a saber o que é que eu quero realmente implementar. Porque eu posso ter uma ideia e posso implementar de jeito A, de jeito B, de jeito C. Essa visão vai me dizer qual que é a direção que eu posso tomar. Pelo menos inicialmente. Como o modelo é ágil eu posso ao longo do caminho fazer mudanças. Isso é o que se espera com Desenvolvimento Ágil. E o segundo item é o que a gente chama de Backlog do produto. O que é o Backlog? O Backlog é conjunto de User Stories que vão representar de uma maneira pouquinho mais formal os requisitos do usuário que estão expressos lá na Visão da Aplicação. Então eu vou chamar atenção para vocês que desenvolver no Sprint Zero essa Visão da Aplicação e também obviamente o Backlog do produto, as primeiras User Stories do meu sistema, isso tem muito a ver com o que a gente havia falado anteriormente, que era a maneira apropriada para a gente desenvolver Software Ágil no TDD. No curso sobre TDD eu falei sobre EDUF. Falei do EDUF: Enough Design UpFront, Projeto Suficiente Antecipadamente. Ou seja, isso contraposição ao que a gente chamava de BEDUF, que é o Big Design UpFront. Aquele que eu não antecipava o necessário, antecipava praticamente tudo. Mas a essência do Modelo Ágil é você não perder muito tempo com o projeto mas ao mesmo tempo você não faz nada aquilo que eu chamei brincando, EDUF e NODUF. São termos que eu inventei só para identificar aqui. EDUF já é termo usado geral. O NODUF, não tinha projeto nenhum UpFront, também não é legal isso. Como é que na época fazia, no TDD? A gente propôs uma maneira usando modelagem CRC que eu identificava responsabilidades e aí ia desenvolvendo todo o meu projeto do TDD usando isso. Eu usava para verificar antecipadamente. Agora no Sprint Zero nós vamos fazer esse EDUF. Esse Sprint Zero corresponde a fazer Projeto Suficiente Antecipadamente e consiste criar essa Visão da Aplicação e o Backlog da aplicação. Então, esse Sprint Zero fazendo a Visão da Aplicação e o Backlog de produto é para dar mais segurança no meu caminhar, ao desenvolver o software. Esse é o objetivo de eu estar fazendo essa antecipação suficiente. Eu não vou perder muito tempo, eu vou levar de dia normalmente, uma semana ou até duas semanas quando o projeto for grande, mas não vou perder mais tempo do que isso. E gera documento enxuto que é essa Visão da Aplicação. Ele é duas, três páginas apenas. A ideia da Visão da Aplicação é dar essa primeira visão antecipada do caminho que nós iremos trilhar. Quando eu digo nós não só o Product Owner mas é o Time de Desenvolvimento são as partes interessadas, os Stakeholders. E até eventuais tipos de usuários que você consiga ter, pessoas que caracterizem esses tipos de usuários. Qual é o resultado final que eu espero desse Spritn Zero? É ter essa Visão da Aplicação. Eu tenho informações suficientes para começar? É isso que eu quero. Para começar com segurança. Para começar, eu não tenho tudo, não é a ideia de ter tudo. Vocês lembram que no nosso modelo de User Story nós estamos definindo que dos items seja os erros de conversação. Isso significa que qualquer coisa que eu faça vai ser negociado com as várias partes envolvidas e elas não precisam estar completas antecipadamente. Na hora certa as coisas vão sendo, as dúvidas vão sendo tiradas. A Visão da Aplicação, muitos também chamam de Visão do Produto, ela serve de norte verdadeiro do projeto, para todos os envolvidos. Nós temos que pensar que ele vai definir a direção e vai orientar a equipe. A equipe aqui é num contexto pouquinho mais amplo do que simplesmente a equipe de desenvolvimento. Nós vamos falar mais à frente, mas que vai nortear principalmente a equipe de desenvolvimento no Scrum&XP. Ela descreve porque o projeto está sendo realizado. Ela descreve qual é o estado final desejado. Às vezes eu tenho uma ideia do meu produto como se ele já estivesse pronto, por causa dessa descrição do projeto. Mas eu disse que a equipe é ampliada é porque realmente era ampliada. Nós vamos aqui nos preocupar meramente com o desenvolvimento, mas quando a gente fala de Visão de Aplicação nós vamos envolver não só o Product Owner não só o Time de Desenvolvimento. Nós vamos envolver pessoal de Marketing, vamos envolver Designer de Produto, Designer de Interface, e partes interessadas, os Stakeholders e eventualmente até algum exemplo de tipo de usuário, alguém que exemplifica isso, então, está desenvolvendo aplicativo que é para pessoas idosas que tenham problema de vista então, você pode trazer para participar, algumas pessoas que vão participar para ajudar a definir essa Visão da Aplicação para que fique com mais informações. Quando a gente chama de Visão do Produto ou da Aplicação, nós queremos enfatizar que existe basicamente uma parte muito importante que é a visão ou valor de negócios. Quem vai dar isso vão ser os Stakeholders quem está fazendo esse software, e o Product Owner. Esses dois aqui é que vão dar a linha, direção como negócio. Na verdade, parelelo, toda aquela equipe que eu mostrei que não é desenvolvedor, vai estar desenvolvendo plano de negócios, Business Plan para essa aplicação. E isso não precisamos nós desenvolvedores de nos preocupar. Mas dessas informações e o Product Owner, o dono do produto, que faz parte da equipe ele que vai estar trazendo essa visão do plano de negócios. E com isso ele vai poder identificar quais as necessidades dos clientes ou até dos tipos de usuários que são importantes para o negócio. No nosso caso específico o que nós vamos estar bastante interessados é nisso aqui, as necessidades dos clientes e de dos tipos de usuários. Porque nós queremos inicialmente identificar quem são os tipos de usuários da Visão da Aplicação mas, no fundo, nós estamos querendo identificar as User Stories que vão ser, vão representar os requisitos, as necessidades dos clientes. Vão ser necessidades ou requisitos funcionais, e até os não funcionais. Os não funcionais vão ser muito influenciados pela visão do valor de negócios, e isso tudo é o que vai nos interessar. Com isso nós mostramos porque é que é importante ter a Visão da Aplicação. Porque vai nos ajudar a ter uma segurança maior do que nós devemos fazer, mas não precisa ser uma segurança absoluta. Modelo Ágil está aqui sendo usado para isso. Mas inicialmente nós temos que ter norte. Esse norte é a Visão da Aplicação. Obrigado. [MÚSICA]