Projeto em Computação II
Período 2003.1
Prof. Jacques Sauvé
Aulas: segundas 16-18 e quintas 14-16, na sala de reuniões
do DSC.
Notas dos alunos
Objetivos da disciplina
As disciplinas de Projeto em Computação (I e II) têm como objetivos familiarizar
o aluno com o desenvolvimento de software relativamente grande que exija a utilização
de um processo de desenvolvimento. É também objetivo das disciplinas familiarizar
o aluno com técnicas de gerência de projetos de desenvolvimento. Busca-se uma
aproximação do desenvolvimento completo de um produto real de software, desde
sua concepção até sua implantação, ou alternativamente, busca-se uma aproximação
de atividades reais de desenvolvimento em que um produto existente sofre manutenção
e evolução.
Ementa da disciplina
Desenvolvimento de um projeto prático em computação sob orientação de um
professor. Definição do problema. Análise de requisitos. Estudo de viabilidade.
Análise do domínio do problema. Projeto arquitetural. Projeto de baixo nível.
Implementação. Testes. Cronograma de execução. Proposta de bibliografia. Produção de
relatórios de acompanhamento sobre o trabalho.
[O Professor da disciplina acrescenta ainda: definição do processo de
desenvolvimento, considerações de implantação, técnicas de acompanhamento de
projeto].
Participantes
Membros |
Título do Projeto e Home Page |
Professor Orientador |
Links |
Gerência |
Comentários do semestre passado |
Darlan Araújo dos Santos
Gladyston Agra França |
Sistema
de Cadastro de Desastres Naturais |
Professor Marx
Prestes |
User Stories
Plano de releases
Tabela de planejamento e de progresso
Big Chart |
Darlan: iterações 1, 3, 5, 7
Gladyston: iterações 2, 4, 6
|
O cliente encontra-se satisfeito com os resultados obtidos
até aqui.
Os alunos cumpriram bem as etapas de desenvolvimento, a menos de alguns
problemas tecnológicos que já estão sendo superados.
O processo XP1 foi seguido pelos alunos, porém acho que o feedback
do cliente podia ter acontecido numa frequência maior. Os alunos tiveram
uma liberdade muito grande nas decisões em certos momentos do desenvolvimento.
Na fase 2, quando a aplicação estará sendo colocada
em produção, creio que alguns problemas serão ainda
relatados. |
José
Sérgio Furtado
Rachel Chrystianne
Lopes Brasileiro
Rivaldo da Silva
Júnior
Ronycley Gonçalves
Agra |
Softgap
- Gestão e Acompanhamento de Projetos |
|
User Stories
Plano de releases
Tabela de planejamento e de progresso
Big Chart |
José Sérgio: iterações 1, 5
Rachel: iterações 2, 6
Rivaldo: iterações 3, 7
Ronicley: iteração 4
|
|
Lauro Ivo Beltrão Colaço
Costa
Nigini (não é aluno da disciplina) |
MyGrid |
|
User Stories
Plano de releases
Tabela de planejamento e de progresso
Big Chart |
Gerente em todas as iterações |
|
Bruno Irineu Ribeiro
Charlezon de Medeiros Silva
Wolney Cezar dos Reis Cabral |
|
|
User Stories
Plano de releases
Tabela de planejamento e de progresso
Big Chart |
Bruno: iterações 1, 4, 7
Charlezon: iterações 2, 5
Wolney: iterações 3, 6
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
O que faremos na primeira aula
- Explicar o modus operandi da disciplina
- Explicar quem é gerente e quando (em qual iteração)
- Explicar datas das iterações
- Explicar o que deve entrar na home page
- Explicar a forma de avaliação dos alunos
- Revisão do que cada time está fazendo, como andam as coisas,
quem é o cliente, quais foram as dificuldades, como remediar, ...
- Tirar dúvidas sobre XP1
- Falar do programa xp1pm
O que faremos em outras aulas
- Cada equipe que deve participar da aula deve fazer sua reunião de
acompanhamento, liderada pelo gerente de desenvolvimento
- Quando o planejamento estiver pronto, chamar o professor para discussão
rápida
- O professor avalia a home page do projeto onde constam os artefatos de acompanhamento
- O professor pode executar o sistema, rodar os testes de unidade
e de aceitação. Deve ser possível fazer isso em sala
de aula, pela rede.
- O professor dá uma nota ao gerente
- O professor dá uma nota à equipe
- Cada aluno se avalia em termos e esforço e capacidade de planejar
e cumprir o planejado para a última iteração
- Cada aluno avalia o gerente noi cumprimento de suas atribuições
- Cada gerente avalia os membros do time em termos e esforço e capacidade
de planejar para a última iteração
Modus Operandi da Disciplina
- O processo de desenvolvimento adotado é XP1.
Se você não quiser usar XP1, fale comigo. Quero ver seu processo.
- Cada pessoa do grupo será "gerente de desenvolvimento"
durante uma iteração. A ordem dos gerentes segue a ordem alfabética
dos nomes (completos) dos alunos, de forma circular.
- Há uma iteração a cada 2 semanas. Iterações
são de tempo fixo. O botão de escopo podem ser manipulado, mas
não o botão de tempo.
- A primeira iteração é de 1 semana e serve para levantar
os User Stories e fazer o plano de releases. Todas as demais iterações
são de 2 semanas.
- As reuniões de acompanhamento semanal de cada time devem ocorrer
durante as aulas da disciplina. Metade das equipes (a turma Yin) terá
reunião de acompanhamento durante a primeira aula da semana
e metade das equipes (a turma Yang) na segunda aula da semana. Iterações
iniciam e terminam nessas reuniões de acomanhamento (a cada 2 reuniões).
Ao planejar, cuidado com feriados!
- Datas de final de iteração dos times (Yin na primeira
aula da semana, Yang na segunda aula)
- 05/5: plano de releases
- 19/5: iteração 1
- 02/6: iteração 2
- 16/6: iteração 3
- 30/6: iteração 4
- 14/7: iteração 5
- 28/7: iteração 6
- 11/8: iteração 7
- O relatório final deve ser entregue dia 18/8, via e-mail. 5% de penalidade
por dia de atraso.
- O professor vai participar de todas as reuniões de acompanhamento.
- Antes de chegar à reunião de acompanhamento, o gerente deve
ter certeza que a home page da disciplina esteja atualizada.
A Home Page
A home page não tem que ser bonita mas tem que conter o que precisa
e ser fácil navegar. Eu preciso ver o seguinte:
- Título do Projeto
- Nomes e mail dos membros da equipe
- Nome e mail do professor orientador
- Nome e mail do cliente (se for outro que o professor orientador)
- Breve descrição do projeto, com ênfase no business case
- Um link para User Stories
- Um link para o Plano de releases
- Um link para a Tabela de planejamento e de progresso, incluindo
- Identificação da tarefa (a descrição das
Tarefas pode estar em outra tabela para manter os dados normalizados)
- Estimativa de tempo em horas
- Pessoa responsável pela realização da tarefa
- Número de horas já empregadas na tarefa
- Estimativa do percentual da tarefa já concluído
- Quem fez o Test Review
- Um link para o Big Chart
A Home Page tem que estar atualizada antes de cada reunião com
o Professor.
Forma de avaliação dos alunos
- A avaliação será como segue
Item |
Peso |
User Stories e Plano de release |
10% |
Nota do professor para o gerente, a cada iteração |
15% |
Nota do professor para a equipe sobre o progresso do trabalho, a cada
iteração |
15% |
Nota do aluno para si mesmo, sobre seu prõprio trabalho na última
iteração |
10% |
Nota do aluno para o gerente, a cada iteração |
10% |
Nota do gerente para o aluno, a cada iteração |
10% |
Nota dada pelo cliente à equipe sobre a satisfação
geral no progresso da equipe, depois da iteração 2, 4 e 7 |
20% |
Relatório final, versando sobre a utilização de XP1
(o que foi bem sucedido, o que não foi bem sucedido, como melhorar,
etc.) e sobre a disciplina Projeto 2 (como melhorar o modus operandi, como
melhorar a forma de avaliação, ...) |
10% |
Seu trabalho
- Estude bem o processo que você vai usar. Todo mundo tem que entender
o processo bem.
- Defina bem como o processo é gerenciado. No caso de XP1, a informação
está aqui.
- Desempenhar seu papel de gerente
- Desempenhar seu papel de desenvolvedor
- Defina alguns aspectos operacionais do processo:
- Como gerar o Big Chart
- Como/onde será feita a integração (em que máquina?
como evitar duas integrações simultâneas?)
- Planejar o semestre (o que será feito, milestones, qual o cronograma)
- Coloque isso imediatamente na home page pois examinaremos isso na segunda
semana de aula
- Se você não sabe como fazer isso, veja o planejamento
de release de XP1
- Do it!
- Faça as iterações
- No cumprimento de um milestone (um release), marquem uma demo comigo
- Não deixem de atualizar a home page a semanalmente com toda a
informação descrita acima
- No final do semestre, me entregar uma cópia completa (zipada) de
tudo que você fez, incluindo código, home page, documentos, artefatos,
relatório final.
O que se espera dos alunos
- Aceitar responsabilidades em quantidade aproximadamente igual entre os alunos
da equipe
- Manter a home page do projeto
- Participar de todas as reuniões de acompanhamento da equipe
- Participar de todas as reuniões de acompanhamento da disciplina
- Liderar a equipe de desenvolvimento quando for sua vez
- Participar da elaboração do relatório final
O que se espera do gerente
- Dedicar pelo menos 2 ou 3 horas por semana pensando na gerência do projeto,
mesmo que você tenha outras atribuições de programador
- As horas que você "perde" fazendo isso se compensam facilmente
pelo controle que você vai obter sobre o desenvolvimento
- Se não fizer isso, o projeto se torna frouxo e vai demorar mais tempo
para ser terminado
- Ter certeza que cada pessoa do time tenha tarefas alocadas
- Conversar com cada membro do time, pelo menos 1 vez por dia sobre o andamento
das tarefas. Bastam alguns minutos
- Manter o Big Chart e a tabela de acompanhamento atualizados
- Identificar problemas com o cumprimento dos milestones o mais rapidamente
possível e bolar planos de recuperação
- Liderar a reunião semanal de acompanhamento (1 hora, no máximo)
- Manter a home page do projeto atualizada
- Ver detalhes no processo XP1
Informação importante para o aluno
- Nesta disciplina, quero que você aprenda a usar e controlar o processo
- Quero ver progresso ocorrendo, não cessariamente muito software sendo
desenvolvido
- A produtividade (fazer muito) é menos importante do que fazer o que
está sendo feito de forma controlada
- Portanto: não prometa tanto e cumpra o prometido
- Claro que no mundo real, temos que ter agressividade ao elaborar cronogramas
- Nesta disciplina, podemos ter promessas mais simples de cumprir
- Porém, quero ver progresso toda semana, o que significa constância
no trabalho
O trabalho do professor da disciplina
- Dar aulas iniciais sobre gerência de desenvolvimento
- Aula sobre processo de desenvolvimento, acompanhamento, cronogramas,
riscos, etc.
- Fazer a avaliação contínua dos alunos
- Com exceção da avaliação do relatório
final, avalio olhando sua home page. e durante as reuniões em sala
de aula
- A home page não tem que ser bonita mas tem que conter o que precisa
e ser fácil navegar
O que se espera do professor da disciplina
- Ajudar os alunos na elaboração de um processo de desenvolvimento
- Ajudar nas reuniões de acompanhamento
- Disponibilizar pelo menos 6 horas por semana para que os alunos possam contactar
o professor
- Ajudar a disponibilizar laboratório para execução do projeto. A máquina
"diabinho" com Linux está disponível para desenvolvimento.
- Assegurar-se, periodicamente, que esteja havendo progresso no projeto
- Participar das reuniões de acompanhamento da disciplina
- Assistir as apresentações finais das equipes
- Preencher o formulário final de avaliação
O que se espera dos orientadores de projetos
Prezado orientador,
Tentei manter suas obrigações a um nível mínimo.
O mais importante é que você sirva de cliente (ou facilite o acesso
ao mesmo).
Se você discordar de suas atribuições, favor me contatar
imediatamente.
- Atribuições obrigatórias:
- Assegurar-se que o objetivo do projeto de desenvolvimento esteja claramente
definido
- Assumir a posição de cliente ou fazer com que um cliente seja claramente
identificado
- O cliente define a funcionalidade a ser implementada
- O cliente verifica o cumprimento da qualidade do resultado (funcionalidade,
defeitos, prazo)
- Facilitar o acesso ao cliente, se você não for o cliente
- Definir como será o acompanhamento dado à equipe por você
- Disponibilizar pelo menos 1 hora por semana para que os alunos possam
contatá-lo
- Cuidado! O processo XP1
pode exigir mais disponibilidade (embora talvez não exija mais
tempo)
- Assegurar-se, periodicamente, que esteja havendo progresso no projeto
(veja como fazer isso aqui)
- Assistir às apresentações finais das equipes
- Preencher o formulário final de avaliação,
algumas vezes durante a disciplina
- Atribuições opcionais
- Ajudar os alunos na elaboração de um processo de desenvolvimento (o
professor da disciplina poderá ajudar)
- Ajudar nas primeiras reuniões de acompanhamento até se certificar que
os alunos possam assumir a liderança (o professor da disciplina poderá
ajudar)
- Ajudar a disponibilizar laboratório para a execução do projeto (o professor
da disciplina poderá ajudar)
- Assegurar-se que os alunos dediquem tempo suficiente à disciplina
Links importantes
Acesso a laboratórios
Fale com seu professor orientador e/ou com o professor da disciplina.
Alerta final!
Tirem backup de tudo, frequentemente! Não venham chorar porque perderam
artefatos!! Se você usar anjinho como repositório CVS, o backup
é garantido!