Please beware of a longer rant:
In my university, I have the questionable honour of working in a team of mostly less technical people on a software project for a course.
Aside from a laughable amount of actual programming work compared to the analysis, design and documentation required, we're using
waterfall and a sybase ASE. (Did you know that Sybase is the only major DB platform which is not supported by the equally awesome software SAP?)
You know, this fine theoretical ideal of software development, which has literaly been know
not to work since 1970.
Having worked inside the aMule team I insisted on setting up version control (university will provide it starting by next year:
go university!), not wanting to do much work I tried to make us use one of these
make-shooting-youself-in-the-foot-hard-but-still-be-enterprisey languages like C# or Java and had a long talk with our assigned project leader about giving directions in project management, because chaos is bad.
I had chosen QA, because this job meant not actually doing much work, but instead to talk a lot and learn about all the different way something can break.
Well, our programmer is a Windows guy. He's a good programmer, as long as there's Windows XP, Visual Studio 2005, MFC (shudder) and native C++ around. Everything else sucks in his opinion, including string classes and the parts of MFC he has already rewritten.
He's also used to working alone and likes to rewrite the stuff others create (also in analysis and design) only to later bitch about the time he needed to do things properly, because others fucked up.
Having said that, he's also a nice guy and we get along well. He's now also convinced that Haskell is a great language and showed some interest in my Lisp stuff.
Anyway, I had the pleasure to assist him with writing some database code. I didn't know MFC's CDatabase at all and wrote only mediocre code not knowing that a CRecordSet has to be initialized with a CDatabase-connection and so on. My quick-and-dirty Perl script for writing setters and getters was probably the best thing I produced.
Now there was a distinct difference in our commit behaviour. I committed maybe too often and known unfinished code, while he was very conservative in committing, making collaboration difficult.
In the end he decided to do everything alone and probably rewrote my code thrice just to make sure. I don't know, because I haven't seen any commits since then. At least he wants me to review his code - after everything is finish, to make every error a lot harder and a lot more work to correct.
You see why I liked the talk and felt compelled to post a link?
Edit: I'm mostly working with Perl, PHP and Shell for my admin job, some C# and Java for the university, Smalltalk and Lisp for fun and webprogramming nowadays. I even forgot how strncpy works (I though it would always copy n bytes), but still somehow managed to write secure code this way. All the time making stupid errors in C++ and C was good for something after all...