Planejamento e Gerenciamento Iterativo de ... -...

46
Planejamento e Gerenciamento Iterativo de Projetos de Software Hermano Perrelli [email protected] Planejamento e Gerenciamento Iterativo 2 Objetivos desta parte • Discutir uma metodologia de desenvolvimento iterativa e incremental Apresentar atividades de planejamento de projetos de software na ótica de um processo iterativo e incremental • Elucidar dúvidas comuns relacionadas ao planejamento de projetos iterativos e incrementais

Transcript of Planejamento e Gerenciamento Iterativo de ... -...

Planejamento e Gerenciamento Iterativo de

Projetos de Software

Hermano [email protected]

Planejamento e Gerenciamento Iterativo

2

Objetivos desta parte• Discutir uma metodologia de

desenvolvimento iterativa e incremental• Apresentar atividades de planejamento de

projetos de software na ótica de um processo iterativo e incremental

• Elucidar dúvidas comuns relacionadas aoplanejamento de projetos iterativos e incrementais ��������

����� �������������

����� �����

Planejamento e Gerenciamento Iterativo

3

Agenda1. Introdução – Motivação e Conceitos

Básicos2. Considerando os Riscos3. Planejamento Iterativo – Planejando as

Fases e Iterações

Introdução

Motivação e Conceitos Básicos

Planejamento e Gerenciamento Iterativo

5

Objetivos deste módulo• Apresentar a motivação para

planejamento e gerenciamento de projetos• Apresentar conceitos básicos• Apresentar as características de uma

metodologia iterativa

Planejamento e Gerenciamento Iterativo

6

Preocupações do Gerente de TI• Melhorar a qualidade do desenvolvimento

de software• Principais riscos e incertezas no

desenvolvimento de sistemas

Planejamento e Gerenciamento Iterativo

7

O que faz um gerente de projetos?

• Aloca recursos• Define prioridades• Coordena as interações com clientes e usuários• Procura manter a equipe de projeto focada na

meta do projeto• Resolve conflitos• Gerencia riscos• Estabelece um conjunto de práticas para

assegurar a qualidade dos artefatos do projeto

Planejamento e Gerenciamento Iterativo

8

Qual é o objetivo do gerente de projetos?

���� �������������������������� ����������������� ��� �������

������������������

Planejamento e Gerenciamento Iterativo

9

Algumas estatísticas• 31% dos projetos são abortados• 53% dos projetos extrapolam o prazo em

mais de 50%• % de projetos que são finalizados dentro

do prazo e custo esperados

– em grandes empresas: 9%– em empresas medianas: 16%– em pequenas empresas: 28%

������������ �������������

Planejamento e Gerenciamento Iterativo

10

��� ����� �������� ����� ���������� ������������� ����

����������

� �� ���������� �!���

"����#��� ���������������$��%���

Conceitos Básicos

Planejamento e Gerenciamento Iterativo

12

Parkinson’s effect• O trabalho se expande de modo a

preencher todo o tempo disponível para executá-lo

������&������ ����&���������������� '�������������������� ���(�� ����������������������������������

Planejamento e Gerenciamento Iterativo

13

Modelos de ciclo de vida de software

• Conjunto de fases, atividades, marcos e artefatos que guiam o desenvolvimento, operação e manutenção de um sistema

• Não existem modelos certos ou errados, apenas adequados ou não a uma determinada situação

"������ ��������� ����� ��������� ����� ���

Planejamento e Gerenciamento Iterativo

14

Modelos de ciclo de vida de software

• Força bruta, code and fix, nike-way• Cascata• Espiral• Iterativo• …

Planejamento e Gerenciamento Iterativo

15

Modelo Cascata• Um dos mais antigos, e ainda um dos

mais usados!• Várias atividades executadas de forma

sistemática e seqüencial

�������������������

������� ���������

!���!���"#�

���$�"#� ��������

!����"#�

Planejamento e Gerenciamento Iterativo

16

Modelo Cascata• Fixa pontos específicos para a entrega de

artefatos• É simples e fácil de aplicar, facilitando o

planejamento• Na prática, existe uma interação entre as

atividades e cada atividade pode levar a modificações nas anteriores– na maioria dos casos existe interação e

superposição!

• Pressupõe que os requisitos ficarão estáveis• Atrasa a redução de riscos

Planejamento e Gerenciamento Iterativo

17

Desenvolvimento cascataatrasa a redução de riscos

Início daintegração

100%

Tempo

Pro

gres

so d

o pr

ojet

o(%

cod

ifica

do)

Deadlineoriginal

���������%�&�����������'�$�!�����(�)�����*��

Planejamento e Gerenciamento Iterativo

18

Modelo Iterativo• Aplicação do modelo cascata iterativamente• As iterações iniciais atacam os maiores riscos

���

�+�

!�

,-

!�

)����*+�,

���

�+�

!�

,-

!�

)����*+�-

���

�+�

!�

,-

!�

)����*+�.

/�0�1

Planejamento e Gerenciamento Iterativo

19

Desenvolvimento iterativoantecipa a redução de riscos

100%

Tempo

Pro

gres

so d

o pr

ojet

o(%

cod

ifica

do)

���������%�&�����������'�$�!�����(�)�����*��

Ciclo de vidatradicional

Ciclo de vidaiterativo

Planejamento e Gerenciamento Iterativo

20

Modelo Iterativo• Testes e integração são realizados desde o

início, de forma contínua• Riscos críticos são resolvidos antes que

grandes investimentos sejam realizados• Permite feedback dos usuários desde cedo• Pequenos objetivos, foco em curto-prazo• Progresso é medido de forma mais concreta• Implementações parciais podem ser

implantadas2����3������ ���� ���������������������� ���������������*+�����������

2����3������ ���� ���������������������� ���������������*+�����������

Planejamento e Gerenciamento Iterativo

21

Ator• Qualquer coisa que interage com o

sistema• Definem um papel particular• São sempre externos ao sistema• Exemplos:

– um usuário do sistema– outro sistema com o qual o sistema a

ser desenvolvido precisa se comunicar

.������

Planejamento e Gerenciamento Iterativo

22

Caso de uso

– Seqüência de ações que incorpora uma funcionalidade específica do sistema, fornecendo um resultado de valor para algum ator.

– Forma específica de uso do sistema através da execução de alguma de suas funcionalidades.

– Conjunto de cenários que capturam requisitosfuncionais do sistema

– Mostram apenas o que o sistema faz, e não como– Capturam o comportamento pretendido para um

sistema, sem a necessidade de especificar como esse comportamento será implementado

.����������/�����

Planejamento e Gerenciamento Iterativo

23

Um exemplo – casos de uso do Qualiti Internet Banking

Operadora do DOC

Operadora cartao de crédito

Realizar transferencia

Consultar cheques

Solici tar taloes de cheque

Desbloquear taloes de cheque

Efetuar Login

Alterar senha

Consultar saldo

Consultar extrato

Consultar Qualiti CardRealizar DOC

Efetuar pagamento do Qualiti Card

Cliente

Planejamento e Gerenciamento Iterativo

24

Cenários

• Significa um caminho através de um caso de uso.

• Uma instância de um caso de uso• Exemplo (Sacar dinheiro):

– Saque com sucesso– Tentativa de saque MAS senha incorreta– Tentativa de saque MAS saldo insuficiente

Planejamento e Gerenciamento Iterativo

25

Prioridade de casos de uso• Essencial para gerenciar os requisitos• Pode interferir no planejamento das

iterações• A prioridade pode ser:

– Essencial– Importante– Desejável ou Opcional

Uma Metodologia Iterativa e Incremental

Planejamento e Gerenciamento Iterativo

27

Apenas a linguagem não basta!

+

++

+Metodologia de

desenvolvimento

Modelos, padrões e guias

Linguagempadrão

Ferramentasde apoio

Equipestreinadas

Planejamento e Gerenciamento Iterativo

28

0�%��!�������%���"#�������!�%/�1�2����2������.�!�

0�%��!�������%���"#�������!�%/�1�2����2������.�!�

O que é uma metodologia?• Processo de desenvolvimento• Conjunto de métodos e práticas de

desenvolvimento (com orientações nas linguagens, paradigmas, tecnologias e ferramentas utilizadas)

Planejamento e Gerenciamento Iterativo

29

Benefícios de uma metodologia• Qualidade de software• Produtividade no desenvolvimento, operação e

manutenção de software• Permitir ao profissional controle sobre o

desenvolvimento dentro de custos, prazos e níveis de qualidade desejados

• Permitir ao profissional estimar custos e prazoscom maior precisão

• Mas… os benefícios não virão de imediato!

2���� � ������3��2���� � ������3��

Planejamento e Gerenciamento Iterativo

30

Características da metodologia• Inspirada no RUP (Rational Unified Process)

– Processo Unificado de desenvolvimento de software• Conjunto de atividades a serem realizadas para produzir ou

evoluir software– Baseado em boas práticas de desenvolvimento– Framework para processos

• Para usar o RUP é preciso instanciá-lo e definir padrões e guias específicos para a realidade de cada empresa/projeto

������� 4����5�6�������� 4����5�6�

Planejamento e Gerenciamento Iterativo

31

Características da metodologia• O desenvolvimento de sistemas

seguindo a metodologia é:– Iterativo e incremental– Guiado por casos de uso (use cases)– Baseado na arquitetura do sistema– Orientado a objetos

Planejamento e Gerenciamento Iterativo

32

Iterativo e incremental

���

�+�

!�

,-

!�

)����*+�,

���

�+�

!�

,-

!�

)����*+�-

���

�+�

!�

,-

!�

)����*+�.

/�0�1

Planejamento e Gerenciamento Iterativo

33

Iterativo e incremental• Em cada iteração:

– são identificados e especificados os casos de uso mais relevantes

– é feita a análise e projeto dos casos de uso, usando-se a arquitetura como guia

– são implementados componentes que realizam o que foi projetado

– verifica-se se os componentes satisfazem os casos de uso escolhidos

• A escolha dos casos de uso é baseada em uma análise dos riscos envolvidos no projeto

• Os casos de uso que apresentam os maiores riscos devem ser realizados primeiro, para resolver os riscos o quanto antes!

Planejamento e Gerenciamento Iterativo

34

Guiado por casos de uso (use cases)

• Casos de uso são usados para especificar requisitos

• Durante a análise, projeto e implementação os casos de uso são “realizados”

• Durante os testes, verifica-se se o sistema realiza o que está descrito no Modelo de Casos de Uso

• Casos de uso são usados no planejamento e acompanhamento das iteraçõesRequisitos Testes Implantação

Casos de uso são usados durante todo o processo

Análise e Projeto

Implemen-tação

Planejamento e Gerenciamento Iterativo

35

Baseado na arquitetura do sistema

• A arquitetura é prototipada e definida logo nas primeiras iterações

• O desenvolvimento consiste em complementar a arquitetura– A arquitetura guia o projeto e implementação das

diversas partes do sistema• A arquitetura serve para organizar o

desenvolvimento, estruturar a solução e identificar oportunidades de reuso

• Os casos de uso dizem o que deve ser feito e aarquitetura descreve como

Planejamento e Gerenciamento Iterativo

36

Orientada a objetos• Análise e Projeto em UML

– UML é uma linguagem usada para especificar, modelar e documentar os artefatos de um sistema

– É um padrão da OMG e têm se tornado o padrãoempresarial para modelagem OO

• Implementação em Java ou alguma outra linguagem de programação OO

Planejamento e Gerenciamento Iterativo

37

Conceitos chave da metodologia

• Fases e Iterações• Fluxos de Atividades• Atividades• Artefatos• Modelos• Guias e Padrões• Responsáveis (papéis e perfis, não

pessoas)

Planejamento e Gerenciamento Iterativo

38

.�����"#� ��7��"#� .������"#� -����"#����7������������������3�7���������8!������������

���!��������������

����������%�������������������3��

9����3��3�������������4��������������������������7���������

���������!7���������������

Fases e iterações

Planejamento e Gerenciamento Iterativo

39

Fases e iterações• O ciclo de vida de um sistema consiste de

quatro fases:

• As fases indicam a maturidade do sistema!

�����

4� ��*+� ���(���*+� 4� ����*+� /�� ��*+�

'��������������

����� ��&�������� ����*+� �������

Planejamento e Gerenciamento Iterativo

40

0���������� ������5������������������������

���"#�������!���

4� ��*+� ���(���*+� 4� ����*+� /�� ��*+�

���"#����������

���"#����������

���"#������3�

���"#������3�

���"#������3�

���"#���������"#�

���"#���������"#�

Fases e iterações

• Cada fase é dividida em iterações

Planejamento e Gerenciamento Iterativo

41

Fluxos de atividades• Agrupam atividades correlacionadas • Fluxos de atividades de suporte:

– Planejamento e gerenciamento– Gerência de configuração e mudanças

• Fluxos de atividades básicos:– Requisitos– Análise e projeto– Implementação– Testes– Distribuição

Planejamento e Gerenciamento Iterativo

42

Fases, iterações e fluxos de atividades

Concepção Elaboração Construção Transição

IteraçãoPreliminar

Iter.#1

Iter.#2

Iter.#i

Iter.#i+1

Iter.#i+2

Iter.#n

Iter.#n+1

Requisitos.......................................

Análise e Projeto............................

Implementação...............................Testes.............................................Implantação...................................

Planejamento e Gerenciamento.....

Fluxos de Processo

Fluxos de Suporte

Fases

Iterações

Gerência de Configuração e Mudanças

Planejamento e Gerenciamento Iterativo

43

Atividades• Unidade de trabalho• Composta de:

– Objetivos– Passos– Entradas e saídas– Responsável– Guias e padrões

Planejamento e Gerenciamento Iterativo

44

Artefatos• Resultantes das atividades• Possuem modelos para

– indicar como devem ser feitos– padronizar os formatos dos documentos

Planejamento e Gerenciamento Iterativo

45

Responsáveis

• Representam perfis ou papéis, nãopessoas

Gerente do projeto

Arquiteto

Analista

Programador

Testador

6 �

7�� ����

0���� �

0�����

8������

Planejamento e Gerenciamento Iterativo

46

Fluxos de atividadesPlanejamento e Gerenciamento

ContratanteAprovarProjeto

IniciarProjeto Atestar Conclusão

do Projeto

Gerente deProjeto

IdentificarRiscos

DesenvolverPlano de Projeto

DesenvolverPlano de Iteração

Executar Plano deIteração

AvaliarIteração

ReavaliarRiscos

FinalizarProjeto

Arquiteto

Priorizarcasosde uso

DesenvolverEstudo deViabilidade

2. Considerando os Riscos

Planejamento e Gerenciamento Iterativo

48

Objetivos desta parte• Introduzir conceitos básicos relacionados

ao gerenciamento de riscos• Discutir o levantamento, análise e

tratamento de riscos• Exercitar o planejamento de iterações de

acordo com os riscos do projeto

Planejamento e Gerenciamento Iterativo

49

“Não se preocupe; eu vou pensar emalgo…”, Indiana Jones

Planejamento e Gerenciamento Iterativo

50

Gerenciamento de riscos• Relaciona-se com a análise de aspectos

desconhecidos do projeto– são esses aspectos que podem fazer com

que o projeto fracasse!

• Risco– fator, elemento, acontecimento, qualquer

coisa que, se concretizada, pode interferir no sucesso do projeto

Planejamento e Gerenciamento Iterativo

51

Gerenciamento de riscos

����%��"#� ����%��"#�

�������

���!�� !��������������

���!�� !��������������

Planejamento e Gerenciamento Iterativo

52

Identificação dos riscos• Para levantar os riscos podemos usar:

– o conhecimento do negócio– estudo de viabilidade, documento de requisitos e

plano do projeto– brainstormings– checklists

• Os riscos podem ser classificados de acordocom sua natureza em:– riscos de projeto– riscos do negócio– riscos técnicos

Planejamento e Gerenciamento Iterativo

53

Riscos de projeto• Normalmente ameaçam o plano de projeto,

prejudicando o cronograma e/ou custo• Estão relacionados ao uso de recursos

– organizacionais• financiamento• ambiente de desenvolvimento• processo de desenvolvimento

– humanos• equipe• cliente/usuários

– tempo• cronograma• escopo

Planejamento e Gerenciamento Iterativo

54

Riscos do negócio• Normalmente ameaçam a distribuição ou

implantação do produto, prejudicando o retorno do investimento

• Muitos são riscos indiretos

Planejamento e Gerenciamento Iterativo

55

Riscos técnicos• Normalmente ameaçam a qualidade do

produto, prejudicando o tempo de conclusão do projeto

• São relacionados ao uso da tecnologianecessária para implementar o sistema

Planejamento e Gerenciamento Iterativo

56

Análise dos riscos• Encontrados os riscos, é preciso decidir o

que fazer com eles…• Para tanto, vamos considerar a magnitude

ou prioridade do risco e criar a lista dos “10 mais”

'$������:����77���� ;��!����

Planejamento e Gerenciamento Iterativo

57

Estratégias para tratar os riscos• Evitar

– reorganizar o projeto de modo que ele não sejaafetado pela concretização do risco

• Transferir– reorganizar o projeto de modo que outra

pessoa/instituição fique responsável pelo risco

• Aceitar– decidir conviver com o risco

Planejamento e Gerenciamento Iterativo

58

Aceitando riscos– Determinar um Plano de contingência (Plano

B)– Estabelecer ações para mitigar ou atenuar o

risco• Muitas vezes, resume-se a uma melhor

investigação de algum ponto específico. Porexemplo:

8����������������� ����� �� ����!����"#���!������3������ �#� ����������������������!��� � �������!

8����������������� ����� �� ����!����"#���!������3������ �#� ����������������������!��� � �������!

6*+����!���!�������!����"#� ��!������3������������������!��� �

6*+����!���!�������!����"#� ��!������3������������������!��� �

Planejamento e Gerenciamento Iterativo

59

Acompanhamento e controledos riscos

• Definir um responsável por cada risco ou pelogrupo de riscos do projeto– o “pessimista”

• Monitorar os indicadores– relatórios de status dos riscos

• Deixar o “caminho livre” para notícias ruins• Revisitar a lista de riscos periodicamente

– semanalmente– ao final de cada iteração

��$��<������������3� �����!��3�� ����=��>

��$��<������������3� �����!��3�� ����=��>

Os riscos no planejamentodas iterações

Planejamento e Gerenciamento Iterativo

61

Riscos e casos de uso

• A realização dos casos de uso é usadapara eliminar riscos

• Para facilitar a visualização do relacionamento entre casos de uso e riscos, pode-se usar uma matriz de riscos

Planejamento e Gerenciamento Iterativo

62

Matriz de Riscos

UC 3

�Risco Z

��Risco Y

�Risco X

UC 4UC 2UC 1

Planejamento e Gerenciamento Iterativo

63

Riscos e iterações

?�����������?�����������

�����!����������"@�������!����������"@��

�����"#���������������"#����������

3. Planejamento Iterativo

Planejando as Fases e Iterações

Planejamento e Gerenciamento Iterativo

65

Objetivos desta parte• Responder a perguntas comumente feitas durante o

planejamento de projetos iterativos– Como definir a quantidade e duração das iterações em cada

fase do projeto?– O quanto realizar de cada fluxo de atividades em cada

fase/iteração?• Apresentar padrões do ciclo de vida e estratégias para o

planejamento das atividades de projetos iterativos e incrementais

• Conhecer a estrutura de cronogramas iterativos e incrementais

• Discutir um exemplo de planejamento de projeto iterativoe incremental

Planejamento e Gerenciamento Iterativo

66

Como definir a quantidade e duração das iterações?

• Iterar é bom, mas acrescenta certo overhead!– planejamento– avaliação– sincronização de atividades

• A agilidade para iterar depende basicamente de:– tamanho da equipe– experiência com o processo

• A complexidade e conhecimento do produtotambém pesam– padrões de ciclo de vida

Planejamento e Gerenciamento Iterativo

67

Padrões de ciclo de vida• Ferramenta para auxiliar no planejamento

das fases• Dependem das características do projeto• Exemplos:

– Incremental– Entrega incremental– Evolucionário– Híbridos

Planejamento e Gerenciamento Iterativo

68

Para começar, não esqueça!

.�����"#�

��7��"#�

-����"#�

���������7����3��

.������"#�

����������

1����������A7��B�������C

�������A�������C

Planejamento e Gerenciamento Iterativo

69

Ciclo de vida incremental• O domínio do problema é conhecido,

familiar• Os riscos estão bem entendidos e

razoavelmente controlados• A equipe é experiente

C E B B B B T T

Planejamento e Gerenciamento Iterativo

70

Ciclo de vida evolucionário• O domínio do problema é novo ou

desconhecido• A equipe é inexperiente

C E E E E B T T

Planejamento e Gerenciamento Iterativo

71

Entrega incremental– O domínio do problema é conhecido, familiar– Os requisitos e a arquitetura podem ser

estabilizados bem cedo, durante o desenvolvimento (não existe muita novidadeno sistema)

– A equipe é experiente– É preciso liberar Releases incrementais do

produtoC E B T T T T T

Planejamento e Gerenciamento Iterativo

72

“Grande Projeto”– Um pequeno conjunto de funcionalidades vai

ser adicionado a um produto já estável– As novas funcionalidades são bem

conhecidas e entendidas– A equipe é experiente, tanto no domínio do

problema quanto no produto já existente

C E B T T

Planejamento e Gerenciamento Iterativo

73

Estratégias Híbridas– Na prática, poucos projetos seguem apenas uma

dessas estratégias de ciclo de vida– A regra geral é:

• para sistemas onde existe alto risco associado ao negóciodo desenvolvimento:

• para sistemas complexos ou onde não se tem domínio do problema:

• para sistemas onde se espera maior complexidade/esforçona produção de código:

• para sistemas onde é preciso entregar o produto em umasérie de releases incrementais:

D�%�� �.�����"#�

D�%�� �.������"#�

D�%�� ���7��"#�

D�%�� �-����"#�

Planejamento e Gerenciamento Iterativo

74

Quantidade de iterações– Projetos simples: 3/4 iterações [0/1, 1, 1, 1]– Projetos típicos: 6 iterações [1, 2, 2, 1]– Projetos grandes: 10 iterações [2, 3, 3, 2]

– Resumindo…

�� ��������� ����������.���,9������*:���

$��������������������������;���<������*:���

�� ��������� ����������.���,9������*:���

$��������������������������;���<������*:���

Planejamento e Gerenciamento Iterativo

75

Duração das iterações

• Normalmente variam de fase para fase, de acordo com as características do projeto– Iterações pequenas são típicas da Construção, com

pouca ou nenhuma atividade formal de análise e projeto

– Iterações grandes demandam marcos (milestones) intermediários

• O tamanho da equipe e sua experiência com o processo é um dos fatores determinantes

Planejamento e Gerenciamento Iterativo

76

Duração das iterações• Alguns dados da Rational:

1 ano1001.000.000

6 meses45500.000

1 mês1550.000

1 semana510.000

Duração de 1 iteraçãoEquipeLinhas de

código

Planejamento e Gerenciamento Iterativo

77

O quanto realizar de cada fluxo de atividades em cada fase/iteração?

• De maneira geral, em cada iteração um subconjunto do trabalho total é realizado– levantado/especificado– analisado e projetado– implementado– testado– preparado para a distribuição/distribuído

• Como escolher esse subconjunto?– conhecimento da equipe no domínio do problema e

arquitetura a ser adotada– necessidade de liberação de releases / deadline

restrito

Planejamento e Gerenciamento Iterativo

78

Estratégias para as iterações• Larga e superficial

– Todo o domínio do problema é analisado, massem muitos detalhes

– Casos de uso: todos sãodefinidos e a maioria é detalhada

– Arquitetura: definidaamplamente – todas as interfaces, serviços, etc.

– Muito poucaimplementação até a Construção, onde fica o maior número de iterações

• Estreita e profunda– Um pedacinho do domínio

é analisdo em detalhes– Os casos de uso

relacionados com estepedacinho são detalhados

– A arquitetura necessáriapara suportar essepedacinho é definida

– Esse pedacinho é implementado, testado e possivelmente implantado

#'(����#'(����

Planejamento e Gerenciamento Iterativo

79

Larga e superficial• Apropriada quando:

– o time é inexperiente no domínio do problemaou nas tecnologias que serão usadas

– a arquitetura é inédita, ou é um requisitochave para as funcionalidades do sistema

• Possíveis problemas:– analysis paralysis– falta de credibilidade e confiança da equipe– riscos técnicos não expostos devido a falta de

detalhes (visão apenas de alto nível)

Planejamento e Gerenciamento Iterativo

80

Estreita e profunda• Apropriada quando:

– precisa-se de resultados muito rápido (para obtersuporte, provar viabilidade ou eliminar certos riscos)

– os requisitos estão continuamente evoluindo– o deadline é obrigatório– existe alta reusabilidade

• Possíveis problemas:– dificuldades de integração

• desenvolvimento de software integrado “verticalmente”, masincompatível “horizontalmente”

– muito retrabalho devido a falta de uma visão geral do problema

Planejamento e Gerenciamento Iterativo

81

Estatégia híbrida• Na Concepção:

– larga e superficial para obter bom entendimento do escopo– estreita e profunda para verificar a viabilidade de alguma

tecnologia» construção de um protótipo

• Na Elaboração:– na maior parte do tempo, larga e superficial, para garantir que

a arquitetura cobre todas as necessidades– estreita e profunda em alguns pontos para atacar riscos

específicos• Na Construção:

– estreita e profunda, para implementar as funcionalidades do sistema, com alto grau de paralelismo e incrementalmente

• Na Transição:– completar o que falta, de acordo com o feedback do usuário e

bugs encontrados

Planejamento e Gerenciamento Iterativo

82

Cronogramas iterativos e incrementais

• Bem mais complexos que os tradicionaiscronogramas em cascata

• Normalmente organizados por fases e iterações

Planejamento e Gerenciamento Iterativo

83

Cronogramas iterativos e incrementais

• Concepção– Iteração 1

• atividade X• atividade Y• atividade Z

• Elaboração– Iteração 2– Iteração 3

• Construção– Iteração 4– Iteração 5– Iteração 6

• Transição– Iteração 7

• O cronograma não é feito todo de uma vez!

?�!7��B��������������4�������3�>

?�!7��B��������������4�������3�>

Planejamento e Gerenciamento Iterativo

84

Cronogramas iterativos e incrementais

– Concepção• Iteração 1

– atividade A– atividade B– atividade C

– Elaboração• Iteração 2

– atividade D– atividade B– atividade E

• Iteração 3– Construção

• Iteração 4• Iteração 5• Iteração 6

– Transição• Iteração 7

– Devido a natureza do processo, váriasatividades vão ficarrepetidas

�����3������#� ��!��!���!���!�

������������ ������������

�����3������#� ��!��!���!���!�

������������ ������������

Planejamento e Gerenciamento Iterativo

85

Características do projeto

• Prazo total: 16 semanas• Equipe de 5 pessoas, experiente no

domínio do problema• Equipe relativamente inexperiente no uso

da metodologia– Um dos objetivos do projeto é treinar os

desenvolvedores no uso da metodologia– Apoio de consultoria externa

• Estão previstos 2 releases do produto

Planejamento e Gerenciamento Iterativo

86

Planejamento do projeto• Concepção

– Iteração preliminar de 2 semanas, larga e superficial, para“iniciar o projeto”

• Elaboração– 1 iteração, de 5 semanas, para eliminar os principais riscos– Estratégia híbrida: larga e superficial para modelar a

arquitetura e estreita e profunda para eliminar o risco de algunscenários

• Construção– 2 iterações de 2 semanas cada, estreitas e profundas, para

produzir a versao beta do sistema• Transição

– 1 iteração de 2 semanas para finalizar a primeira versão do sistema, com parte das funcionalidades previstas

– 1 iteração de 3 semanas para incorporar as funcionalidadesrestantes e lançar a versão completa do QIB

Planejamento e Gerenciamento Iterativo

87

Conclusão – PlanejamentoIterativo

• Conheça os riscos• Planeje as fases

– duração e marcos (milestones)– quantidade de iterações

• Planeje a primeira iteração em detalhes– atividades, recursos, tempo, …

• Durante a execução da primeira iteração, planeje a segunda em detalhes

������� ����� ��=������� ����� ��=

Planejamento e Gerenciamento Iterativo

88

Outros tópicos interessantes…• Estimativa de esforço

– Técnicas – vantagens e dificuldades• Pontos de casos de uso• Wideband Delphi

• Organização da Equipe– Características de um time vitorioso– Alocação da equipe nas fases

• Sincronização de atividades

• Atividades, artefatos e responsabilidades no Fluxo de P&G

• Implementação de processos iterativos e incrementais

Planejamento e Gerenciamento Iterativo

89

Referências bibliográficas– The Unified Software Development Process. Ivar

Jacobson, Grady Booch e James Rumbaugh. Addison-Wesley, 1998.

– Software Project Management: A Unified Framework. Walker Royce. Addison-Wesley, 1998.

– Object-Oriented Project Management with UML. Murray Cantor. Wiley, 1998.

– Managing Risk: Methods for Software Systems Development. Elaine M. Hall. Addison-Wesley, 1998.

– Object Solutions: Managing the Object-OrientedProject (Addison-Wesley Object Technology Series). Grady Booch. Addison-Wesley, 1999.

Planejamento e Gerenciamento Iterativo

90

Outras referências

– COCOMO 2: sunset.usc.edu/research/cocomosuite. Center for Software Engineering. Última visita em 8 de outubro de 2001.

– Software Engineering Economics. Barry Boehm. Prentice-Hall, 1981.

– The Deadline: A Novel About Project Management. Tom DeMarco. Dorset House, 1997.

– Applying Use Cases: A Practical Guide. Geri Schneider, Jason P. Winters, Ivar Jacobson. Addison-Wesley, 1998.

– Rational web site: www.rational.com.

Planejamento e Gerenciamento Iterativo de

Projetos de Software

Hermano [email protected]