I see what you're describing every time I take over a project. 'Software engineers' get a bad rap for over-engineering code. Because of this, I often take over a lot of code from scientists and academics. And, I'm often responsible to turn nifty research projects into marketable products. I work in R&D for a large science services company. Any scientist worth his salt should support following good practices because it will always lead to better science. Posts like the OP help scientists who write bad code defend poor practices. My point is that following "best practices" may be overkill, but taking a thoughtful approach to the design of the software can vastly improve your productivity in the long run. The holy grail is for it to be easy enough for the faculty to use, but that will probably take a dedicated tutorial. It's easy enough to use that just by following some examples, the grad students have been able to do implement studies in a couple days that took weeks in the old framework. The rewritten framework is only ~6k lines of code to replicate the exact same functionality. It was so complicated that that postdoc was essentially the only one who could make changes and add features. It was ~30k lines of code in 2 files (one header, one source file), with pretty much every bad coding practice you can image. I recently undertook a complete rewrite of our group's analysis software that was written by our previous postdoc. Many advisors don't place much value in having their grad students take such classes, though even a short language-specific introduction class would vastly improve their students' productivity. Most scientists have no formal training in computer science or coding. I am a scientist, and I have seen a lot of terrible code.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |