Open source and documentation: Round 2

In my last post about open-source and documentation, Chris Martin makes the assertion that: "If you don't like the way something is implemented, you do it yourself and it ends up in the distribution of said software... Instead of complaining, you should contribute."

I'm not even sure where to begin with that one. I would say more than half of the projects I've ever encountered on SourceForge don't have an ounce of documentation. I'm the last person in the world that believes every projects needs a scope document and a stack of use cases, but if you can't at least write some basic documentation to get me started, why should I be interested to continue or improve upon your work?

Furthermore, this "contribute instead of complain" nonsense is laughable. The biggest open-source zealots say this kind of thing all of the time, and I can't help but wonder what their time is worth. I can do 30 to 40 hours a week for work, but the rest of the time goes to family, friends, and even getting my ass kicked on Halo 2 from time to time. If those work hours aren't generating revenue in some way, I'm really not interested. The good cause of freesoftwaredom is not even on my radar. If there's not a good open-source implementation of something, I'm perfectly fine with paying someone to do the work and hold them accountable.

S Dot One says: "You got the ULTIMATE documentation with open-source... The source code itself."

If I had a dollar for every time I heard that in an agile workshop, I'd live somewhere more tropical than Cleveland. It's the worst cop-out in software development today. Yes, it's true, that in an agile/XP environment that the code is generally simple enough that you should be able to read it and understand what it does. I get that. We heard that over and over again in a stint I had at The Second Largest Auto Insurance Company. What no one ever explained is how that translated to some kind of context for the use of said code.

The truth is that no matter how narrowly focused a piece of code is, it's rarely something that you can consider language/platform neutral, and there's almost always a different way to do exactly the same thing. So when it comes time to revisit the code, revise it, change it, whatever, you're left scratching your head because you have no idea what context the code was running in, or what business problem it was trying to solve. I saw it happen even in short itterations from an agile team.

I guess what bugs me the most is that people don't speak up and form their own opinions about things like open-source or agile. I don't know if it's fear of retaliation, fashion addiction, consultant backlash, or what.

Am I against open-source software? Of course not. I've been giving away POP Forums for about a year. I also document all 600+ classes, properties and methods. I don't remember what I wrote and what my own reasoning was; I certainly don't expect someone else to guess.

No Comments