The Codebase of a National Lab I Worked At

10 points by MiraWelner


ahelwer

Either I have Stockholm syndrome or this is not really too bad. The Java codebase I work on is 25 years old and also has large areas without test coverage (smaller, recently!), was only updated from Java 8 to 11 last year, and had portions generated with a JavaCC version from the 90s that could no longer be found anywhere. Tens of thousands of IDE warnings are not a big deal. At a certain point once all the original developers leave you start to be concerned about minimizing diffs, to preserve the ability to bisect and find what changes introduced a bug - thus large changes such as reformatting or fixing IDE warnings become untenable. This is a sort of local maxima of development efficiency which can really only be escaped by investing in writing truly staggering quantities of unit tests, so that newly-discovered bugs can be analyzed by writing another test instead of bisecting through changes. And we are doing that, but it just takes a while.

Me writing all that was just an indicator of getting old, though. I remember coming out of college and hating warnings. They are simple and easy to fix without understanding the codebase, which seems overwhelming by comparison. Fixing all -Wall compiler warnings in a large C++ project was my first task upon joining Azure out of undergrad. Some day all the code you write will, unchanged, become riddled with IDE warnings as language capabilities shift over time. And a new grad will ask how you can tolerate it.