“Open Source” Everything
I’m continually astonished by the world of open source. As a community of programmers, hackers, engineers, scientists, and more, we manage to come together online and extend efforts to better the ecosystem in which we live. There are few other industries that come to mind with such a free and giving melody.
Giving is great, but open source is not just about contributing to the community. It can be an effective means of engineering code. As I build software, I like to keep an eye out for opportunities to break out pieces of the solution and put them either on GitHub or in my lib/ directory. By modularizing code so that it is actually open sourced or “open sourced” into my lib/ directory, this creates stronger APIs and more effective delineations.
While there is a concern of over-engineering in the spirit of decoupling code, the benefits of creating boundaries outweigh the maintenance cost of multiple libraries, in my opinion. For intellectual property reasons, not everything can be released to the public, but if all steps are taken right up to the point of release (i.e. documentation, configuration, etc), we can create more robust software.