I am a big fan of open source, but not in the way it is supposed to be. I often take but rarely give.
In 2005 I worked for a company called Decisionsoft in Oxford. This company contained many smart people and I learnt two major principles that I have used in my career ever since:
- Reuse before create – If someone else has created a solution to a problem then chances are they will have invested far more time thinking about the problem than you have. Don't waste your time reinventing a car if you want to get from A to B.
- Test early, test often – Don't want to discover that your product is broken a week before release? Unit testing and continuous integration testing will save you late nights at the office.
Open source has given me countless libraries and soft ware that I use all day every day, for free… but I have not been a good citizen of the open source community. Sometimes I submit bug reports, on occasion I will find the root of the problem and suggest an approach for a fix, but patches are pretty much non-existent. I feel bad.
So now I have decided to try and change my ways, starting with a small contribution that will be useful to those who are trying to unit test CDI applications. If I concentrate then it will be ready in a week or two.
Many thanks to my current employer (Carbon Hero Ltd) for supporting this project.