2006/10/25

Agile or Not?

I'm a real big fan of one Alistair Cockburn because he's in the past said a lot of things I think are insightful. He's also a proponent of Agile Development which has had some bad press lately. Googlisms of those links aside, I've always been skepitcal (like many) about "Agile" and what it really means. On the other hand, I think there are some really good ideas therein and can't dismiss it out of hand like many do.

My disclaimer for the discussion that follows is that video game development is crazygonuts different than "normal" software development if there even is such a thing. It seems that as an industry that we've been pretty good about completely ignoring the rest of the software industry--even about ignoring those things that might help us. Though not dedicated to the software part of the industry, there's a lot of good stuff at IGDA's site of which I am now officially a member.

Then I read this piece which I found from here. As is typical of the works therein, it was interesting and insightful with the one exception of point #3 where he's listing "outdated and inefficient process conventions". Specifically:
* People work better in private offices.


This seems in complete disagreement with sources that I've quoted here before. This invariably lead me down the path of trying to figure out what I'm missing which is what I usually do when faced with such contradictions. On the one hand, I respect Alistair Cockburn and don't think he'd lead me wrong intentionally. On the other hand, his statement just plain seemed wrong given the bulk of software culture I know of and even the bulk of my, ableit short, professional exeprience.

I've ranted about my current workspace before. Others have undoubtedly done the same (and no, I don't have any links handy, sorry). I can also point out that during my last two jobs I had very similar experiences where, in the company of many people, both the quality and quantity of my work has declined dramatically. What I can't point out about my current job that I can about previous jobs, is that when moved back to private workspaces that I got all of that quality/quantity back. I don't think this is particular to me, nor do I think that it was particular to these three companies.

The essence of what I do on a regular basis is private. I debug code, I read code, and I write code. Timewise, secondarily I also have to track down requirements and read through a pile of emails (typically 100 on a slow day to up to 500 nearing a build) and context switch to fight some fire or another while someone is standing on my desk waving their hands around in a panic. Ok, so the standing on my desk part is exaggeration, but they tend to be very panicky. As a lowly grunt I really don't have a lot of design time nor do I spend time with clients who, in this case I suppose would be management. This has not changed in 6 years.

Debugging code, reading code, and writing code tend to not require outside assistance. Occasionally I will ask for assistance when debugging someone else's code but that's fairly rare and even then, in the search for info to be able to ask good questions, I usually figure it out without intervention. I don't know if it's just me (I suspect it isn't) but I find that I'm able to get more done by focusing and not being interrupted on all of these tasks than I am with, say, between five and fifty people in the same room.

Business software as I understand it, is a totally different beast where there's a lot more interactive design between people on a team. I imagine that in those types of situations that you could get a lot more done if you could talk stuff over with the people making the decision especially if you were one of the people responsible for said decision. It probably also helps if everyone within earshot is at least tangentially involved in whatever it is you're discussing.

None of these are true for me right now in the vastness of the 2000s wing. To my right is an artist. Across the row from him is an artist. Across the row from me is an artist. On my left is the audio tech programmer. Across the row from him is a performance 360 tech programmer, probably the only person in my near vicinity that I have any technical business with. So when the two artists talk about UI graphics and stuff like that, which I have almost no input into, I don't particuarly get anything out of it and it can be incredibly distracting. Don't even get me started about when they start talking about WoW, loudly.

My conclusion at the moment is that this is a largely cultural difference in opinion where both sides are right in their own context. I'm not entirely happy with that explanation but I'm also at a loss for anything further. I think that if you want your programmers to program, debug, and generally be assigned those tasks that are best handled individually, that sticking them into a huge bullpen with others not of the same department is probably not a good thing. I won't comment on the appropriateness of such decisions on task assignment, but that seems to be what happens more often than not in places I've worked.

Either way, I'm going to let this one soak for a while; I think I may be missing something here.

No comments: