3 ms·
There is actually a lot of pressure to use good software engineering techniques, but that pressure is overpowered by the need to produce and publish results. I
by cs2818 11y ago
There is actually a lot of pressure to use good software engineering techniques, but that pressure is overpowered by the need to produce and publish results.
I can't count the number of times an important demo, media coverage opportunity, or publication call has resulted in the complete destruction of a well designed codebase to provide some specific ability for an approaching deadline. We usually intend to rollback or refactor, but rarely can before the cycle repeats.
I think it makes a lot of us disappointed, ashamed, and very stressed; but it's rare we can justify the time required to develop with proper standards. I do my best to refactor the most important portions of my projects when I have free time, but admittedly that isn't very often.
- screature2 11y agoIs it just me or does this seems to be very analogous to technical debt generally? The incentive structure definitely seems to lean more towards individuals or small teams working in the short-term (e.g. (publishable results) > (maintainability, reusability, extensibility)). All of which sounds like what happens with hackathons, first drafts of most anything, and excel; stuff needs to get done, and prior to refactoring/rewriting/codifying it's all over the place.
- cs2818 11y agoYes, I'd agree. The most troubling part is that often our projects are multi-year grants, with each phase building on the prior, which truly merits the use of good software engineering techniques. However, as soon as the PI of the grant sees as much as a proof of concept piece of software, they want you to move to the next feature immediately. It places a high burden on the undergraduate and graduate students doing the actual development work.