Wednesday, June 11, 2008

Agile and the social developer

I was talking the other day to a technologist who had made the switch early in his career from software development to infrastructure. I asked him why, his answer:- "I didn't want to spend days not interacting with people".

When I was a software developer, it was a lonesome affair. There was no open source community, just manuals and API docs. I got the occasional check-in from my boss and questions to a sysadmin, but mainly was left alone (and liked it). My response to passers-by as to my well-being was often a grunt, as I maniacally focused on the code on my (green) screen in front of me. But that was in the days before agile development.

Agile development practices require a developer to be social. There's a daily scrum, pair programming, end-users on team, kaizen meetings and the like, all situations which require high social interaction. Even open source development is by its nature social. There's no room for a loner.

One of the reasons I stopped coding and became a manager is because I enjoy social interaction (I've been accused of being a "social animal" :-). I do get a buzz out of an interactive tech meeting with developers, admins or CTO peers. For me, this begs the a/b question:- (a) Does Agile push developers out of their comfort zone to be more social, OR (b) Did Agile come about because developers want to be more social?

But clearly, an agile developer is a social developer. That's a good thing.


lukemelia said...

I'm not sure either of the a/b options are the right ones.

Agile is social because operating effectively as a team when circumstances change quickly requires a lot of social interaction. To me, Agile's most important cross-cutting aspect is teamwork.

So if I had to pick a/b, I'd go with (b) Agile came about because developers want to be more social *so that they can be part of a successful team*

Jon Williams said...

Luke, I agree. Social = Team.