fundo
No ano passado, fiz estágio em um grupo de pesquisa em física em uma universidade. Neste grupo, usamos principalmente o LabVIEW para escrever programas para controlar nossas configurações, fazer aquisição de dados e analisar nossos dados. Para os dois primeiros propósitos, isso funciona bem, mas para a análise de dados, é uma verdadeira dor. Além disso, todos eram autodidatas em sua maioria, então o código que era escrito era geralmente uma bagunça (não é de se admirar que todo PhD rapidamente decidisse reescrever tudo do zero). O controle de versão era desconhecido e impossível de configurar devido aos rígidos regulamentos de software e rede do departamento de TI.
Agora, as coisas realmente funcionaram surpreendentemente bem, mas como as pessoas nas ciências naturais fazem seu desenvolvimento de software?
Questões
Algumas questões concretas:
- Quais linguagens / ambientes você usou para desenvolver software científico, especialmente análise de dados? Quais bibliotecas? (por exemplo, o que você usa para plotar?)
- Houve algum treinamento para pessoas sem qualquer experiência significativa em programação?
- Você tinha algo como controle de versão e rastreamento de bugs?
- Como você tentaria criar um ambiente decente para a programação, sem atrapalhar os cientistas individualmente (especialmente os físicos são pessoas teimosas!)
Resumo das respostas até agora
As respostas (ou minha interpretação delas) até agora: (2008-10-11)
- Idiomas / pacotes que parecem ser os mais usados:
- O controle de versão é usado por quase todos os entrevistados; rastreamento de bugs e outros processos são muito menos comuns.
- O curso de Carpintaria de Software é uma boa maneira de ensinar técnicas de programação e desenvolvimento para cientistas.
- Como melhorar as coisas?
- Não force as pessoas a seguir protocolos rígidos.
- Configure você mesmo um ambiente e mostre os benefícios aos outros. Ajude-os a começar a trabalhar com controle de versão, rastreamento de bugs, etc. por conta própria.
- Rever o código de outras pessoas pode ajudar, mas esteja ciente de que nem todos podem apreciar isso.