Preparar o plano de entrega do código-fonte [fechado]

12

Nossa empresa está prestes a adquirir um código fonte de um grande produto.

O que deve ser levado em consideração quando a entrega começar, para garantir que tenhamos tudo e que possamos manter esse produto no futuro?

Ahmed Aswani
fonte
1
Se possível, solicite a aquisição para alguns dos engenheiros que trabalham no projeto. Isso ajudará no problema de continuidade de recursos.
31412 #
não temos sorte o suficiente. não podemos fazer isso, o máximo que podemos fazer é disponibilizar algum engenheiro por 3-4 semanas.
Ahmed Aswani
Eu encontrei uma resposta relacionada, acho que completa a maioria das respostas aqui em baixo.
Ahmed Aswani

Respostas:

8

Em primeiro lugar boa sorte.

Aqui estão algumas das coisas que você provavelmente deve solicitar / receber.

  • Lista de defeitos conhecidos.
  • Lista de registros de incidentes e problemas.
  • Detalhes sobre os dois últimos lançamentos como; quanto tempo eles levaram para implementar, houve um período de aumento de incidentes após o lançamento, etc.
  • Quem são os principais especialistas no assunto.
  • Quais são as horas de operação e suporte primário.
  • Há quanto tempo o produto existe e quão estável é a base de código.
  • Qual é o roteiro do produto.
  • Qual é a pilha de tecnologia.
  • Quais são os pontos de integração e quem suporta os sistemas integrados.
  • Existe algum componente de DR
  • Quem é responsável por chamar DR
  • Quais são os SLAs de aplicativos ou destinos de serviço.
  • Qual é o crescimento esperado do sistema de arquivos / banco de dados / filas de mensagens.
  • Quando os backups do sistema são executados, quem é responsável e qual é a estratégia de restauração.
  • Quem é responsável pelo gerenciamento da lista de pendências do produto.
  • Qual SLA do fornecedor e detalhes de contato estão em vigor.
  • Existem agendamentos em lote ou processos de execução longa.
  • O sistema é completamente transacional e como é gerenciada a simultaneidade.
  • Qual é o processo de gerenciamento de incidentes principais para o aplicativo.
  • O que, quando, quem e como as partes interessadas são notificadas sobre mudanças e interrupções.
  • Quais são os períodos / tempos de interrupção acordados.
  • Onde é mantido o código fonte.
  • Como o backup do código-fonte é restaurado e o log de alterações gerenciado.
  • Onde, o que e quem possui a arquitetura da solução.
  • Qual é o destino de implantação (DEV, ST, UAT, Pré-PROD, PROD, DR).
  • Quando as licenças de terceiros são renovadas.
  • Existe um gráfico RACI
  • Quantos usuários existem e onde eles estão localizados.
  • Quais são os problemas ou reclamações comuns de solução de problemas.
  • Quem é responsável por conceder acesso ao sistema.
  • Quando são realizados testes / auditorias de segurança.
  • Onde está o IC e o processo de criação automatizado.
  • Quem é responsável por administrar o controle de origem e criar o servidor.
  • Onde estão os guias de instalação.
  • Existe documentação para a infraestrutura e a rede de destino.
  • Quais são os tipos de gravidade e impacto de incidentes recentes.
  • Existem instruções de configuração da estação de trabalho do desenvolvedor.
    • Quais assessores e estruturas de desenvolvimento são usados ​​e licenciados para sua equipe.

É tudo o que consigo pensar no momento.

Kane
fonte
8
Defina "DR", "DEV, ST, UAT, Pré-PROD, PROD, DR" e "RACI". (. Ie, gráficos RACI são organizacional, não código relacionado em tudo) Note-se que alguns dos isso é irrelevante para o código-fonte
S.Lott
Eu gostaria de ter acesso ao repositório de código-fonte whoel e não apenas às versões atuais do código-fonte. Os comentários nisto geralmente mostram porque o código foi alterado de uma maneira específica. Isso é importante para a manutenção.
HLGEM
@HLGEM desculpe-me por minha declaração sobre as versões atuais do código fonte implicarem (pelo menos para mim) o código fonte completo para todos os componentes.
24412 Kane
@ S.Lott DR é usado para descrever "recuperação de desastre". Dev é um termo comum para o "Ambiente de Desenvolvimento", qualquer que seja o conteúdo do seu ambiente. ST é uma abreviação para o System Testing Environment. Discordo que o RACI é uma ferramenta organizacional, pois é usada para descrever quem é responsável, responsável, informado e consultado. Então, quando o código é confirmado, quem é responsável por ele? Quem é consultado como parte de uma revisão por pares? Quem é informado de que uma construção foi bem-sucedida / falhou? E assim por diante
Kane
@kame: Atualize a resposta com as definições. Por favor, não adicione mais comentários à resposta. Por favor, atualize a resposta.
24512 S.Lott
6

O que deve ser levado em consideração quando a entrega começar, para garantir que tenhamos tudo e que possamos manter esse produto no futuro?

As coisas que você deve ter certeza são:

  • você os vê compilar o código com sucesso
  • você os vê construindo testes de unidade e fazendo todos passarem
  • você os vê executar outros testes com êxito e todos passam (aceitação, integração etc.)
  • você obtém o banco de dados de questões em aberto (fácil de obter se usarem o bugzilla ou semelhante)
  • o produto é executado (instruções de instalação).

Todo o resto depende do atual mantenedor.

BЈовић
fonte
2
Eu sugeriria que eles fossem modificados para ter as palavras "Você deve vê-los ...", por exemplo, "Você deve vê-los criar o código" e "Você deve vê-los executar os testes de unidade", etc. As evidências são importantes aqui.
24512 S.Lott
@ S.Lott Se eles mostram ou escrevem em um documento, isso não importa. Ahmed Aswani e sua equipe vão manter o aplicativo e devem poder executar todos os passos acima por conta própria. Modifiquei um pouco a resposta, mas não tenho certeza se foi isso que você sugeriu.
24412
1
Uma afirmação de que o código é criado não é a mesma que ver o código ser criado. Esteve lá. Fiz isso. A documentação pode ser vaga, confusa ou incompleta. É o antigo princípio "Confie, mas verifique". Até você ver, não acredite.
24512 S.Lott
1
@ S.Lott Ok faz sentido. Agora que penso nisso, eu estava em situação semelhante antes, onde eles nos fizeram implementar algo em placas HW quebradas. Passamos bons 4 meses antes de descobrir o que está realmente errado.
24412
5

Você precisa garantir que a equipe entregue o código fornecerá suporte por um período de tempo. Faça um contrato assinado!

Mais tarde, você terá perguntas que não sabia que tinha que fazer com antecedência, então elas precisam "ficar por aqui" para explicar as coisas e não apenas fornecer o código, documentos e tudo o que eles têm no projeto.

Quando você tem uma entrega de projeto, perde uma coisa importante: a experiência original da equipe.

Às vezes, você também recebe algo que não esperava: a hostilidade deles.

A empresa está fazendo a transferência obtendo um bom acordo com a transferência? Se eles perderem negócios porque entregam o projeto a você, os desenvolvedores (orgulhosos) que criaram o código podem se ressentir do fato de que o "bebê" deles é dado. Você pode obter respostas como: "Está nos documentos que você recebeu" ... mesmo que não esteja.

É bom abordar aspectos técnicos, mas também leve em consideração o lado humano.

YMMV!

JohnDoDo
fonte
0

O código vem com um conjunto de testes? Todos os testes no conjunto de testes são aprovados? Quanta cobertura a suíte possui?

Eu recomendaria que, perdendo um conjunto de testes, você faça da construção do conjunto de testes e da estrutura relacionada sua primeira prioridade.

blueberryfields
fonte