Building on the works of others (and not just in code)…
Reading up on Open Source projects
Most of the developers I talk to have a pretty specific view of Open Source. Developers see Open Source as a great resource to reduce repetitive work, and to be much more productive in a very short amount of time. (Although, I know most of them don’t describe it that way).
For example, a recent developer told me that he always Google’s any project he is working on, to see what kind of work is already out there. Then, as he (or someone in the architecture meetings) identified something they would like to use, he Google’s it again. Many of the projects are custom built, but the internal libraries are almost always from an Open Source Project somewhere.
I completely understand that. I’m a Java developer, and I’ve used a huge number of libraries in my code. I’ve made extensive use of Hibernate – a project run by RedHat – to handle the Model manipulation layer in a lot of code. Another favorite is the Joda Time project, which makes computing anything around dates, times, or TimeZones a total snap. Can’t live without them…
There are a lot of things hiding behind the surface of Open Source, however. Much of the hidden details – when run well – are almost transparent to the software developer. (And that’s how it should be – everyone knows a well designed system looks easy from the outside.) I’m sure we all know all about the licenses for all of our Open Source projects – or mean to, when we have the time. It’s important, right? Maybe next week…
A lot of this blog series will wander in to different areas of this “behind the scenes” area.
But, before I do that, I should point out that – even here – nothing is done from scratch. Much of what I have done is informed by materials and books published by some great people, who have spent the time discussing this in detail. I don’t always agree with what they say, but it’s a good starting point.
So, I wanted to take a week to introduce some of the books I’ve read – a “learning list” of things to read if Open Source is becoming a bigger part of your world.
A few good books…
Here is my current reading list of books, I’m sure there are others (and I welcome suggestions):
Open Source for the Enterprise
Dan and Gautam have written a great book around using Open Source inside of an organization. It’s been quite helpful, because it walks through the different skills necessary to work in Open Source effectively, and does take the point of view of an organization and it’s problems with just working it the Open Source area. It’s also very recent, so that it covers a lot of the Open Source issues that are prevalent today.
The Success of Open Source
This book takes a larger perspective view of Open Source, which makes it great for understanding how all of the complexities interconnect. It does spend a lot of time discussing how Open Source affects the world outside of software development, but that’s good too. It also does a great job of explaining the details about ownership, property, and Fair Use, which is invaluable if you don’t already understand the legal complexities of the Open Source space
Code: And Other Laws of Cyberspace (v 2)
Please, please, please tell me you have heard of Lawrence Lessig. One of the original pioneers in understanding the legal implications of code and how the law applies to it, Lawrence is arguably the leading person in understanding the implications of how the law is pushing code. And, yes, it’s not the other way around. Code 2.0 is a great book on how law and code intertwine. I know it’s a hard read, and it’s a college course of material, but for everyone who thinks that software on the Internet is unchained, it’s important to get a new perspective.
The Art of Community
Jono Bacon, editor (and 12 community managers)
Talking to the leaders of communities can be really rewarding. This book had a combination of discussions, and the mix of different voices was helpful. There are a lot of good nuggets of information in this book, and in several cases the person writing it can give a world view that helps to clear up the different types of projects, and different points of view, that many have in the Open Source space. Not everyone is a great writer, admittedly, but it’s worth the time to do the research and learn from the people in front.