Há cerca de três meses, nosso principal desenvolvedor e designer da Web (mesma pessoa) deixou a empresa. Pastos mais verdes eram a razão de sua saída. Bom para eles, eu digo. Meu problema é que o departamento dele não tinha documentos. As coisas estão difíceis desde a esquerda, há muito conhecimento, tanto o conhecimento teórico que usamos para citar novos projetos quanto o conhecimento técnico / de implementação de nossos produtos existentes, que perdemos como resultado de sua partida. Minha função normal é como gerente de produtos (para os próprios produtos) e como analista de negócios para alguns de nossos trabalhos de consultoria baseados em projetos. Eu me ensinei a codificar no ano passado e em um esforço para continuar avançando, eu ' assumi a tarefa de configurar meu laptop como uma máquina de desenvolvimento, com a esperança de implementar algumas das solicitações de recursos mais fáceis e corrigir alguns dos erros simples que são enviados ao nosso sistema de bilhética. Mas ninguém sabe como pegar uma máquina Windows nova e configurá-la para funcionar perfeitamente com nossos aplicativos de produção.
Solicitei ao meu chefe, que ainda está em contato com o desenvolvedor que saiu, que peça para documentar e criar um processo para integrar um novo desenvolvedor, instalação de software, pacotes necessários, processo para implantar nos servidores de aplicativos de produção etc. isso existe e estou girando minhas rodas tentando fazer meu computador funcionar como uma máquina de desenvolvimento funcional. Mas ela parece não entender a necessidade de tal processo existir. Aparentemente, o novo desenvolvedor que substituiu o que saiu estava usando uma máquina pré-configurada para o nosso ambiente; portanto, mesmo o novo desenvolvedor não poderia configurar uma nova máquina se adicionássemos outro desenvolvedor.
Minha pergunta é de duas partes:
Estou errado ao presumir que exista um processo para integrar e configurar um novo computador para fazer parte do nosso ecossistema de desenvolvimento?
Estou sendo um bebê chorão e devo descobrir o processo e criar um documento sozinho?
fonte
Respostas:
Primeiro de tudo, é estranho que um desenvolvedor precise configurar o ambiente de trabalho. Essa tarefa geralmente é para administradores do sistema. Portanto, considerando que isso não é algo que você deva fazer, você tem o direito de esperar que outra pessoa faça isso por você.
Na maioria das empresas (se não todas), há um período de aviso prévio. Geralmente varia de uma semana a um mês. De qualquer forma, esse tempo é suficiente para a pessoa sair para ajudar a empresa _ fazer alguma documentação, adicionar comentários ao código, documentar a arquitetura etc. Receio que seja tarde demais para fazer isso agora, mas não se esqueça disso da próxima vez que alguém for embora.
Você está absolutamente certo em esperar que exista um processo para configurar um novo ambiente. De fato, se sua empresa crescer e você tiver mais desenvolvedores, você enfrentará o mesmo problema - isso pode ser um argumento pesado para convencer seu chefe. Você pode até usar o argumento para convencer a gerência a contratar um administrador de sistema para essas tarefas (presumo que você não tenha um desde que enfrenta o problema). Além de definir o ambiente de desenvolvimento, se você possui uma nova máquina, ela deve ser integrada à rede local, etc.
fonte
Não. Ter esses processos evitará os problemas que você já enfrentou. Em algumas organizações maiores, há uma imagem de disco padrão da aparência da máquina de um desenvolvedor. Quando um novo desenvolvedor é contratado, um computador disponível com as especificações de hardware corretas é limpo e reimaginado usando esta imagem de disco "desenvolvedor". Uma lista de verificação padrão (às vezes inclui a instalação de software de pós-imagem para certas ferramentas não incluídas na imagem) é seguida pelo pessoal técnico que faz isso para garantir que todas as máquinas do desenvolvedor iniciem da mesma maneira (os usuários podem ajustá-las e modificá-las depois de receberem). eles - por seu próprio risco!).
Da mesma forma, alguns aplicativos com configuração notoriamente complexa têm documentos explicando aos novos desenvolvedores como verificar o código, configurar o servidor e criar e implantar localmente o aplicativo. Um aplicativo ainda possui um script de configuração apenas para estações de trabalho para facilitar esse processo.
Você é, mas só um pouco. Uma coisa é dizer que tudo isso deveria ter sido documentado há muito tempo, e o desenvolvedor que saiu deveria ter feito uma transferência completa de conhecimento para seus dias de substituição (ou semanas, se possível) antes de partir. Parece que nada disso aconteceu, e agora está tudo no passado.
E agora? Duvido que o desenvolvedor que saiu será de grande ajuda. Eles já têm um novo emprego diário e quem sabe com o que estão ocupados em sua própria vida. Duvido que exista algum fundamento legal que seu gerente possa usar para forçá-los a ajudar. Seria bom se eles levassem algumas horas do seu tempo para responder a algumas perguntas, mas não conte com isso. Parece que você está tentando descobrir a maior parte de si mesmo. Isso dá a você a oportunidade de documentar completamente o processo adequado e acertá-lo. Aqueles que seguem você vão agradecer por isso! Boa sorte!
fonte
Para começar, você precisa sair do Visual SourceSafe. Eu acho que isso precisa ser dito. No mínimo, mude para o TFS. E há outras opções também.
Agora que está fora do caminho. Acho que esse é um caso de "se você deseja que as coisas sejam feitas corretamente ..." Seu objetivo final deve ser que um desenvolvedor possa ligar sua máquina recém-instalada, conectar-se à fonte, obter as mais recentes, pressionar f5 (ou o que você usar para o seu computador). executar atalho do aplicativo) e ter um aplicativo em funcionamento.
Uma opção é criar um ambiente de trabalho a partir do zero e usá-lo como uma imagem de linha de base do desenvolvedor. Quando um desenvolvedor entra em cena, tudo o que você precisa fazer é implantar essa imagem em sua máquina e ela deve funcionar.
Existem alguns livros sobre como mover seu ambiente para um estado mais ativo. Eu gosto de Entrega Contínua e Integração Contínua da série Fowler, mas existem outras opções por aí.
fonte
Quando iniciei meu trabalho atual, tínhamos um procedimento documentado para configurar um PC desenvolvedor.
Eu segui o procedimento sozinho, evitando com determinação a "ajuda" da equipe existente.
(O conhecimento precisa ser incorporado no documento, não o desenvolvedor que está há mais tempo.)
Marquei o procedimento com alterações de linha vermelha, onde estava errado ou incompleto, e uma semana depois tive duas coisas, um procedimento que funcionou e um PC de desenvolvimento em funcionamento.
Após uma falha no disco rígido, um ano depois, foram necessários dois dias para reconstruir.
Diga ao seu chefe: se o disco rígido falhar nesse PC, não haverá desenvolvimento acontecendo!
Eu decidi que 2 dias era um desperdício de dois dias ....
Agora usamos máquinas virtuais com imagens de disco para cada projeto de desenvolvimento.
A instalação é copiar a imagem da VM para o PC de destino e iniciá-la. Há um ícone chamado "runme" no qual você clica. Ele solicita seu nome de usuário e depois altera o nome de usuário usado para acessar o código-fonte. Ele também altera o campo de autor do documento em branco do IDE para o seu nome.
(Escrevi runme em cerca de 2 horas, somos desenvolvedores, programamos nossos problemas)
Os PCs de nossos desenvolvedores são máquinas padrão, com exceção de um servidor VM.
Estamos usando o VirtualBox, que não é caro.
O uso de máquinas virtuais torna a substituição de uma máquina um trabalho de 20 minutos . Essa tarefa seria mais rápida se tivéssemos gigabit ethernet para copiar a VM.
Discoteca completa: sou o líder da equipe em que trabalho e minha gerência me dá uma rédea livre.
fonte
Deve haver alguma documentação dizendo qual software é necessário para compilar e executar o aplicativo.
Também deve haver documentação descrevendo o que uma caixa de cliente requer para executar o aplicativo.
Eles não são da mesma lista.
Se sua empresa contratasse um novo desenvolvedor, quanto tempo seria esperado para eles começarem a codificar? Um dia? Uma semana? Sem saber qual software é necessário para compilar o código, esse pode ser um processo de tentativa e erro que pode demorar um pouco. Mas, deve ser apenas algo que precisa ser feito uma vez.
Minha pergunta é: o que o novo desenvolvedor está fazendo? Este deveria ser o trabalho dele, não o seu. Ele é o substituto do outro cara. Sim, é uma pena que ele tenha entrado em um ambiente sem documentação, mas deve ser sua tarefa documentar as coisas. Faça com que ele se sente e descubra qual é o ambiente de desenvolvimento e o documente. Faça com que ele descubra e documente o que é necessário para executar o aplicativo em uma caixa do cliente.
Quanto a entrar em contato com o desenvolvedor antigo, eu não faria isso. IMHO, se um desenvolvedor deixar uma empresa sem documentação ou transferência de conhecimento, ele espera ser chamado para fazer algum trabalho com uma taxa de consultoria. Não é profissional e não deve ser recompensado. Sim, pode levar algum tempo extra para descobrir por si mesmos, mas você / a equipe aprenderá alguma coisa no processo e a documentação produzida será atualizada e atualizada.
fonte