Por que a metodologias ágeis recomendam equipes pequenas para o desenvolvimento
de software? R: Devido ao número pequeno de integrantes, é muito mais acessível compartilhar informações do projeto com a equipe e analisar as opiniões e adendos de cada um, garantindo melhores resultados, uma comunicação abrangente onde todos estão a par dos acontecimentos e por fim, evitando conflitos com a equipe, uma vez que todos estão cientes do que está sendo elaborado por cada um.
2. Explique o que são equipes auto-organizáveis e autogerenciáveis.
R: Trata-se de equipes que possuem autonomia para identificar e decidir a melhor forma de resolver um problema, sem que seja necessário de uma direção externa. Cada integrante do grupo é independente para se organizar em torno de uma situação e pensar na melhor forma de resolve-la, sem que um gerente de projetos esteja a frente da situação. Em resumo, se trata de uma equipe dinâmica que está acima de cargos ou tarefas específicas delegadas a cada um, querendo entregar a melhor solução possível.
3. Explique os papeis (Scrum Master, product owner e Development Team) que existem
no processo de desenvolvimento SCRUM? R: Scrum Master: Lider da Equipe, responsável por defender e orientar toda a equipe envolvida no projeto. Buscando implementar um Scrum adaptativo a cultura da empresa, certificar que os membros da equipe estão executando suas funções e regras do Scrum, engajar a equipe para evitar a improdutividade em momentos de dificuldade, garantir a integridade do projeto evitando que terceiros não integrantes da equipe interfiram na solução. Product owner: Dono do Produto, encarregado de direcionar o projeto, definindo os fundamentos e objetivos da solução, listar todos os interesses e requisitos, conforme as necessidades dos stakeholders e demais partes interessadas. Development Team: Time de Desenvolvedores, responsáveis por desenvolver o Produto. Este se trata de um pequeno grupo multidisciplinar, estruturado, composto por profissionais qualificados em cada uma das áreas necessárias do projeto. O time define como as funcionalidades serão desenvolvidas, aplica-se a autogerência alavancando a eficiência do projeto, uma vez que, todos os membros trabalham coletivamente como responsáveis pelo sucesso de cada interação.
4. No SCRUM o que é o Product Backlog? O que é o Sprint Backlog?
R: Product Backlog, se trata dos requisitos coletados junto aos usuários, para garantir que todas as funcionalidades do projeto serão analisadas, entendidas e projetadas conforme as necessidades dos stakeholders. Sprint Backlog, se trata de uma lista de atividades que deverão ser realizadas durante o período de uma sprint, atividades essas originada de uma reunião com base no Product Backlog elaborado pelo Product owner onde todos os membros da equipe participam e expõem as suas opiniões sobre o projeto.
5. Quais os benefícios da programação em pares realizada no processo
de desenvolvimento de software extreming programing – XP. R: Melhora a disciplina, uma vez que pares são menos propensos a realizarem pausas de longa duração. Maior qualidade, o trabalho é feito e revisado a todo momento pelos 2 integrantes. Melhor fluxo de trabalho, o foco e a atenção são dobrados auxiliando em uma maior qualidade de desenvolvimento. Melhora a moral, trabalhar coletivamente agrega maior satisfação e reconhecimento pela equipe. Aprendizado mútuo e contínuo, um programador ensina o outro durante toda a construção da solução. 6. Quais as semelhanças e diferenças entre o Scrum e o XP? R: Semelhanças: Ambos realizam uma previsão para o futuro (não definem todos os requisitos logo no início do projeto), produzem software de forma incremental, a comunicação é feita periodicamente com a equipe envolvida, o cliente participa ativamente do projeto. Diferenças: O Scrum divide o desenvolvimento do projeto em Sprints, que duram em torno de 30 a 60 dias. As equipes são formadas por especialistas com diferentes competências. O XP trabalha com validações a todo instante através de testes, no Scrum somente ao final de cada Sprint. O XP adota a programação em Par como pratica fundamental, onde os 2 programadores se auxiliam em todo o processo, entre outros.
7. O que é Test-Driven Develepment (TDD)? Quais são seus benefícios?
R: É uma técnica de desenvolvimento orientada a testes. Onde os testes podem ser executados antes mesmo da finalização do Sistema. Os principais benefícios são: Feedback rápido sobre a nova funcionalidade, código mais limpo, segurança contra bugs, maior produtividade entre outros.