[cogent showed me this one]
I, Cringley demonstrates what happens when you open your mouth REAL WIDE about a topic about which you know nothing.
Cringley tries to talk about the economics of Open Source It ain't no Homesteading in the Noosphere. Towards the end there's some rehashing of the old "there's too many projects, its all confusing and thinning us out" whinging that misreads Open Source as some sort of dispersed business venture. Feh. But that's not what caused my eyeballs to drop into my stomach.
Look how many Open Source projects have updated versions and the changes read "cleaned up some code." What that really means is the programmer loves his little project, and a few fans have made him love it more, and he just NEEDS to touch it. He can't keep his hands off the code even when he isn't adding new features.
"Cleaning up code" is a terrible thing. Redesigning WORKING code into different WORKING code (also known as refactoring) is terrible. The reason is that once you touch WORKING code, it becomes NON-WORKING code, and the changes you make (once you get it working again) will never be known. It is basically a programmer's ego trip and nothing else. Cleaning up code, which generally does not occur in nature, is a prime example of amateur Open Source software.
ALERT MARTIN FOWLER! Refactoring is all just an ego trip! Hoooboy. I've never seen anyone attempt to turn programmer hubris on its ear that badly before. Yes, we should not attempt to improve the design of existing code for fear we might break something. Spagetti code all 'round, boys. I wish I could offer Cringely a free pass to a testing tutorial so the man can have a little confidence, geez. A little less harshly is to say that Cringely doesn't really understand Refactoring, its just "cleaning up code for no apparent purpose". A lot of people don't understand Refactoring, but they don't have a column on PBS.
Even better is what cogent has just coined: "Cringely's Second Law of Softwaredynamics: Software only ever goes from WORKING to NON-WORKING".
Since all changes to WORKING code become NON-WORKING code than no changes can be made to WORKING code which produce WORKING code (unless we allow that one can go fro NON-WORKING to WORKING). Taking this to its illogical extreme, Cringely is proposing a Creationist view of software development! WORKING code cannot be created, it can only become NON-WORKING code! All WORKING code must have existed at the beginning of time!