April 1st, 2004


Team programming pet peeves

I was going to write a long, eloquent appeal to the good sense and esprit de corps of programmers everywhere. I was going to draw on my 20 years of experience as a programmer and 15 years of background as a computer scientist and software engineer. It was going to be a quotable LJ post that would propagate to and beyond developer groups such as cpp, java_dev, tessier_ashpool, and the like.

Trask that.

Let me start by telling you a story about a hotshot programmer.

Collapse )
Collapse )

Working with a team of student developers has been an exercise in patience and reminding myself not to ask people to do what I haven't been able to do myself. Most of them are much more efficient coders than I am, but I see the same backtracking, obsolescence, second system effects, and deadline slippage due to mismatched APIs that I experienced as an undergrad and grad student.

Now, as an exercise: Can you think of any ways, in addition to setting aside time for them, to instill the second list of habits in student developers? Our department's software engineering faculty use grades and MSE program requirements as the carrot and stick; the rest of us, unless we are serving as MSE advisors or committee members, have no such recourse.

I'm also interested in hearing what other skills you all think are essential for team environment. We IT people work remarkably poorly with others, IMO. In my experience, that's the case whether we are true software engineers or not, and whether we are working on computer science problems or more applied computational problems.