Latar Belakang
Tahun lalu, saya magang di kelompok penelitian fisika di sebuah universitas. Dalam grup ini, kami kebanyakan menggunakan LabVIEW untuk menulis program untuk mengontrol pengaturan kami, melakukan akuisisi data dan menganalisis data kami. Untuk dua tujuan pertama, itu berfungsi cukup baik, tetapi untuk analisis data, ini sangat menyakitkan. Selain itu, semua orang kebanyakan otodidak, jadi kode yang ditulis biasanya cukup berantakan (tidak heran jika setiap PhD dengan cepat memutuskan untuk menulis ulang semuanya dari awal). Kontrol versi tidak diketahui, dan tidak mungkin disiapkan karena peraturan perangkat lunak dan jaringan yang ketat dari departemen TI.
Sekarang, hal-hal yang benar-benar berjalan baik-baik saja, tetapi bagaimana orang-orang di bidang ilmu alam melakukan pengembangan perangkat lunak mereka?
Pertanyaan
Beberapa pertanyaan konkret:
- Bahasa / lingkungan apa yang telah Anda gunakan untuk mengembangkan perangkat lunak ilmiah, terutama analisis data? Perpustakaan apa? (misalnya, apa yang Anda gunakan untuk membuat plot?)
- Apakah ada pelatihan untuk orang-orang yang tidak memiliki latar belakang pemrograman yang signifikan?
- Apakah Anda memiliki sesuatu seperti kontrol versi, dan pelacakan bug?
- Bagaimana Anda mencoba menciptakan lingkungan yang layak untuk pemrograman, tanpa terlalu banyak menghalangi individu ilmuwan (terutama fisikawan adalah orang yang keras kepala!)
Ringkasan jawaban sejauh ini
Jawaban (atau interpretasi saya tentang mereka) sejauh ini: (2008-10-11)
- Bahasa / paket yang tampaknya paling banyak digunakan:
- Kontrol versi digunakan oleh hampir semua responden; pelacakan bug dan proses lainnya jauh lebih jarang.
- Kursus Pertukangan Perangkat Lunak adalah cara yang baik untuk mengajarkan teknik pemrograman dan pengembangan kepada ilmuwan.
- Bagaimana cara meningkatkan sesuatu?
- Jangan memaksa orang untuk mengikuti protokol yang ketat.
- Siapkan lingkungan Anda sendiri, dan tunjukkan manfaatnya kepada orang lain. Bantu mereka untuk mulai bekerja dengan kontrol versi, pelacakan bug, dll. Sendiri.
- Meninjau kode orang lain dapat membantu, tetapi ketahuilah bahwa tidak semua orang dapat menghargainya.