Prévia do material em texto
Práticas de Desenvolvimento Ágil Para que o projeto da Empresa Meu Pé Corredor tenha êxito, precisamos, primeiramente aplicar metodologias ágeis para melhor interação entre os setores e dentro da própria equipe de informática. Seguiremos aplicando o Scrum no planejamento, ou parte dele, para que a comunicação seja aprimorada e a agilidade nos processos esteja presente. Teremos que estruturar a equipe, escolhendo a pessoa que será o Product Owner, que terá missão de realizar a comunicação entre a equipe e o cliente (usuário). Seguirá avaliando riscos e benefícios, o que é possível, o que pode ser feito e qual a real necessidade do cliente (usuário). Em seguida será escolhido o Scrum Master, que vai orientar a equipe quanto à estrutura de processos da metodologia ágil, identificar quais obstáculos estão atrasando ou causando lentidão nas atividades executadas pela equipe. Agora vamos a Sprint, que pode ter a duração de duas semanas até um mês. A Sprint Planning (primeira reunião) abre os ciclos da sprint e prioriza as atividades que serão executadas, estabelecendo uma discussão entre Product Owner e o Scrum Master no sentido de alcançar um alinhamento de meta e objetivos do ciclo. Na sequência serão apontados os itens do Product Backlog que ainda não foram executados, novos que surgiram durante a discussão do objetivo da reunião e as entregas maiores serão divididas em menores, prioridades e definições do projeto. É muito importante ser implantada também a Daily Scrum, uma breve reunião que ocorre diariamente, em que a equipe expõe o que foi feito, o que eles deverão fazer nos próximos dias e se existem algum impedimento na realização de tais tarefas. A Revisão da Sprint tem como objetivo validar as entregas e se os critérios estabelecidos na Sprint Planning foram executados. É quando a equipe de desenvolvimento dará sua devolutiva do que foi construído até o momento. Outros métodos ágeis que poderão ser eficazes, juntos com o Scrum no referido caso é a história de usuário (User Story), Entregas Frequentes, o cliente presente e o desenvolvimento incremental, onde o projeto será dividido em pequenas partes de entregas para o cliente (usuário). No desenvolvimento iterativo, a cada iteração avançamos no projeto, novos requisitos são apresentados e a arquitetura do sistema é revisada. História de usuário deve ser focada no usuário e ser informal, é um levantamento de requisitos ágil que surgiu através da metodologia ágil XP (Extreme Programming), que deve agregar valor de negócio e terá que ser INVEST (Independente-Negociável- Valiosa-Estimável-Small-Testável). Caso a história não cumpra qualquer um desses critérios, ela pode ser descartada, visto que a equipe de desenvolvimento realizará as tarefas que realmente poderão ser programadas. O cliente (usuário) presente também tem um papel de extrema importância, pois o usuário se aproxima da equipe e expõe suas necessidades reais. O usuário deverá, se possível estar sempre disponível, caso surjam dúvidas dos requisitos e deverá fazer parte da equipe. Ele é peça fundamental para o desenvolvimento do projeto. Entregas Frequentes se baseiam no desenvolvimento do software e conforme os requisitos forem surgindo, é disponibilizada uma atualização da versão do software. Cada atualização entregue deve ter o menor tamanho possível, comtemplando os requisitos de maior valor para o negócio. As versões devem ser entregues a cada mês, ou no máximo a cada dois meses, possibilitando um feedback mais rápido do usuário. Para as práticas diárias de desenvolvimento do software, podemos utilizar um método de teste ágil da XP (Extreme Programming), baseado na criação de testes antes do código, o chamado Test Driven Development (Desenvolvimento Criado por Teste). Essa técnica consiste em criar o teste com a melhoria ou nova funcionalidade e depois é elaborado um código que possa ser validado por esse teste e, ainda posteriormente este código é refatorado. A programação em pares se baseia no compartilhamento de conhecimento das regras de negócio do projeto por todos da equipe de desenvolvimento, fortalece a prática de pertencimento coletivo do código e nivelação de conhecimento técnico dos desenvolvedores. Eles trabalham em dupla e revezam na criação dos códigos e testes. Para as entregas ágeis, a equipe de desenvolvimento poderá utilizar a técnica DevOps (Development e Operations), que consiste na união e na colaboração entre as equipes, focando na rapidez da entrega com qualidade, atuando em todo o ciclo, desde o desenvolvimento, testes até a implantação, focando sempre em entregas constantes e que agregam valor ao negócio. Devemos aplicar os conceitos da integração, entrega e implantação contínuas. A integração contínua baseia-se na redução das tarefas manuais no processo de integração de códigos. São utilizadas ferramentas de controle de versões, como por exemplo o Github e automação dos testes, facilitando a correção de erros e garantindo que o sistema continue funcionando após cada atualização. Na entrega contínua a equipe certifica que o código está adequado para entrar em produção. É necessária a implantação do código nas bases de homologação e desenvolvimento de forma simples, realização de testes adicionais (unitários e de integração) nas funcionalidades e verificar se está tudo pronto e ajustado o mais breve possível. Assim, se for identificado algum bug, a equipe realiza os ajustes finais e disponibiliza as funcionalidades novas. A implantação contínua é o prosseguimento da entrega contínua. Nesta prática a equipe de desenvolvimento disponibiliza o código pronto e solicita o deploy (implantar). São realizadas validações de todas as fases anteriores, e se não houverem erros, a funcionalidade é liberada automaticamente para os usuários. Segundo DIAS, R.R. (2017): “A Implantação contínua não se aplica a toda empresa. Foi pensada principalmente, mas não exclusivamente, para o desenvolvimento de aplicações para web. Há muitas vezes regras de governança rígidas e necessidade de testes manuais que impedem o uso desta metodologia. Mas recomenda-se as empresas que tenham a possibilidade que tentem aplicá- la, porque promove mudanças positivas e profundas na organização. Como o programador tem capacidade de colocar suas alterações em produção de forma autônoma ele passa a ser mais preocupado com questões de qualidade e confiabilidade. Com pequenas mudanças disponíveis constantemente em produção, a empresa passa a receber feedbacks pontuais e realistas de seus clientes e, assim pode determinar o valor agregado e decidir se deve investir mais na nova funcionalidade”. Para acompanhamento do progresso da equipe, pode ser utilizado o gráfico de Burndown, uma ferramenta do Scrum que analisa o andamento da equipe considerando tempo, esforço e prazo de entrega. Permiti que o tempo proposto para alguma atividade seja acompanhado e avaliado, mostrando se houveram atrasos e impedimentos no cronograma. Referências Bibliográficas: MARRA, T. Introdução ao desenvolvimento guiado por testes (TDD). In: Dev Community. São Paulo, 14 jun. 2021. Disponível em: https://dev.to/thalimarra/introducao-ao-desenvolvimento-guiado-por-testes-tdd-42ed/. Acesso em: 16 mar. 2022. BRASILEIRO, R. Veja agora 08 dicas para criar excelentes histórias de usuários. In: Método Ágil. São Paulo, 2021. Disponível em: https://www.metodoagil.com/historias- de-usuario/. Acesso em: 16 mar. 2022. MATHEUS. O que é integração, entrega e implantação contínuas? In: Opus Software. São Paulo, 17 jul. 2018. Disponível em: https://www.opus-software.com.br/o-que-e- integracao-continua/. Acesso em: 16 mar. 2022. CAMARGO, R. Burndown: conheça o gráfico que mede produtividade. In: Robson Camargo Projetos e Negócios. Disponível em: https://robsoncamargo.com.br/blog/Burndown/. Acesso em: 16 mar. 2022. STEPPAT,N. DevOps: o que é e as principais práticas. In: Alura. São Paulo, 22 nov. 2019. Disponível em: https://www.alura.com.br/artigos/devops-o-que- e?gclid=EAIaIQobChMIudX4_LTL9gIVBTuGCh3DZAYMEAAYASAAEgJ-BPD_BwE/ Acesso em: 16 mar. 2022. DIAS, RR. Diferenças entre integração, entrega e implantação contínuas. In: 4.Linux Blog. São Paulo, 27 nov. 2017. Disponível em: https://blog.4linux.com.br/integracao- entrega-implantacao-continua/. Acesso em: 17 mar. 2022. https://dev.to/thalimarra/introducao-ao-desenvolvimento-guiado-por-testes-tdd-42ed/ https://www.metodoagil.com/historias-de-usuario/ https://www.metodoagil.com/historias-de-usuario/ https://www.opus-software.com.br/o-que-e-integracao-continua/ https://www.opus-software.com.br/o-que-e-integracao-continua/ https://robsoncamargo.com.br/blog/Burndown/ https://www.alura.com.br/artigos/devops-o-que-e?gclid=EAIaIQobChMIudX4_LTL9gIVBTuGCh3DZAYMEAAYASAAEgJ-BPD_BwE/ https://www.alura.com.br/artigos/devops-o-que-e?gclid=EAIaIQobChMIudX4_LTL9gIVBTuGCh3DZAYMEAAYASAAEgJ-BPD_BwE/ https://blog.4linux.com.br/integracao-entrega-implantacao-continua/ https://blog.4linux.com.br/integracao-entrega-implantacao-continua/