Monday, October 20, 2008

Can't Be Much To It

Ed has a friend (who I guess by now is my friend too) who is very down on software engineering. Software engineering isn't about how to write code - it's more about how to manage and run software projects. So it is partly about how to write code, but it's more about the general procedural aspects of how to write code (e.g., is it better to code in pairs? what kind of coding standards should be in place? how does a group manage working on code together? how can we make sure we're building what the client wanted?) than on things like how to craft the perfect algorithm.

Anyway, Adam basically thinks software engineering, at least as currently taught/practiced is full of shit. He had one course in it in college and what he learned was, he felt, a lot of "buzzwords." He later had to regurgitate these in interviews, and found that basically doing some reading on Wikipedia was enough to satisfy the demands of this process. ("Oh, I'm supposed to know what 'agile' means, fine...")

There are a lot of buzzwords, you could say, in business in general, but there are also stark differences in methodologies. I'm sure (as Ed pointed out to me) that "assembly line" was once a buzz word. It's also a significant, radical way to manufacture things. And if you're going to make up new ways of doing things, then assigning words to them enables discussion, right? So if I've decided that these five or so factors are key to the way I want to work in a team to program something, and I name that style "Extreme Programming" (or XP) then is that wrong?

And if I wanted to go to work for a company that practiced XP, it's reasonable to think I should know the term, right? And have an opinion about it? Or concerns and questions about the actual implementation. I should know whether I love or hate or am curious to try pair programming, for instance.

I feel like Adam's dismissal of "buzzwords" in software engineering is related to a general tendency that some people have to assume that, if they don't know much about something, there must not be much to it. Some things, like brain surgery, seem intrinsically complicated and aren't subject to this phenomenon, but other things, like sociology, get no respect. What, don't they just write papers about how people act just like anyone with any common sense would think they'd act?

I imagine most fields have their bullshitty elements. There are probably buzzwords in reinforced concrete structure design. But I try really hard not to assume that academic disciplines have nothing to them, just because I know nothing about them, because I've found that usually, the more you learn about a field, the more you see it expand before you into something deep and rich with detail.

No comments: