Spent some time reading from Joel on Software archive, I like the guy (not to mention that I found that we have the same idea about how a software company should be, sure, he has more chances than me, not everyone had the “luck” to be a Romanian). He is simple, pragmatic, and I found the things he discuss conform my experience. Also he does not try to build a whole theory around his ideas like some do.
Still related to software management. I read a ebook about Extreme Programming. I’m in no position at this moment to critique anything related to XP (since I didn’t even finished the book), but even after I listened the interview with Ron Jeffries on technetcast, I still have trouble understanding the two programmers one machine concept.
I have some concerns with this issues:
- Programming is an intimate thing, and I’m not the only one who thinks this way. I have no problem with others watching my programs, but I can not work if someone is staring at me. At least not that efficient. However I do agree that reviewing is absolutely necessary. So after a portion is considered ready, somebody else look at it. Also I think that sharing implementation plans (before the coding) are good.
- Productivity. You will hardly find two programmers who have the same programming rhythm. If the “pair programming” might work at the beginning, in time one programmer (the one which review) wich have a more static role, will lose rhythm, become distracted, and finally his participation will end up being only physical. This is even worse, because you will consider code as reviewed.
- If I understood that right, the major reason for this idea is that when someone start the coding, he loses the overall aspect of the problem and concentrate on syntax, and other issues. I don’t think this is true, and I base this affirmation not only on my experience but on talks with other developers. I leave this issues on my development environment, who does auto-completion, special indentation (I notice when I forgot something), and the compiler.
For anyone who wants (dreams) about joining an open source project here is a thread from the Tomcat mailing list, in which the real big ones describe their background and what they consider as necessary.
The conclusion ? “You guys all make it sound like much less pain than I had previously thought.“. And what it takes is:”… maybe it is not as much pure expertise as it is willingness to learn and contribute to the project…”.
Open Source ! Last week, again on the Tomcat mailing list was an interesting thread on the Open Source licensing issue. I finnaly understood (exactly) what is the difference between X kind of licenses (X, BSD, APL) and GPL licenses (GPL, LGPL, …).
What is about ? To quote a kuro5hin posting “GNU’s “freedoms” taking away MY “freedoms”. Basically JBoss (GPL)included some Tomcat (APL) code. Perfectly right (the X kind of license basically says, here it is my code, do whatever you like with it). The issue started when the JBoss guy’s offered some code to Tomcat (nice gesture). The conclusion ? Not possible. Including GPL code in APL code would result in APL changing in GPL (not good).So here we are both teams are fighting the same war, but still one has to reinvent the wheel all the time, and not because peoples are against sharing code (on contrary), but because the legal problems faced by the two different licenses APL and (L)GPL. My questions is, deep inside, isn’t this just a personal war between the two leaders (RMS, ESR). This war is really not helping our cause.
With this occasion I also found a good (human understandable) article on licenses, named “The Open Source Definition”, written by Bruce Perens who also happens to be the initiator of the famous “Open Sources: Voices from the Open Source Revolution” book.
This was a big posting, sorry 🙂