2024-10-11
thank you and goodbye
Ward Cunningham’s definition1: it’s good essential to go into a little bit of debt if it supports learning and is repaid
TD as a motivator/support for an agile and iterative approach to software development (1992!)
Technical debt occurs when a design or construction approach is taken that’s expedient in the short term, but that creates a technical context that increases complexity and cost in the long term.
Steve McConnell (Code Complete)
The source of the TD matters.
Research software development requires cross-domain knowledge.
Research software development requires cross-domain knowledge.
the intentional acknowledgment of Technical Debt by developers through comments, commit messages, or documentation within the code.
Project | Scientific Domain | Contribs. | Project Type | Code Size (KLOC) | Age (Yrs) |
---|---|---|---|---|---|
Astropy | Astronomy | 453 | Python Library | 1,309 | 13 |
Athena | High Energy Physics | 100+ | Software | 5,208 | 19 |
Biopython | Molecular Biology | 331 | Python Library | 620 | 25 |
CESM | Climate Model | 134 | Software | 2,800 | 41 |
GROMACS | Molecular Dynamics | 85 | Software | 2,102 | 27 |
Moose | Physics | 221 | Framework | 848 | 16 |
Elmer | Mathematics | 45 | Software | 954 | 10 |
Firedrake | Mathematics | 96 | Software | 63 | 11 |
Root | High Energy Physics | 387 | Framework | 5,080 | 24 |
Accumulation of suboptimal scientific practices, assumptions, and inaccuracies within scientific software that potentially compromise the validity, accuracy, and reliability of scientific results.
We are going to share n_eff between the neutrinos equally. In detail, this is not correct, but it is a standard assumption because properly calculating it is (a) complicated (b) depends on the details of the massive neutrinos (e.g., their weak interactions, which could be unusual if one is considering sterile neutrinos).”
Astropy
We assume here that new ice arrives at the surface with the same temperature as the surface. TODO: Make sure this assumption is consistent with energy conservation..
CESM
Update the the instability calculation function and modify the neutral drag cofficient. We should follow more elegant approach like Louis et al (1982) or Bretherton and Park (2009) but for now we use very crude approach : just 1 for ri < 0, 0 for ri > 1, and linear ramping.
CESM
TODO(wjs, 2015-10-18) With the ‘qflx_snow_grnd_col(c) > 0.0_r8’ check in the following conditional, Leo van Kampenhout has found that, under some rare conditions, the snow pack does not get initialized when it should. However, if this check is removed, then under some different rare conditions, snow depth can grow infinitely. We clearly need a more robust check here, and/or some fixed logic elsewhere. But for now we’re going with the lesser of the two bugs - i.e., allowing the snow pack to not be initialized when it should under some conditions.
CESM
Results: f’’(0) never really seems to converge to more than about 4 digits? Not sure how much this really affects the solution we get for f itself
MOOSE
Indicator | Addressed % |
---|---|
New Scientific Findings | 54.92 |
Computational Accuracy | 53.57 |
Missing Edge Cases | 50.41 |
Translation Challenges | 44.74 |
Assumptions | 41.38 |
Thanks to my students Ahmed Awon, Vivienne Zeng, Swapnil Hingmire, and collaborators Shurui Zhou (Toronto), Rohith Pudari, and the SE4RSE slack channel
Neil Ernst, nernst@uvic.ca, @neilernst@mastodon.acm.org
Come find me at US-RSE next week at the Convention Center, or when I visit Sandia Friday Oct 18!
Always happy to chat and listen to interesting insights or things we may have missed!
Neil Ernst • TD in Research Software • Sandia National Lab • October 2024