[MÚSICA] Olá! Bemvindo ao curso Princípios de Desenvolvimento Ágil de Software, eu sou Clovis Fernandes e nesta videoaula iremos mostrar a importância de se coletar dados usando a Visão EDUF Enough Design Up-front, o Projeto Antecipado Suficiente. Retomando o que nós já havíamos comentado, a gente vai fazer, então, uma análise ágil, ou seja, nós não vamos tentar ser completos, levantar tudo, vamos levantar tudo que for possível dentro daquilo que a gente falou que a gente faz no Sprint Zero. No nosso Scrum e XP, naquele sprint que é o de planejamento, de conseguirmos descobrir as informações suficientes, tá certo? Por isso que a gente usa a visão EDUF sobre software. Nós não queremos ver muita coisa, queremos ver o suficiente mais à frente, para podermos desenvolver de maneira ágil e com isso nós vamos gerar documento de visão da aplicação, visão do produto que vai ser muito mais enxuto do que da maneira tradicional do BDUF. Muitas metodologias ágeis, ditas ágeis, elas fazem uma análise bastante tradicional, alguns livros de desenvolvimento ágil eles fazem uma análise, uma coleta de informações, de funcionalidades e não funcionalidades, definem essas, especificam esses requisitos coletados na forma de casos de uso e a partir dos casos de uso eles especificam as user stories. Vejam, isso não é uma coisa muito ágil. Para você especificar bem casos de uso, você tem que fazer uma especificação, uma coleta bastante intensa, quase completa, e vai levar muito tempo para definir e especificar os casos de uso também, e aí só então você vai, dessa especificação de casos de uso, extrair as user stories. Não, isso não é nada ágil, tá certo? Quando nós apresentamos a visão da aplicação anteriormente para extrairmos algumas user stories nós falamos: eventualmente ela não é feita, não é muito adequada para extrair user stories. Por que? Ela é feita de maneira tradicional, ela trata funcionalidades e não funcionalidades mas não da maneira que seria adequada para user stories, tá certo? A ideia aqui é nós pensarmos nessa coleta já no conceito de user stories, pensarmos tipos de usuários, os objetivos desses usuários, os motivos, por quê que esses usuários querem realizar tais coisas, tá certo? Então, nós vamos fazer uma coleta já pouco mais ágil, não vamos estar explicitando as user stories ainda, mas já vamos estar trabalhando com esses conceitos, com esses componentes, que vão ajudar a compor as user stories, no final vocês lembram que na minha especificação eu já tinha definido, aquela do exemplo nosso, do Livros a Jato, que eu tinha já definido os tipos, além de toda a descrição da Livros a Jato, eu tinha já uma especificação de todos os tipos de usuários, dos objetivos que cada desses tipos queria alcançar com o sistema Livros a Jato, e os motivos que os levavam a querer fazer aquilo. E é isso que nós queremos, ao final, ter de uma especificação ágil, tá certo? Então, vocês vejam que, quando eu estiver especificando, não tem problema da especificação ter sido feita de uma maneira não ágil, assim, ágil, mas usando uma estrutura de definição meio antiga, não tem problema, nós conseguimos superar isso como extrair as user stories. Agora, se estiver na estrutura que eu já estou pensando nas user stories aí fica muito mais fácil, muito mais rápido e confiável, extrair as user stories da visão da aplicação. Na abordagem ágil nós iremos, então, propor uma coleta que tenha essa visão de usar os elementos who, what e why para definir user stories, mas de uma maneira mais livre, mais solta, tá certo? E vamos fazer essa coleta através de entrevistas, através de questionários e de observação direta, ou uma combinação dessas três coisas. Mais pra frente, depois que você já tem as user stories definidas, nós também podemos usar uma técnica que a gente chama de workshop, ou oficina, para refinar as user stories. O que que todas essas técnicas têm comum? São as pessoas que vão estar sendo alvo dessa coleta, que são os usuários, clientes, stakeholders, interessados de diversa ordem, e a equipe de desenvolvimento, incluindo principalmente o product owner. Vamos começar então pela entrevista. Para obter a visão da aplicação nós iremos agora apresentar os três tipos de coleta que nós iremos usar, mais depois os workshops. O que que acontece? A primeira delas é a Entrevista, que eu posso entrevistar usuários individualmente ou pequenos grupos. Quer dizer, o alcance é sempre pequeno, eu tenho que trabalhar. Qual é a vantagem? Eu tenho uma conversa muito intensa. Eu acabo tendo muitas informações, principalmente que dão o contexto da aplicação de uma maneira muito rica. A outra forma é através de Questionários. Por que eu vou usar questionários? Porque muitas vezes nós temos uma quantidade muito grande de tipos diferentes de usuários, ou o universo de pessoas que compõe esse tipo seja muito grande, talvez seja interessante ouvir, saber as opiniões, as informações dessas pessoas. Ou seja, quando fica meio inviabilizado você fazer entrevistas com todo mundo, porque é praticamente impossível, principalmente se tem pessoas que estão à distância. Então vale a pena a gente usar o questionário, mas o questionário tem que ser bem bolado, e depois o resultado é uma coisa muito fria, a gente as vezes não consegue ter todo o contexto, é isso que a gente vai depois ponderar melhor. Mais para a frente nós estaremos definindo melhor essas formas de coleta. A próxima é a Observação Direta. Ou seja, muitas vezes o que as pessoas falam, uma coisa que é notória, o usuário nem sempre sabe o que quer. Isso é uma máxima que a gente que desenvolve software já sabe. Então o que acontece? Às vezes a gente vai lá observar o que ele faz. Então se você tem essa possibilidade, você vai lá pra observar alguns usuários usando versões anteriores de softwares ou versões manuais que você quer automatizar, pra ver realmente, confirmar algumas coisas, e ver algumas informações adicionais. Então a observação direta é muito importante. Entrevistas, questionários e observação direta, são coletas de informações que vão me ajudar a desenvolver a visão da aplicação. Quando eu já, depois de ter feito a, vamos dizer assim, a especificação das user stories com base na visão da aplicação, é, muitas vezes, importante eu fazer o que a gente chama de workshop, que é uma oficina, que é reunir o product owner, o time de desenvolvimento, e grupo substancial, importante, não precisa ser todos, mas grupo substancial de usuários, clientes, stakeholders, todos na mesma sala, discutindo as user stories que foram levantadas, ampliando essas user stories, refinando, pra ver se a gente consegue entender melhor. Ou seja, qual é o o fundo nosso da análise ágil? A conversação. A conversa é importante e nos workshops é que a gente faz isso. Uma coisa importante que nós temos sempre que repetir, é que nós não queremos ser completos. Nós queremos levantar as informações, as descrições para compor a visão da aplicação o suficiente. Assim como nós não queremos levantar todas as user stories, mas queremos levantar as suficientes também, tá certo? Então aplicar aquela visão EDUF é muito importante, obrigado. [MÚSICA]