Prévia do material em texto
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: Levando em conta o cenário citado acima, visto que o cliente deseja receber versões intermediárias do produto final, a melhor opção é o modelo espiral. Como não se sabe de início todas as funcionalidades que serão necessárias no software o modelo espiral atende aos requisitos do cliente. Por ter uma dinâmica de interações em ciclos favorece fazer versões do projeto. Ajudando na gestão de riscos e ficando mais eficaz o gerenciamento do projeto. Visto que no modelo espiral o sistema é formado por divisões, ou seja, por módulos funcionais ele é o mais indicado nesse cenário. Projetando dessa maneira o cliente poderá fazer uso de partes do software antes de finalizar o projeto final, conforme determinado na regra de negócio. Na primeira fase desse modelo coletamos todas as informações necessárias para entender qual a necessidade do cliente. O advogado mais engajado expressou a vontade de receber versões intermediárias do software final. Seu desejo é que as funcionalidades mais importantes para o negócio estejam no início do projeto. Destacou também a necessidade de elaborar documentos que precisam dar entrada em diferentes tribunais., bem como gerenciar prazos de processos judiciais aos cuidados do escritório. Partindo para o planejamento é preciso fazer um cronograma. Como a equipe é pequena e tem pouco conhecimento da área jurídica, com um bom planejamento é possível dividir o projeto em partes pequenas tornando todo o processo mais eficaz. Para a modelagem é importante seguir bem de perto a regra de negócio. O objetivo final é trazer economia ao cliente, valor gasto com impressão. Assim é importante nessa fase entregar o que o cliente acha mais prioritário, entendendo o que será entregue nessa primeira fase. A etapa da construção inclui o código, a construção da tela visando interação com o usuário, e testes de qualidade para ter certeza que o software atende as necessidades do cliente. Finalizando há a implantação. É realizado a transição da homologação para a produção. Geralmente de maneira versionada. A boa comunicação entre cliente e analista permite a produção das próximas versões desse projeto, até sua conclusão.