I'm a big fan of open source because I hate reinventing the wheel. Open source software enables developers to get straight to the business of creating new and better technology solutions for all of us. They want to build a new social media application? All the building blocks are out there already and they can start designing and implementing their app immediately.
So it's very frustrating to watch company after company reinvent the wheel when it comes to managing open source software. That's why OpenLogic exists: to help companies manage open source software. (It's also why I work at OpenLogic!) That's why FOSSBazaar now exists: to help companies share best practices around open source software. So I thought I'd kick it off with 5 things every company should have.
- An open source champion. Somebody whose job it is to make sure the company is using open source software to their best advantage. Use open source, don't reinvent the wheel. Do make sure you use it correctly and mitigate the business risks. This person is the focal point, the go-to guy, the "can I use this?", "do I want to?" guy. (Can also be a gal - there's several of us who have done this.)
- A strategy. The whole company should know why it's in the company's best interests to use open source software. Using open source to save money is different than using it to build community. It can do both.
- Policy. (Comes after strategy.) It should be clear to everyone in the company when they can use open source, when they shouldn't, how to get approval if necessary, how to check the license, can they work on open source software in their free time, etc.
- Review board. I've yet to meet any company that says anybody can use any open source they want to without any review. At the very minimum there should be an attorney who reads the license. Some kind of review.
- Audit & tracking process. At some point you'll want to know who is using what, if only so team A can get help with team B so that team A doesn't have to reinvent the wheel figuring out how to get that piece of open source software working in their environment. It's also helpful if there's ever an issue with a product or a license - you can let everyone know right away!
I would add Maintenance and Support Policies