Projeto em Computação II
Período 2004.2
Prof. Jacques Sauvé
Aulas: segunda-feira 16-18 e quinta-feira 14-16, sala RE-08
Notas dos alunos
Lista de discussão
Mail dos clientes: rangel@dsc.ufcg.edu.br, eloi@dsc.ufcg.edu.br,antao@dsc.ufcg.edu.br,rodrigor@rodrigor.com,claudiamelo@dee.ufcg.edu.br,
rkmenezes@uol.com.br,rclima@semarh.pb.gov.br,joseana@dsc.ufcg.edu.br,hmg@dsc.ufcg.edu.br
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 |
Cliente |
Gerência |
Comentários |
1 |
Cheyenne Ribeiro Guedes Isidro
Henrique do Nascimento Cunha
Renata de França Pontes |
WebQuest |
Eustáquio Rangel |
1,4,7: Cheyenne
2,5: Henrique
3,6: Renata |
Usando processo XPU |
2 |
Nigini Abilio
Randolph Oliveira
Sadi Giorgi |
SmartTopology |
Eloi Rocha |
1,4,7: Nigini
2,5: Randolph
3,6: Sadi |
|
3 |
Antonio Jaime Moreira de Almeida
Telefones: 93144727 - 3425932
Bruno de Brito Leite
Telefone: 3415052
Laisa Helena O. do Nascimento
Telefones: 88054044 - 3226057 |
Ourscorecard |
José Antão B. Moura
Telefone: 99711476 |
1,4,7: Jaime
2,5: Bruno
3,6: Laisa |
|
4 |
Amanda Albuquerque Diniz
Eliana de Souza Souto
Marcel de Andrade Sales
Rafaela Romaniuc |
EmpreendedorNet |
Robert K. Menezes |
1,5: Amanda
2,6: Eliana
3,7: Marcel
4: Rafaela |
|
5 |
Elkson Martins de Miranda
Luciano de Lima Logrado
Pablo Riccelly Araújo Fran... |
SAGA - Sistema de Apoio à Gerência de Atividades |
Ricardo da Cunha Correia Lima, representando o SEMARH - Secretaria
Extraordinária do Meio Ambiente, dos Recursos Hídricos e Minerais do Estado
da Paraíba.
(83) 218-4399
(83) 321-2836 (quintas à tarde)
(83) 9971-0720 |
1,4,7: Elkson
2,5: Luciano
3,6: Pablo |
|
6 |
Gizelle Felinto Barbosa
Márcio Roberto Pinto de Ar…
Petrônio Araújo de Medeiros |
SEADION
(sistema de educação a distancia on-line)
|
Claudia Melo
9985-9313 |
1,4,7: Gizelle
2,5: Márcio
3,6: Petrônio |
|
7 |
Hellen Luana de Medeiros
Jackson Azevedo de Lima
Matheus Bezerra Estrela Ro... |
SimArq |
Elmar e Joseana |
1,4,7: Hellen
2,5: Jackson
3,6: Matheus |
|
8 |
Helton Santa Cruz Souto
Otávio Rodrigues Ramos |
MGames |
Herman |
1,3,5,7: Helton
2,4,6: Otávio |
|
9 |
Victor Hugo Pinheiro França
(83 9109 – 6940) |
Balcom
(Ferramenta de Negócios) |
Rodrigo Rebouças |
iterações: 2, 4, 6 |
http://balcom.dsc.ufcg.edu.br
:8080/xplanner
login jacques/qw |
O que faremos na primeira aula
- Explicar o modus operandi da disciplina
- Explicar quem é gerente e quando (em qual iteração). Usar mesa-redonda na ordem alfabética de nome
- 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 na segunda aula
- Aula de Test-Driven Programming
O que faremos em outras aulas
- Só teremos aula nas segundas-feiras
- 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 no 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
O que faremos na última aula
- Avaliação da última iteração, normalmente
- Discussão do que o relatório final deve conter
- Ver o que deve ter no relatório final aqui
- Data de entrega
- O código fonte do projeto deve ser entregue (se não houver problema legal) para produção de um CD da disciplina. A entrega deve ser via mail para o professor da disciplina (indicando um link para download, se for grande).
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. Ao planejar, cuidado com feriados!
- Datas de final de iteração dos times
- 14/02: plano de releases
- 28/02: iteração 1
- 14/03: iteração 2
- 28/03: iteração 3
- 11/04: iteração 4
- 25/04: iteração 5
- 09/05: iteração 6
- 30/05: iteração 7
- O relatório final deve ser entregue até o dia 02/06, 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:
- Nomes e mail dos membros da equipe
- Nome e mail do cliente
- 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 o que segue. Podem usar XPlanner.
- 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á de acordo com a tabela abaixo.
- Lembre que é obrigatório assistir as aulas pois é aí que vamos discutir a situação de cada projeto e recolher as notas que os alunos dão uns aos outros. Não aceito receber notas por email. Tem que aparecer nas aulas.
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. Lembre que o Big Chart deve conter pelo menos o seguinte:
- Progresso do ponto de vista do cliente (numero de user stories
completas e testadas)
- Outra medida de progresso relacionado ao volume (linhas de código,
classes, etc.)
- Indicação de qualidade (número de testes de unidadenúmero de testes
de aceitação)
- 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
- Eu poderei pedir uma demo do seu software a qualquer momento
- 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 necessariamente 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 contatar 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
Mail a enviar para os clientes no início do semestre
Caros,
Você está recebendo este mail por ser "cliente" de alguma equipe da disciplina de Projeto 2.
Eu gostaria de lembrar aos clientes que:
- Todas as equipes adotaram processos de desenvolvimento semelhantes que fazem certas exigências ao cliente.
- Detalhes do papel do cliente podem ser obtidos aqui (http://jacques.dsc.ufcg.edu.br/projetos/common/xp1/xp1.html)
- O processo XP1 define um papel claro para o cliente. Você deve estar familiarizado com este papel, para maximizar as chances de sucesso de sua equipe. No link acima, leia o que você precisa assumir como responsabilidade. Se não conseguir assumi-la por algum motivo, avise sua equipe e a mim para que possamos providenciar uma alteração no processo de desenvolvimento.
- Em particular, o cliente deve elaborar "User Stories" e confeccionar "testes de aceitação".
Às vezes, temos clientes que não preparam bons testes de aceitação e depois reclamam que o software sendo desenvolvido não atende suas necessidades.
Claro que isso vai acontecer! Sem testes de aceitação bem pensados, você não receberá um bom software.
- Como cliente, você *não* precisa acompanhar o uso correto do processo de desenvolvimento por sua equipe. Como professor da disciplina, eu farei isso.
- Sua equipe tem reunião semanal de acompanhamento. Sua participação na reunião será bem-vinda.
Links importantes
Acesso a laboratórios
Fale com seu professor orientador e/ou com o professor da disciplina.
Alerta final!
Tirem backup de tudo, freqüentemente! Não venham chorar porque perderam artefatos!! Se você usar anjinho como repositório CVS, o backup é garantido!
The Planning Game
