Implementando um Processo (UP1) ao Desenvolver um Projeto de Software

 

Primeiro Passo: Saber o que é essencial ao processo ...

 

1.     Saber identificar o que se deseja – VISÃO do projeto

 

Alguns artefatos podem nos ajudar nesta tarefa:

·        A correta forma de comunicação (um GLOSSÁRIO ajuda)

·        Qual problema espera-se resolver?

·        Quem são os envolvidos (clientes, usuários, desenvolvedores)?

·        Quais são as características do produto? (USE CASES)

·        Quais são os requisitos não funcionais?

·        Quais são as limitações do projeto?

 

Neste momento, o grupo será capaz de levantar a essência dos requisitos e da melhor conduta para gestão do projeto.

 

2.     Saber como dimensionar o projeto de software – ARQUITETURA pretendida

 

·        O projeto arquitetural do sistema pretendido define a organização ou estrutura dos componentes mais relevantes, a forma de interação entre eles (interface), e os subsistemas.

·        Em geral, ajuda questionar: quais são os principais pedaços do sistema? Como eles se comunicam? Existe algum esquema geral onde o sistema proposto se encaixe?

·        Tal arquitetura traz múltiplas visões: usuários finais, projetistas, gerentes, engenheiros, mantenedores, etc.

·        Inicia-se com uma arquitetura candidata, prosseguindo com refinamentos sucessivos.

3.     Saber como a gestão do projeto se dará

Alguns artefatos poderão ajudar nesta tarefa:

·        Avaliar o escopo e risco inerente ao projeto – LISTA DE RISCOS

·        Monitorar e controlar o projeto – algumas métricas para medição do progresso do projeto + Planos específicos para cada ITERAÇÃO

Aqui você tem a essência da gerência definida!

 

4.     Aplicar uma rotina de construção de código + teste contínua (ITERATIVA)

 

UP1 é iterativo, entende-se que a construção (build) e teste das versões do produto sejam realizados em prazos curtos para fins de rápida detecção de problemas e/ou inconsistências com as demandas do cliente.

 

5.     Saber como controlar mudanças – GESTÃO DE VERSÕES

 

Toda e qualquer mudança no código (também em outros artefatos) deve ser controlada e efetivamente gerenciada. Sugere-se que ferramentas sejam usadas (por exemplo, CVS).

 

Mudança é uma das certezas que se tem no desenvolvimento de software!

6.     Entregar o produto CERTO ao cliente

A meta do processo é gerar um produto CORRETO. Todas as atividades do processo deverão levar isto em conta! O produto final obtido é mais do que um software, envolve também:

·        um Guia do Usuário (help online, pelo menos)

·        um Guia para Instalação

·        uma definição sobre a versão liberada.

 

 

Síntese

 

Os aspectos essenciais do processo deverão nos oferecer uma conduta de como identificar áreas onde melhorias devem ser buscadas para alcance do produto desejado. Caso algum desses aspectos seja ignorado, alguns problemas poderão surgir:

 

·        Ausência de uma visão – você corre o risco de se perder no caminho, caindo em trilhas indesejáveis

·        Ausência de um plano das iterações – você terá dificuldades em acompanhar o progresso do projeto

·        Ausência de uma arquitetura – você terá dificuldades para gerencias aspectos de comunicação, sincronização e acesso aos dados. Terá também problemas com escala e desempenho

·        Ausência de uma lista de riscos – você poderá estar com foco em aspectos errados, guardando alguma bomba que poderá explodir a qualquer momento

·        Ausência de um produto (protótipo) – apenas acumular artefatos em papel não dará a certeza ao cliente de que você é capaz de construir um produto de sucesso

·        Ausência de métricas  e avaliações – não esconda a cabeça embaixo do travesseiro. É importante que a verdade seja conhecida

·        Ausência de um controle de versões – como você poderá controlar mudanças?

·        Nenhum suporte ao cliente – o que vai acontecer se o cliente não puder usar o seu produto?

 

Segundo Passo: Começar o seu projeto ...

Algumas dicas:

1.     Antes de começar o projeto: definir quem são as pessoas envolvidas com o processo, seus papéis, recursos que necessita, disponibilidade de tempo, necessidades de treinamento. Isto é crucial para o sucesso do projeto. Se os membros do projeto não sabem o que fazer, provavelmente não sairão do lugar!

2.     Fase de Planejamento: Nesta fase o foco é procurar entender quais são os requisitos e como o projeto deve ser gerenciado.

3.     Fase de Elaboração: Ao final desta fase, todo o processo e as ferramentas estarão OK. O mais crítico aqui é colocar em funcionamento um ambiente onde as mudanças estejam sendo controladas. Lembre-se que na fase que vem a seguir, vários membros do projeto estarão desenvolvendo coisas em paralelo!

4.     Fase de Construção: Nenhum novo processo ou ferramenta será introduzido. O foco é FAZER o produto. Tudo deve ser feito num ambiente de desenvolvimento estável e com pessoas motivadas.

5.     Fase de Transição: Nenhum novo processo ou ferramenta será introduzido. Nesta fase, além de repassar os resultados ao cliente, o foco é ganhar maturidade com o que foi realizado até então. A reunião dos envolvidos numa avaliação final é importante (post-mortem), sumarizando e empacotando as recomendações de forma que possam ser usadas em projetos futuros (ou mesmo em iterações tardias).