Como podemos tornar as melhores práticas de desenvolvimento de software mais interessantes para pessoas sem experiência em software?

8

Onde trabalho, existem alguns desenvolvedores de software experientes com experiência em software, mas a maioria dos desenvolvedores são físicos ou químicos com excelente conhecimento de domínio, mas com experiência limitada no desenvolvimento de software de alta qualidade e manutenção. Para resolver isso, começamos a realizar palestras e workshops regulares.

Quais tópicos você acha que devemos discutir para ajudar a tornar essas pessoas desenvolvedores de software mais eficazes?

Em particular, estamos lutando para obter entusiasmo por essas conversações, já que muitos desenvolvedores não vêem o software como um assunto interessante. Como poderíamos tornar isso mais interessante para as pessoas sem experiência em software?

obrigado

Andy Lowry
fonte
deixe-me reformular isso - Como posso dizer aos motoristas de caminhão que participem da corrida de F1? (É algo parecido com isso)
Ayush Goyal
Para explicar melhor nossa situação, todos fazemos parte de um departamento de software em uma grande organização. A história da empresa é que, no passado, a ciência era mais importante que o software, e é por isso que temos muitos desenvolvedores de software com sólida formação científica. Mas a empresa mudou, somos uma empresa muito maior agora (passando de ~ 40 desenvolvedores de software para ~ 250 em 5 países) e a maioria dos desafios que temos são de software e não baseados em ciência.
Andy Lowry

Respostas:

4

Eu acho que vai ser difícil, então esteja preparado para uma luta - mas não impossível. No final do dia, a programação (especialmente a codificação não-cowboy-hack'n'slash) não será super emocionante para todos. Isto é especialmente verdade para pessoas que já trabalham em uma área que é intelectualmente desafiadora e recompensadora por si mesma.

Antes de tudo, divirta-se as palestras e as oficinas - comida de graça (certifique-se de que é uma boa comida!) E guloseimas semelhantes são um bom ponto de partida. Tente injetar um pouco de humor também e, pelo menos inicialmente, mantenha-os razoavelmente breves e o mais informal possível.

Em segundo lugar, verifique se as palestras e workshops são relevantes. Tente não torná-los muito abstratos (mesmo que os conceitos abordados sejam abstratos) e, se puder, garanta que eles possam experimentar o que foi coberto. Ainda melhor, verifique o que eles fizeram entre as sessões e forneça um feedback positivo. Se eles não são relevantes e não estão aplicando o que você discutiu, eles os visualizarão (corretamente) como uma perda de tempo.

Por fim, tente introduzir alguns padrões básicos de codificação, de preferência aqueles que não sejam muito intrusivos na forma como eles operam atualmente. Se você está no mundo .net, o Resharper é um bom começo, pois avisa sobre coisas como convenções de nomenclatura. Você pode levar isso adiante com o StyleCop (que pode ser integrado ao Resharper) - mas certifique-se de personalizar o conjunto de regras primeiro. Se você não está no .net, tenho certeza de que ferramentas semelhantes existirão em outros lugares. Não é muito, mas é um começo.

Não espere resultados instantâneos (exceto, talvez, por quaisquer padrões de codificação impostos automaticamente) - ouvi 6, 9 e 12 meses fazendo bandagens durante o tempo para introduzir as melhores práticas.

Até agora, eu o folheei até agora, mas parece haver bons conselhos relevantes e relevantes para você no próximo livro, Conduzindo a mudança técnica .

FinnNk
fonte
Excelente conselho, obrigado. Acabei de ler a versão beta mais recente da Driving Technical Change, que tem sido muito útil, e eu recomendo a leitura.
Andy Lowry
5

Se esses químicos e físicos não são desenvolvedores principalmente profissionais e não pretendem se tornar assim, eu sugeriria pensar de maneira diferente no problema.

Os desenvolvedores "reais" devem fornecer ambientes fáceis para eles se desenvolverem. Você deve fornecer orientação e deve fornecer uma revisão por pares de seu código com fortes incentivos para tornar o código bom o suficiente para passar em primeiro lugar.

Em outras palavras, não os trate como iguais, mas forneça tudo o que puder para que se destacem no que realmente fazem, que é a sua força.


fonte
2

Eu trabalho com engenheiros de rede muito inteligentes que não são desenvolvedores e não querem ser. Eu posso entender isso porque não quero ser um engenheiro de redes.

O que descobrimos que funciona bem é para o engenheiro e eu fazermos a programação em equipe. Estamos em sites separados, por isso, ligamos para o telefone, abrimos uma sessão de compartilhamento de tela geralmente com o screencomando e eliminamos o código.

Fizemos isso várias vezes e sentimos que funcionou muito bem. Estou entendendo como eles fazem melhor suas coisas, e o engenheiro está aprendendo como escrevemos código sustentável e testado.

o homem de lata
fonte
1

Qual o papel que eles têm na empresa? Se você precisar de desenvolvedores, deixe-os ir se não forem bons desenvolvedores e não estiverem interessados ​​em se tornar bons desenvolvedores. Se eles deveriam ser físicos e químicos, você pode realizar oficinas, mas não espere que eles mantenham um alto nível de interesse. Se eles devem ser os dois, aumente as expectativas e verifique se você as está pagando o suficiente para justificá-las a assumir o papel de desenvolvedor de software, mantendo ao mesmo tempo conhecimentos e habilidades complexas.

A menos que parte do papel definido de alguém seja um desenvolvedor, ele provavelmente nunca estará tão interessado no desenvolvimento de software de alta qualidade. Só porque alguém está criando scripts e hacks rápidos não significa necessariamente que realmente quer ser um desenvolvedor de software, é apenas um meio para atingir um fim, como um contador que descobre fórmulas complexas do Excel. Se você precisar de um software de alta qualidade e manutenção, os desenvolvedores de software devem criá-lo.

nlawalker
fonte
1

mostre a eles os benefícios para eles . caso contrário, por que eles deveriam se importar?

Steven A. Lowe
fonte