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
Soluções para a tarefa
O caso do texto do enunciado da questão ilustra bem a situação em que um engenheiro de software necessita ter conhecimento além do que estudou para poder entregar um bom produto para seu cliente.
Nesse sentido, temos que o pensar além daquilo que esta´sendo posto é de fundamental importância quando está sendo feito um produto.
A área jurídica é bastante complexa e envolve diferentes etapas que necessitam se feitas de forma cautelosa.
Algo que ajudaria seria exatamente conhecendo como se o trâmite básico de um processo na justiça.
espero ter ajudado!
Resposta:
Extreme Programming (XP)
Explicação:
A Programação eXtrema (eXtreme Programming), ou simplesmente XP, é uma metodologia aplicável em pequenas e médias equipes. Normalmente, a XP é adotada em um ambiente de requisitos vagos, de difícil definição e constante mudanças. Neste ambiente, a utilização de metodologias ágeis ganha força, permitindo ajustes ao longo do desenvolvimento e possibilitando pequenas versões que serão imediatamente incorporadas e disponibilizadas para os usuários.
Os requisitos, neste tipo de programação, são expressos como cenários (que recebem o nome de histórias do usuário), que são implementados diretamente como uma série de tarefas, uma linha de produção (SOMMERVILLE, 2011, p. 58). Os programadores podem trabalhar em pares e desenvolver testes para cada tarefa, antes da escrita do código. Os testes são implementados, logo que um novo recurso é integrado à versão final disponível para os usuários. Sommerville (2011, p. 59), destaca como valores e princípios da XP:
equipe de desenvolvimento e cliente devem estabelecer uma boa comunicação;
desenvolvimento por iteração, focando a simplicidade;
tendo requisitos tão vagos, é fundamental uma cultura de feedbacks constantes em relação ao desenvolvimento e satisfação do cliente;
desenvolvimentos incrementais, baseados nas necessidades do dia-a-dia;
receptividade a mudanças, sabendo que é sinônimo da prestação de serviço.
A metodologia XP se baseia em conceitos que devem ser observados em sua adoção pela equipe de desenvolvimento. Na lista a seguir, de acordo com Teles (2004), vemos alguns deles.
Planejamento: desenvolvimento feito por semana, chamado de iterações. No início da semana (reunião de planejamento) são identificadas as prioridades das funcionalidades, junto ao cliente. Neste momento também são feitas as estimativas, pelos desenvolvedores, do tempo gasto para cada tarefa. O cliente tem a liberdade de alterar a ordem de prioridade das tarefas a qualquer momento. Ao final da tarefa, o cliente recebe a funcionalidade para aplicar o teste de aceitação e validação, se está conforme o requisito levantado.
Pequenas versões: sempre que é feito um conjunto de funcionalidades é liberada uma nova versão do sistema. A tendência da metodologia ágil é a liberação de versões de forma mais rápida, assim que um conjunto mínimo de tarefas foram integradas.
Metáfora: entender a realidade do cliente e utilizar os termos de comunicação do negócio é importante para a sintonia entre as partes, evitando que a equipe técnica utilize conceitos e palavras da área.
Projeto simples: o XP deve ser simples. O projeto deve ser elaborado para durar apenas uma semana. Deve fazer justamente o que foi solicitado. Nos sprints seguintes, as funcionalidades serão melhoradas e novos recursos serão incluídos.
Time coeso: a equipe de desenvolvimento e o cliente devem ter uma comunicação frequente.
Testes de aceitação: teste feito pelo cliente avaliando se está conforme solicitação.
Ritmo sustentável: o ritmo de trabalho normal em um projeto bem planejado, costuma ser de 40 horas/semana, 8 horas/dia, evitando horas extras. Se o projeto necessitar de horas extras por mais de duas semanas, é porque tem um problema mais grave que precisa ser corrigido.
Reuniões em pé: reuniões literalmente em pé, rápidas e com duração de, no máximo, 10 minutos.
Posse coletiva: o código pode ser alterado por qualquer outro desenvolvedor, mesmo não sendo o criador.
Programação em pares: dois desenvolvedores trabalham em um único computador.
Padrões de codificação: o padrão de codificação deve ser único na equipe.
Desenvolvimento orientado a testes: o primeiro passo é a elaboração do teste unitário. Depois é criado o código compatível para que o teste funcione, abordagem contrária do que diz a Engenharia de Software tradicional.
Refatoração: processo de melhoria contínua do código da funcionalidade.
Integração contínua: sempre que uma funcionalidade é criada ou alterada, uma nova versão é imediatamente incorporada e disponibilizada para o usuário.
Cliente no desenvolvimento (on-site): cliente precisa estar presente e disponível em tempo integral para que os desenvolvedores possam solucionar suas dúvidas, evitando, assim, problemas no entendimento e desempenho na produção.
Padrões de código: padrões existem e são seguidos pelos desenvolvedores, facilitando a manutenção do código por qualquer membro da equipe.
Ambiente de trabalho aberto: sala ampla, ao invés de cubículos.
Apenas regras: time tem regras a serem seguidas, mas elas podem ser alteradas.
A metodologia XP é uma das mais importantes dentro do mundo ágil e, por isso, é importante conhecê-la. Mas há outras, então vamos estudar novas abordagens ágeis a seguir.