Poisonous people and genius programmers

Brian Fitzpatrick and Ben Collins-Sussman have done a couple great talks on probing the important social aspects of software development, especially in the open source arena. Open Source Projects and Poisonous People talks about how to survive “that guy” joining the community of your favorite project, be it open source or not. Their most recent jam, The Myth of the “Genius Programmer”, tries to temper the romanticism that developers can magically put forth reams of brilliant code. By proceeding with humility, one can appear as a genius without all the hubris and potential for downfall.

See also: my OSCON 2007 talk on PeopleHacks.

Community anti-patterns

You’ll have to pardon me for linking to Ted Leung twice in short order, but the man is good peoples. This time I’d like to draw your attention to his presentation from OSCON on Open Source Community Antipatterns.

Ted’s talk is full of great observations from his time at OSAF and his ongoing work with the Apache project. Keep in mind that the presentation is on _anti-patterns_, so most of the slides describe what you *don’t* want to do.

Open Source and Research at Microsoft

So, as I’ve alluded, I’m at Microsoft Intergalactic Headquarters this week for the Microsoft Technology Summit. The crux of the biscuit here is to invite people from communities not using Microsoft technology and show them what Microsoft is up to.

There’s particular emphasis on what MS is doing in the Open Source Software space. Sam Ramji opened up the event to give us a sort of rundown on what MS is now doing in OSS and interoperability. I was unaware that IIS7 will support PHP, that MS is changing their practices to suit the Samba project or that HyperV will, in part get released as OSS.

Sam mentioned that he is committed to not confusing Open Source and Shared Source. It’s a slight distinction to most people but it really tends to rankle those who know the difference. I think he best summed it up by saying OSS at MS is in year 3 of a 10 year project and to judge it by what they actually do, and not their overtures (big nod to Ballmer rattling sabers about OSS and patent litigation).

Next up, Kevin Schofield showed off some of the work MS Research has been doing. His first point was that research does pay off. Research money into technologies like VLSI, databases, parallel databases and workstations have yielded multi-billion dollar industries. Projects that start out as pure academics can evolve into major players such as Oracle and Sun.

MS Research’s mission is to advance the state of the CS art and ensure that MS has a future. By the latter, he means that MSR is a hedge on the company’s agility. They don’t want to turn a corner and find customers demanding something that MS doesn’t know about.

To this end, they hire the best researchers around and then don’t tell them what to do. In this way, they refer to themselves as the “world’s largest CS department”. However, knowledge transfer is critical. If they don’t transfer technology to the product groups, what they’ve done is useless.

I found it very interesting that Kevin said “tech transfer is a social process.” For this reason, he specifically hires people with good relationship management. People Hacks at work ya’ll!

Teamwork anti-pattern: the edge case

Edge Cases are the Root of all Evil:

“I’ve learned over the years that Edge Cases are not meant to be normal rationale or a casual reminder of some odd circumstance that you’ve neglected. Rather, they usually represent an attempt by someone else to gain, show or exert power in a situation. I’ll explain.”

After reading this, I immediately realized the Edge Case is definitely an anti-pattern of teamwork. I’ve observed, suffered and inflicted this particular tactic countless times in the past.

Tackling this one is three-pronged:

* Recognize it. When someone points out an edge-case, quickly try to establish with the rest of the team whether this occurrence is as rare as you think it is or whether its truly important.
* Neutralize it. If it really is a corner case, mark it as such and get back to making actual progress.
* Bury it. Should you throw something out there and find its really an edge case, let it go. Don’t be that guy.

“But Adam”, you say. “It would be really embarrassing if we omitted a condition for the Blurbleflaster Case!” Well, I couldn’t even find the Blurbleflaster Case in Wikipedia! So, if someone finds that we’ve omitted it, then they get the prize; it won’t be the end of the world. We should probably implement that whole social network thing first anyway.