A liderança não vê valor no processo padrão para configuração da máquina e orientação para novos desenvolvedores


9

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:

  1. Estou errado ao presumir que exista um processo para integrar e configurar um novo computador para fazer parte do nosso ecossistema de desenvolvimento?

  2. Estou sendo um bebê chorão e devo descobrir o processo e criar um documento sozinho?


11
Muito disso depende da tecnologia usada e de outros detalhes. Em algumas pilhas de tecnologia, você pode encontrar as dependências mais importantes que precisam ser instaladas em alguns arquivos de configuração; em outros casos, isso precisa ser documentado. Eu acho que o desenvolvedor que agora trabalha com o sistema deve saber melhor quais informações são absolutamente cruciais.
Thorsten Müller

2
E isso deve ser uma lição de vida. Preparar as coisas é metade do trabalho, garantir que tudo não desmorone quando você sair é a outra metade.
MrFox 16/10/12

Está começando a me frustrar, estou tentando ser proativo, mas há alguns problemas de configuração que estão faltando. (Publicarei erros específicos no estouro) A pilha é a seguinte: servidor MS SQL, Visual Studio 2008, Código de aplicativo Visual Source Safe, IIS 7, ASP.NET.
OpenCoderX

11
Visual Source Safe hein? Se for esse o caso, suspeito que o que o cara anterior fez não foi terrivelmente brilhante. Então, novamente, pelo menos, há controle de origem.
Wyatt Barnett

11
Eu sou um GIT que morre duro. Depois de obter uma versão do site em execução localmente, usarei o GIT para rastrear minhas alterações e só registro minha ramificação principal do GIT no VSS. Controle de origem dentro do controle de origem.
OpenCoderX

Respostas:


5

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.


Temos um administrador de sistema e sua posição é que eles configurem a máquina com acesso básico à rede de coisas, direitos do usuário (Active Directory) e instalem qualquer software. Por exemplo, tive que trabalhar com o administrador da rede para instalar o Visual Source Safe e o Visual Studio, mas após a instalação é onde os conhecimentos terminam. Nunca esteve em seu alcance fazer essas configurações.
OpenCoderX

11
Talvez eu seja muito mimado - nosso administrador de sistemas pode até executar consultas sql ao publicar o projeto (sem saber o sql))). Nesse caso, você definitivamente precisa ter a documentação))
superM

Em muitas empresas, especialmente as paranóicas ou incompetentemente gerenciadas, o "período de aviso prévio" é o tempo que leva para sair do escritório de RH ou do gerente para pedir demissão por ser escoltado sumariamente pela porta.
jfrankcarr

Acho que a liderança que partiu deu várias semanas de aviso prévio, mas não sei o que ele fez para nos preparar para sua partida. Eu acho que eles treinaram principalmente a substituição, que está bem, mas teve a máquina que eles usam configurada pela pessoa que saiu. Eu deveria ter enfiado o nariz na situação um pouco mais, mas até a programação da partida para mim era apenas um hobby. Fui levado de volta quando descobri que nosso novo desenvolvedor sabe tanto quanto eu sobre como configurar um novo sistema.
OpenCoderX

Isso será diferente para empresas diferentes, mas em todos os lugares em que trabalhei, o processo de configuração da máquina teve que ser documentado como um requisito de garantia.
JohnL:

5

Estou errado ao presumir que exista um processo para integrar e configurar um novo computador para fazer parte do nosso ecossistema de desenvolvimento?

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.

Estou sendo um bebê chorão e devo descobrir o processo e criar um documento sozinho?

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!


1

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í.


1

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.


Eu sempre me perguntei sobre fazer VMs em vez de configurar tudo no PC. Tenha uma VM agradável e intocada para o desenvolvimento e não se preocupe com o fato de a equipe de TI ter forçado uma atualização para danificar seu sistema de desenvolvimento.
Joel Rondeau

Uma vez eu estava depurando um programa C ++ interagindo com muitas DLLs do sistema quando uma atualização antivírus foi executada. Alterou algumas das DLLs. Acho que não ia reproduzir esse teste novamente.
Tim Williscroft

0

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.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.