31 December 2015
Well, it's the last day of 2015 and that means round-ups, predictions, and resolutions. I don't normally participate, but this year I have two resolutions I'd like to share.
In 2016, I resolve to:
Finish more stuff. This sounds like "focus and work harder", but that's not a meaningful plan. When I release software, I intend to define what 'feature complete' means. The code doesn't have to be complete, but the idea should be fully formed. If I don't know what complete means, then I'm still in exploration mode and not ready to release. While exploring ideas I'll still share code, but I won't release it (public GitHub repositories are a red flag, Gists and blog posts are more appropriate).
Build communities, but not around individual software artefacts. Communities are essential to useful software development. Unfortunately, when communities congregate around an individual code base, the project can never be completed or retired. Finishing a project would kill it's community too. These zombie projects keep growing and growing. With social status tied to commits, the pressure to add features is significant. Much better then to build a community around shared interests and congregate around collections of software instead.
The inspiration for these resolutions came directly from two blog posts by Martin Sústrik (creator ZeroMQ, nanomsg, libmill and ribosome):
His blog contains plenty of other food for thought - I suggest you give it a read.
Happy new year, I'm looking forward to 2016 already :)