J-Fall 2023: Identifying bad design in codebases, objectively… – Ryan Susana
Maintainability is the largest driver of IT costs. Poorly written, brittle code can be a barrier to getting work done. I have seen badly designed (if designed at all) code demotivate even the noblest of development teams. The upsetting part about maintainability is that it’s hard to quantify… Or is it? And if you can’t quantify something, try convincing a product manager to spend more resources on improving maintainability. When I ask developers “can you point me to the ‘bad’ code”, I usually get a lot of fingers pointing to very few places. Developers inherently know what codebases (or parts of codebases) are simply poorly written. This observation put me on a quest: Can I objectively find the poorly designed parts of a codebase without actually having worked on it? The answer is a yes, with pretty good accuracy. The secret sauce is: package metrics and the interpretation of graphs. In this talk, I will go over some famous (or maybe infamous) Java codebases to find objectively bad design, and show how you can do so too.