This series of articles (The Truisms) is aimed at imparting some of the things we find to hold true no matter the project one undertakes in the space carved out by our interests in Open Source and Free Software engineering. We will be posting them interspersed with other articles over time.

When we started the yakking blog, Lars, Richard and I decided that we wanted to build a resource to help newcomers to the world of open source. To help those who are interested in using Open Source and Free software to develop yet more free software. We started with a set of requirements we had for what we wanted to achieve and while those requirements have developed over time to include supporting those who simply want to use free software to achieve other ends (such as simply being productive in their otherwise unrelated jobs) we always know why we're yakking.

This is a critical part of any project (or indeed any activity you undertake at any time). Put simply, if you have no reason to do something, why bother to do it at all? Oftentimes we do things for which we think we have "no reason" only to discover, when we stop to think about it, that we do have a reason - no matter how spurious or facetious it might seem at first.

If we were slightly more formal, we might say that you should do nothing unless you have a well defined requirement for it and a well understood criterion on which to assess whether or not you have met the requirement. However in the world of writing code because it's fun, there need be no more complex a requirement than "I fancy doing it". For example, a few years ago I wrote a full implementation of regular expressions in pure Lua "for fun" because I wanted to better understand how deterministic finite automata can be used to parse text.

So, a little homework for you: Whatever you're doing over the next few days, take a moment to think about why you're doing it and how you'll know if you've achieved that goal.