Friday, July 03. 2009PostGIS 1.4 hot on the heels of PostgreSQL 8.4Printer FriendlyRecommended Books: PostGIS In Action PostgreSQL 8.4 Official The SQL Language PostgreSQL 8.4 Server Administration
Trackbacks
Trackback specific URI for this entry
No Trackbacks
Comments
Display comments as
(Linear | Threaded)
There are some people who do value the importance of documentation and testing, without it being glamorized. To wit, early in the Linux project people wrote How-To's to share their knowledge and allow others to participate. Did Bruce Momjiam write the first PostgreSQL book because he foresaw making a ton of money from it or because he innately enjoys teaching? On the testing front, look at the work of David Wheeler.
Open source software development has some characteristics of the "economic calculation problem" (see http://mises.org/econcalc.asp) postulated by Ludwig von Mises with regard to socialism. However, not being able to put a monetary price on an item to be produced doesn't mean it will not be produced (or will only be produced under coercion). And it's not just "glory" (or recognition) that leads humans to act (see http://mises.org/rothbard/mes/chap1b.asp#5._Further_Implications, in particular, the paragraph that starts with "All action is an attempt to exchange a less satisfactory state of affairs for a more satisfactory one.")
Joe,
all good points. Regarding my comment about glory. That may be too strong of a term. My point is if you are doing a lot of work for a project and you don't get the sense that your work is being valued by the key people in a project, chances are you are going to leave and stop working for it. In a paying project you stil care but care a little less because you are getting a monetary value from it. Bruce documented because he knew he needed to to get buy in from people. When you think about Bruce though -- you don't think of him so much in the light of the guy who first documented how to use PostgreSQL so the common folk can use it. In fact that was probably one of his biggest contributions. In a similar light Paul Ramsey did most of the initial documentation for PostGIS, but he is not known as the guy who first cared enough to document how to use PostGIS. That is also perhaps one of his biggest as well, because I know for one I wouldn't have started using it. I would have dismissed the project as one too early on or for reckless hackers who don't care about a user community. I guess my point is even though some people feel these things are important and especially the people that cradle the project while its forming, its not seen as a critical component by most -- because its kind of buried down there. Its sort of a hidden line item that is needed and expected but not valued like raw features. Presumably because a feature can exist without documentation, but documentation about something that doesn't exist is not terribly useful unless it is the specification that programmers go by to build the work and specifications can be so easily flipped into user documentation because they encode in them the test cases to test the work when done :). Such a concept I don't believe exists in a pure bazaar model. In an open source project often times, if you are not a hacker -- you are simply documenting, you are basically seen as valueless even though your value is probably more important than people coding. This drives away people who enjoy just tinkering with new tools. Sure you'll still have some of these -- but they probably have a mixed personality so are credited for their non-documenter work. You will lose all the purer breeds and that is a real shame since others who find this work less enjoyable will be forced to step up to the plate more. Then again I would venture to bet there is no such thing as a successful pure bazaar model and even Linux has cathedral like qualities built into it at least nowadays but they are sufficiently light not to be offensive or get in the way of creativity.
Once any enterprise (as in endeavor, not necessarily a business) reaches a certain magnitude, people tend to specialize and thus it becomes more necessary to coordinate activities (e.g., developers' meetings for planning). Thus, as you say, the bazaar model acquires cathedral-like qualities.
However, what I think still differentiates an open source project from a closed one is the freedom of the individual contributors to pursue their vision of what matters to the product. If someone at Oracle or Microsoft thinks of a cool new feature, they will not be able to add it at their discretion. They'll have to get buy-in from product management or whoever else decides what gets in the next release. And they won't be able to work on it at their leisure if they've been assigned some other priority. Maybe some enterprising souls will still work on their dream feature, but they'll lack any incentives from the company or the project manager to do so. In an open source project, that same person can pursue development of their cool feature without worrying (as much) about project or product management (if those exist) approval. They will still have to get approval from committers and others who decide on released features, but the bar will be generally much lower. In a sense it's analogous to traditional warfare vs. guerrilla or fourth-generation warfare. In the former, a general dictates the strategy and the tactical targets. A battalion leader may do it "his way" and even succeed but that's the exception. In 4GW the individual guerrilla units pursue the objectives they deem most desirable. On the subject of coding vs. documenting/testing being more or less valuable, the current agile or XP approach takes a different tack. In the traditional approach, you may be required to document first (as in writing a detailed design), but in many (most?) instances people will code first (to the design in their heads) and document later (and any tests will be developed even later, maybe by a QA group). In test-driven development, the emphasis is to first write tests to document expected behavior. I don't know to what extent this practice is prevalent in open source projects or individual contributor habits, but it does change your outlook on what is more valuable.
Joe,
I totally agree with your above statements. Part of my argument was that while PostGIS is garnering more cathedral like qualities, that doesn't mean we've become super austere and require the level of dictatorship that a hmm Microsoft or Oracle does. We still want to maintain the spirit of freedom and allow people to work on what they want to. Many patches we will reject because they don't jive well with the rest of our code base or require additional dependencies we don't want to introduce. Just like PostgreSQL does the same. Tom Lane is very critical of patches,and that is a good thing. It makes users confident that there is a certain level of quality/cohesiveness we demand. I would say the same for Linux -- Linux was successful early on because while there was freedom -- people knew there was a Linus Torvalds out there monitoring the patches for their suitability -- e.g. doesn't break an patent laws, doesn't have holes etc. His rejection reasons I would imagine were very well defined such that people couldn't accuse him of being unfair. So he in essence added the light handed Cathedral to the Bazaar. Also most open source projects only allow a few committers (gatekeepers) who accept patches from others. But my more important point is that I think we are also moving toward a more bazaar model (something that was missing in Paul's blog entry). By that I mean by coming up with better ways of stress testing the system, we can be more reckless in our changes and still maintain a fairly stable code base that people won't be afraid to try. By strengthening our tests we will more likely catch a line of code that breaks 20 other areas of functionality or breaks on one OS. By making documentation of a new feature immediately available as soon as a feature is added and prominent in our documentation, we can get more people excited about testing out these new features. Coming up with ingenious ways of testing and documenting is a very fun and fulfilling job I think and sadly that is what is missing in many open source projects when people are only respected for the amount of code/features they add to a codebase. |
Entry's LinksQuicksearchCalendar
Categories
Blog Administration |