Prévia do material em texto
Enunciado Modelos de processos de software fornecem diretrizes gerais para o desenvolvimento do software e devem ser escolhidos e utilizados de acordo com características específicas do projeto de desenvolvimento do software que envolve informações da equipe a desenvolver o software e também do cliente. Imagine a situação abaixo. Um escritório de advocacia deseja contratar os seus serviços para apoiar no suporte automatizado de tarefas jurídicas comumente realizadas por seus advogados. Dentre as atividades tem-se a elaboração de documentos a serem protocolizados em diferentes tribunais de justiça de esfera estadual e federal; o acompanhamento de movimentações processuais de processos judiciais sob os cuidados dos advogados do escritório; e o gerenciamento de prazos jurídicos para manifestação em processos judiciais acompanhados pelo escritório. Você, como bom engenheiro de software, percebe que muito tem a aprender sobre a área jurídica e também sobre a forma de trabalho dentro do escritório cujo processo de negócio deverá ser apoiado pelo software solicitado. Ao visitar o escritório e conhecer um pouco mais da empresa, você percebe que todo o acompanhamento de processos judiciais é realizado ainda em papel e pilhas e mais pilhas de papel podem ser vistas nas mesas dos advogados da empresa. Duas coisas você consegue deduzir disso: 1) a empresa parece ser bem sucedida e os advogados devem ser bastante ocupados já que a quantidade de processos judiciais é bem alta; 2) o sistema trará economia para a empresa de milhares de reais, hoje gastos com impressão. Você percebe que a agenda lotada dos advogados do escritório pode se mostrar um desafio para uma comunicação mais efetiva de levantamento do problema e também do processo de negócio. Para a sua sorte, o principal advogado do escritório que iniciou o contato com você está bastante engajado no projeto e se mostra disposto a participar de quantas interações com a equipe de desenvolvimento forem necessárias para a captura das necessidades da empresa quanto ao software. Ele deseja também que sejam entregues versões intermediárias do software final contendo funcionalidades prioritárias e estratégicas para o negócio; uma vez que ele não tem certeza de todas as funcionalidades que serão necessárias para compor o software no inícío do projeto, ele quer garantir que as mais importantes sejam implementadas primeiro. Do seu lado, você tem uma equipe reduzida de analistas, desenvolvedores e testadores, porém bem coesa e comunicativa, com a ressalva de nunca terem trabalhado com a construção de nenhum sistema para a área jurídica. Considerando o cenário acima, identifique que modelo de processo de desenvolvimento de software você escolheria para apoiar o desenvolvimento do software solicitado. Justifique sua escolha associando as características do cenário acima com as do modelo selecionado. . RESPOSTA De acordo com MENZES (2024) é uma estratégia das fábricas de software optar pelo outsourcing quando há clientes com requisitos vagos ou em constantes mudanças. Para casos assim, é recomendada a utilização de metodologias ágeis. Dada a complexidade do cenário apresentado, onde há a necessidade de compreensão detalhada do processo de negócio, uma colaboração intensiva com o cliente para captura de requisitos e a necessidade de entregas incrementais para atender às demandas em constante evolução, o modelo de processo de desenvolvimento de software mais adequado seria o Scrum. Scrum é um modelo ágil que se adapta bem a cenários em que há incertezas e mudanças frequentes nos requisitos do projeto. Várias características do cenário apresentado se encaixam bem com os princípios do Scrum: • Colaboração intensiva com o cliente: O envolvimento do principal advogado do escritório, disposto a participar de interações com a equipe de desenvolvimento, é fundamental para garantir que os requisitos sejam capturados de maneira eficaz. O Scrum promove uma comunicação contínua entre a equipe de desenvolvimento e o cliente, permitindo uma compreensão mais profunda das necessidades do cliente ao longo do tempo. • Entregas incrementais: O desejo do cliente de receber versões intermediárias do software contendo funcionalidades prioritárias e estratégicas é perfeitamente atendido pelo Scrum. Esse modelo de processo permite entregas frequentes e iterativas, possibilitando que o cliente valide o software em estágios iniciais e forneça feedback para orientar o desenvolvimento futuro. • Adaptação a mudanças: Como o cliente não tem certeza de todas as funcionalidades necessárias desde o início do projeto, é importante ter um processo que permita adaptação às mudanças nos requisitos. O Scrum é flexível o suficiente para lidar com mudanças de escopo durante o desenvolvimento, permitindo que a equipe ajuste suas prioridades e planos conforme necessário. • Equipe reduzida, porém coesa e comunicativa: O Scrum incentiva a colaboração e a autogestão da equipe, o que é especialmente importante em uma equipe reduzida. A comunicação eficaz é fundamental para o sucesso do Scrum, e uma equipe coesa e comunicativa estará bem posicionada para enfrentar os desafios do desenvolvimento do software. Portanto, o Scrum seria a escolha ideal para apoiar o desenvolvimento do software solicitado, dadas as características específicas do cenário apresentado. BIBLIOGRAFIA COHN, Mike. Desenvolvimento de software com Scrum. Porto Alegre: Grupo A, 2011. E-book. ISBN 9788577808199. Disponível em: https://integrada.minhabiblioteca.com.br/#/books/9788577808199/. Acesso em: 08 mar. 2024. COSTA, Adriana Bastos da; PEREIRA, Fernanda da Silva. Fundamentos de gestão de projetos: da teoria à prática - como gerenciar projetos de sucesso. 1. ed. Curitiba: Intersaberes, 2019. E-book. Disponível em: https://plataforma.bvirtual.com.br. Acesso em: 08 mar. 2024. MENEZES, I.F. Engenharia de Software I: Como produzir um software de qualidade elevada? São Paulo: FMU, 2024. SCRUM. Welcome to the Home of Scrum!. Disponível em: < https://www.scrum.org/>. Acesso em: 08 mar, 2024. https://www.scrum.org/