17 July 2017

Keeping up with the Joneses

Over the past two years of development we've evolved a rather extensive code base with dozens of independent libraries using dozens of tools, modules, and plugins. It is pretty impressive and constantly evolving and getting better. 

One thing I have observed though is that we struggle to keep things updated. We have template repositories we can use to kick start projects. What we seem to fail to do is keep those templates up to date. That is, we come up with an innovation in one repository and fail to move it back into the template. I'm seeing the same thing with our more generic code as well. 

I'm not complaining, its a lot of code in a lot of places and it can be difficult to keep everything up to date. That said, everyone (my current team and the rest of the world) needs to remain diligent about these kinds of updates. 

Not keeping these things up-to-date causes at least two issues. The first and most obvious one is that the benefits of the innovation don't propagate to others if they aren't shared. The second, more subtle one, is that they cause confusion. You find your self asking, why has this project done X when the template implies Y, X seems better than Y, so is the template stale? or is there a problem with X? Which one should I use in my project Z?

So, keeping up with the Joneses becomes pretty important as your systems grow.