Processo de desenvolvimento de software

De PJe
Edição feita às 16h36min de 6 de setembro de 2013 por Renata.catao (disc | contribs)

(dif) ← Edição anterior | ver versão atual (dif) | Versão posterior → (dif)
Ir para: navegação, pesquisa

SCRUM é um framework ágil para desenvolvimento de produtos que foca em quatro princípios fundamentais:

  • Foco nos objetivos estratégicos dos envolvidos, buscando a entrega do que mais importante é considerado pelo cliente (comitê) e seus desdobramentos o quanto antes no ciclo de vida do projeto, maximizando o ganho estratégico do produto final.
  • Foco no desenvolvimento do produto, sendo a documentação então um mecanismo de suporte ao desenvolvimento e de registro do histórico da execução.
  • Estreita colaboração entre time e o comitê, sendo este participante de todas as fases do projeto, desde seu planejamento até seu encerramento. O comitê, ou seu representante, deve participar ativamente nas atividades do projeto, sendo ele o responsável pelas principais decisões gerenciais e técnicas que orientam o

desenvolvimento do produto.

  • Resposta dinâmina a mudanças, permitindo que o produto final incorpore naturalmente as mudanças que ocorrerem durante o ciclo de vida do projeto sem prejudicar o escopo estratégico da solução.

Os métodos SCRUM, por sua própria definição, já criam um ambiente colaborativo e de cooperação mútua, permitindo a efetiva parceria entre o comitê e a equipe do PJe na busca dos objetivos estratégicos refletidos na visão do produto. O time SCRUM é composto de três papéis, quais sejam Scrum Master, Product Owner e Time SCRUM. Esses papéis são claros e bem definidos dentro do framework e suas responsabilidades são discutidas mais adiante. Em termos técnicos, um time SCRUM é heterogêneo e multidisciplinar, contendo analistas, projetistas, desenvolvedores, arquitetos, testadores, entre outros, que juntos participam ativamente do planejamento e execução das atividades do projeto. O planejamento SCRUM não é feito por um gerente de projetos, mas sim pelo time todo, que trabalha no objetivo de cada iteração, chamada no SCRUM de Sprint.

Um Sprint possui as seguintes características:

  • São curtos e com duração fixa, idealmente entre 2 e 4 semanas;
  • Ao final de uma Sprint uma funcionalidade do sistema é entregue “rodando”;
  • Todas as disciplinas da engenharia de software (requisitos, projeto, construção, teste, etc.) ocorrem dentro da Sprint para cada funcionalidade a ser implementada;
  • O objetivo da Sprint deve estar alinhado com a visão estratégica do produto final, buscando-se sempre implementar primeiro aquilo que mais tem valor agregado para o comitê;
  • Ao final do Sprint o time inspeciona os resultados e adapta-se para os objetivos das próximas Sprints.

O framework SCRUM não invade as disciplinas da engenharia de software, ou seja, ele não especifica quais atividades e quais artefatos de desenvolvimento devem ser construídos pelo time. Isso é uma decisão do time do projeto. Assim, é plenamente possível num projeto SCRUM construir artefatos como diagramas de projeto, roteiros de testes, entre outros. Porém, cabe a ressalva de que a documentação deve ser vista como ferramental de suporte dentro do Sprint e não como seu objetivo, caso contrário, pode-se engendrar pelas práticas dos modelos tradicionais de desenvolvimento.

Como já citado, o time SCRUM participa ativamente do planejamento do projeto. A visão de planejamento de um projeto SCRUM possui vários níveis, o que permite um acompanhamento em tempo real do planejado X realizado, possibilitando ações corretivas em curto espaço de tempo para manter o projeto “em linha”.

Além das entregas dos Sprints, que devem ser testadas e aceitas pelo cliente, projetos de maior porte devem ser planejados na forma de Releases. Um release deve entregar uma funcionalidade, módulo ou subsistema que, sozinho, pode entrar em produção. Um release pode conter várias Sprints, cujos resultados, para os quais as condições de satisfação foram atingidas e aceitas pelo cliente, formam um subconjunto do produto que está pronto para produção.

Diferentemente de sprints, releases podem ter duração variável, contendo quantidades diferentes de sprints. A última, ou as últimas sprints de uma release podem ter foco em atividades de testes, como testes integrados, de aceitação e de pré-produção.

O final das sprints e releases é o momento onde o planejamento inicial é revisto e analisado, podendo o mesmo ser alterado para refletir as mudanças estratégicas do produto, identificadas no decorrer do projeto.

Ferramentas pessoais
Espaços nominais

Variantes
Ações
Navegação
Informações Gerais
Aplicativos PJe
Manuais
Suporte
Ferramentas