Escolar Documentos
Profissional Documentos
Cultura Documentos
Introdução
O maior objectivo da gestão de projectos de desenvolvimento de software é poder minimizar
custos de desenvolvimento de software assim como o seu tempo de desenvolvimento, mas sem
desconsiderar a garantia de qualidade de software.
Gerir um projecto de desenvolvimento de software consiste na organização do pessoal disponível
para o desenvolvimento tomando em consideração os custos, os recursos, o processo e o produto
a ser desenvolvido.
A maior parte dos projetistas já realiza uma estimativa grosseira no processo anterior a
planificação.
É importante que seja feito um estudo inicial do projecto o que é chamado de antiprojecto; no
documento produzido nesse estudo virá, basicamente o objectivo do projecto, objectivo do
produto, restrições, previsão de duração e outros.
É com base nessas informações que o cliente decidirá se o projecto será iniciado e o trabalho
deixa de ser um estudo, mas sim um projecto.
A probabilidade de que o custo seja surrealístico é grande.
Para poder estabelecer uma estimativa que se aproxime do valor real de desenvolvimento
precisamos de dois elementos importantes: o produto que será desenvolvido e os recursos
necessários.
Produto
A primeira coisa a se fazer é definir o escopo do projecto, que será possível através do
levantamento de requisitos e de seguida, o produto deve ser decomposto em uma abordagem
“dividir para reinar”.
Inicialmente o sistema é decomposto em subsistemas, por sua vez decompostos em módulos, os
módulos em funções e assim sucessivamente.
Desta decomposição é obtida a Estrutura Analítica do Projecto em inglês Work Breakdown
Structure (WBS).
WBS é uma estrutura arborescente que representa o ciclo de vida de um projecto.
Diagrama de Gantt.
Recursos necessários
Para o caso dos recursos, os mais difíceis de gerir são os humanos. Em um processo de software,
haverá muitas pessoas envolvidas, executando diferentes papéis tais como: Gestor de projecto,
gestor de qualidade, clientes, usuários e outros.
O número de papéis e suas denominações pode variar dependendo da organização e até do
projecto.
As pessoas trabalhando em um projecto são organizadas em equipas, assim, o conceito de equipa
pode ser visto como um conjunto de pessoas exercendo diferentes tarefas, mas objectivando uma
meta comum.
Esta não é só uma característica do desenvolvimento de software apenas, mas da organização de
pessoas em qualquer actividade.
Então, a definição de equipa dada é válida para uma ampla variedade de situações, tal como uma
equipa de futebol.
Para uma boa formação de equipas devem ser considerados aspectos fundamentais para a
definição de papéis, tais como:
Liderança;
Organização;
Coordenação; entre outros
Além disso, há outros factores que afectam a formação de equipas como:
Relacionamento interpessoais;
Tipo de projecto; e
Criatividade
Tipos de equipas
No que diz respeito a formação de equipas, podemos identificar três tipos de equipas como sendo
os mais comuns:
1. Democrática descentralizada:
Neste tipo de equipas, n indivíduos são alocados a m tarefas diferentes, formando equipas
informais de desenvolvimento com um responsável de cada equipa, sendo que a
coordenação entre as equipas fica a cargo do gestor do projecto.
2. Controlada descentralizada:
Neste caso, n indivíduos são organizados em k equipas, cada equipa sendo alocada a uma
ou mais tarefas; a organização de cada equipa é específica a ela mesma, a coordenação
ficando a cargo do gestor do projecto; e
3. Controlada centralizada:
Neste tipo de equipa, n indivíduos são alocados a m diferentes tarefas com pequeno grau
de interação, sendo que a coordenação da equipa fica a cargo do gestor do projecto.
Por fim, na formação de equipas deve-se levar em consideração o tamanho da equipa pois,
quanto maior for o número de membros da equipa, maior é a quantidade de caminhos de
comunicação, o que pode ser um problema uma vez que o número de pessoas que devem se
comunicar pode afectar a qualidade do produto resultante.
Estimativas
As estimativas servem para dar uma imagem do trabalho a ser realizado, os recursos necessários,
a duração do projecto e por fim os custos do mesmo.
A pesar de as estimativas serem um pouco de arte e ciência, elas não devem ser conduzidas de
forma desordenada, porque elas é que ditarão o funcionamento das restantes actividades do
projecto.
Para alcançar boas estimativas de prazo, esforço e custos existem algumas técnicas.
Estimativas de tamanho:
Entre as formas de se medir o tamanho de um software, a mais simples, directa e altamente
utilizada é a contagem das linhas de código dos programas fontes.
Existem vários estudos que demonstram a alta correlação entre esta métrica e o tempo para
desenvolver um sistema. Entretanto, o uso dessa métrica apresenta algumas desvantagens:
a) Verifica-se que ela é fortemente ligada a linguagem de programação utilizada no
desenvolvimento;
b) Pode ser difícil estimar essa grandeza no início do desenvolvimento, sobretudo quando
não há dados históricos relacionados com a linguagem de programação utilizada no
projecto.
A título de exemplo segue a tabela representando o número de linhas de código para cada ponto
de função de acordo com a linguagem de programação utilizada para o desenvolvimento:
LOC’s/PF 162 66 63 40
Estimativas de esforço:
Para a realização de estimativas de tempo e custos é fundamental estimar antes o esforço
necessário para completar o projecto ou cada uma das suas actividades.
Estimativas de esforço podem ser obtidas directamente pelo julgamento de um especialista,
tipicamente usando técnicas de decomposição ou a partir de dados de tamanho ou ainda a partir
de dados históricos.
Quando estimativas de tamanho são usados como base, deve-se considerar um factor de
produtividade, indicando quanto em unidade de esforço é necessário para completar um projecto
ou módulo descrito em unidades de tamanho.
Quando uma organização não tem ainda dados suficientes para definir seus próprios factores de
produtividade, é aconselhável que se utilize modelos algorítmicos ou empíricos.
Existem vários modelos que derivam estimativas de esforço a partir de dados de LOC’s (Lines
Of Code) ou PF’s (Pontos de Função). De maneira geral, todos têm a seguinte estrutura: