Projeto congelado - o que devo deixar para as pessoas depois de mim?

14

Portanto, o projeto em que estou trabalhando agora será congelado indefinidamente. É possível que, se e quando o projeto descongelar novamente, ele não seja atribuído a mim ou a ninguém da equipe atual. Na verdade, herdamos o projeto depois que ele havia sido congelado antes, mas não havia nada deixado pela equipe anterior para nos ajudar a entender até as necessidades básicas do projeto; portanto, perdemos muito tempo conhecendo bem o projeto. Minha pergunta é o que você acha que devemos fazer para ajudar as pessoas depois de nós a entender melhor as necessidades do projeto, o que fizemos, por que o fizemos, etc. Estou aberto a outras idéias de por que devemos sair algumas faixas para as outras que também trabalharão neste projeto.

Alguns passos que já tomamos:

  • documentação técnica (não cheia, mas pelo menos há alguma);
  • histórico do sistema de controle de origem;
  • estimativas sobre quais partes do projeto precisam ser aprimoradas e por que pensamos assim;
  • monte de testes de unidade.
  • emitir rastreador com todos os tickets que fizemos ( EDIT )

O que você acha do que já preparamos e o que mais podemos fazer?

nyxz
fonte
2
considerar um fácil de recuperar a lista de bilhetes em issue tracker relacionados ao projeto
mosquito
1
O maior número de respostas "Por quê?" Foi respondido no README.TXT com as fontes do projeto quanto possível.
@gnat obrigado pela idéia. Isso me lembrou que eu esqueci de mencionar. Usamos o rastreador de problemas com todos os tickets. Vou adicioná-lo à lista.
Nyxz 28/08/12
1
Estou derramando uma única lágrima de solidariedade pela sua base de código abandonada. zdnet.com/blog/projectfailures/…
Ben DeMott

Respostas:

9

Mais algumas coisas a considerar

  • A estrutura de diretórios do projeto é sensata? Você revisou os comentários do código? O log de confirmação está de alguma forma apresentável?
  • Visão geral do objetivo geral (em vez de técnico, que você iniciou), Leitura recomendada no projeto, histórico do projeto (seu ciclo de desenvolvimento, gerentes de projeto anteriores, lista de funcionários, requisitos / especificação de recursos)
  • Diagramas UML, diagramas de classes, diagramas de fluxo de trabalho!
  • Os motivos pelos quais o projeto foi congelado são sempre bons.
  • Ambiente de desenvolvimento, IDEs que foram usados, ferramentas de construção, são abordadas nos documentos técnicos, certo?

Apenas pensei em algumas das coisas que gostaria de ver em um projeto que herdei recentemente. O que você já forneceu é muito mais do que eu recebi. Você receberá pontos importantes de karma por ajudar a próxima equipe :)

lwm
fonte
8

As coisas que eu gostaria de ter ao escolher um projeto que outra pessoa colocou são:

Crie instruções, incluindo as últimas versões de trabalho conhecidas de todas as ferramentas na cadeia de ferramentas. Compiladores, IDEs, etc. mudam ao longo do tempo, e é muito mais fácil trabalhar com os desenvolvedores anteriores me deixarem instruções sobre como começar a funcionar.

Execute instruções do ambiente - o que precisa estar em vigor para executar essa coisa? Uma menção de quais versões é novamente útil. Recentemente, peguei algo que exigia que um determinado conjunto de arquivos estivesse em um determinado lugar e tive que interrogar os outros desenvolvedores para descobrir isso. Não é grande coisa, já que o outro desenvolvedor estava disponível, mas se ele não estivesse, seria problemático.

Alguma garantia de que o código comprometido com o repositório realmente efetue o checkout e a compilação. Certa vez, peguei um projeto em que os desenvolvedores anteriores (felizmente ainda estão por aí) haviam feito coisas realmente estranhas com os Makefiles, de modo que não era possível criar o projeto a partir de um checkout limpo. Escusado será dizer que primeiro tive que corrigir isso antes que eu pudesse realmente fazer qualquer trabalho. Se os desenvolvedores anteriores não estivessem disponíveis, poderia levar muito mais tempo para superar esse obstáculo.

Uma declaração geral da intenção do projeto. Para que serve este software? Tão curto quanto razoável, mas algum tipo de visão geral pode ser realmente útil.

Michael Kohne
fonte
+1 para a cadeia de ferramentas completa. Toda a documentação do mundo não ajudará se você não puder construir e testar o software. Quando possível, gosto de incluir as imagens de instalação de todas as ferramentas (embora hoje em dia eu provavelmente opte por uma imagem de VM de algum tipo). Nada pior do que descobrir o processo de criação depende de um plug-in de terceiros de uma empresa que não existe mais!
TMN
@TMN - e é por isso que eu me esquivo de coisas como plugins IDE comerciais e assim por diante. Não confio em que poderei reproduzir meu ambiente mais tarde. E, depois de trabalhar em um software com mais de 20 anos, NUNCA suponho que algo desapareça.
Michael Kohne
4

Um ScreenCast

Quando saí do meu último emprego, fiz screencasts inéditos que, pelo que ouvi, foram muito úteis para integrar novas pessoas. Levei minha equipe para uma sala, montei um microfone condensador e expliquei a eles tudo o que sabia sobre o projeto enquanto gravava o áudio e a tela. Então, deixo que me façam perguntas sobre isso. Conseguimos gravar muito mais informações do que conseguiríamos se eu me sentasse e tentasse digitar o mais rápido possível durante todo o dia.

Ryan Hayes
fonte
+1 Isso é muito simples, mas faz muito sentido.
Lwm 29/08/2012
2

Se você tiver conhecimento das informações, adicione Requisitos comerciais.

  1. O que o cliente queria?
  2. Como as mudanças facilitaram isso?
  3. Quais foram ou são alguns dos desafios para atender às necessidades dos clientes?
  4. Quais necessidades não foram atendidas e por quê?
Menefee
fonte
1

Uma imagem de máquina virtual (ou seja, vm-ware) de um sistema de desenvolvimento independente pode ser bastante valiosa.

No ano passado, fui solicitado a corrigir algum código vb3. Foi bastante difícil recriar um sistema em execução com vb3, windows95 e muitos controladores ole instalados. Depois de uma semana eu desisti :-(

[Atualização] Alguém já experimentou converter imagens antigas de máquinas virtuais para que elas possam ser reproduzidas em um player de máquina virtual mais recente?

Você também deve considerar que talvez não seja mais possível executar uma imagem muito antiga em um sistema operacional moderno de hardware / convidado.

k3b
fonte
Considere abrir uma nova pergunta sobre a atualização de máquinas virtuais.
@ Thorbjørn Ravn Andersen. Você está certo. Eu reformulei a última parte da minha resposta.
K3b