Lessons Learned in September and October 2015

Posted by Steven

This article is a short overview of what I learned in September and October 2015.

  1. Recently, I had an idea how to improve the legacy project I'm currently working on. It's a "typical" brownfield with a lot of spaghetti code and cyclic dependencies. This is a problem because there's active development going on both by fixing defects and adding new features. This gets harder and harder because the codebase is getting messier with each change. I don't want to fix the dependencies by rewriting everything. So, I only refactor the small parts I'm working on in the context of bugfixing or adding a new requirement. My goal is to make sure the repaired dependencies are surviving as long as possible, so I need some kind of alarm that goes off if someone is doing nasty stuff to my dependencies. One solution to do this is using Degraph in JUnit tests. Its JUnit test API allows writing tests that fail if a given dependency is broken. Sadly, Degraph assumes a codebase with no cyclic dependencies when being used in JUnit tests. Because I want to refactor only parts of the given codebase, I cannot use Degraph. Jens promised to work on that feature.
  2. The experience described above is one of many that has to do with legacy code. In the last weeks, I read a lot of articles, heard a lot of talks and talked with fellow developers about dealing with legacy code. Maybe managing brownfields is a huge career possibility. Being a "legacy code expert" with a lot of experience in reading bad and messed-up code, having a nice toolchain to understand brownfields quickly (like structure101, Degraph, maybe a few graphical visualization tools such as Codecity) is a nice niche. I don't know if the ability to deal with one brownfield is portable to another broken codebase. If that is the case, this could be a golden career path.
  3. The majority of things I learned in the last two months happened at Java Forum Nord 2015, a regional conference that took place in Hannover, Germany. I visited very interesting talks on that great conference. I plan on writing a short article about every talk I visited. Here are the links:

(Photo: adrian825, http://www.istockphoto.com/photo/monthly-management-reports-36658768)