I'm interested why the journalist added the dynamic at the end of the article, when stellar performers like Sid are contrasted against mediocre or non-performers like the junior designer. The implication Sid is the bad guy because he is deflating many careers.
It does really suck when you work the hardest you can, fail, and you find out there is someone who is just so much better than you who consistently beats you. It often does create a caustic culture and a risky business environment where the company is overly reliant on one person and has no one else on the bench when the Truck Number gets called in.
But, one could easily argue that holding stellar performers back from expressing their talents is worse since they are just so much better. Could you imagine a world without Civilation because it made some people feel inadequate?
I'd also like to hear the whole story about this. Was the Sid-prototype really created out of the blue, or had it been brewing in his head for quite a while? And so on... Not saying that Sid isn't great, just saying that the comparison might be a bit unfair. Also perhaps the junior designer was given a too specific task, whereas Sid can just create whatever he fancies (he probably has no "make a game where pirates shoot each other, but it also has to include a fun treasure hunt" directive to follow).
The article said he made "some junior designer mistakes". If Sid talked to him about what those specific mistakes were, and tried to identify what attitudes/misunderstandings/inexperience/lack of skill caused him to make those mistakes, and how, specifically, Sid avoided them, this would be an incredibly vivid learning experience; and a deeply motivating experience for someone who wanted to improve. It's an ideal opportunity to develop talent.
It's true that Sid probably doesn't fully understand his own approach, and even if he did, there's a junior designer would be able to absorb and adopt it all instantly. However, Sid would have some understanding, and the junior designer would be able to absorb and start adopting some of it; and simply having a kind and encouraging word from Sid would count for a lot.
If Sid didn't go to the trouble of doing this, or if the junior designer expected to be great without practice, it would indeed be demotivating.
It also depends of the personality, I hope and want to be working with someone who make me feel inadequate like Sid did to the junior designer... It's a great opportunity to learn and compare the result of Sid's work to see what went wrong with the original prototype...
Working in an environment where one never feels inadequate leads to a career stand still. That's what I love about open source too, when I look at the work and productivity of John Resig or Yehuda Katz for example, I feel inadequate but it's also tremendously motivating....
This sounds like release early, release often only in house. Pixar would be another good example of this; they storyboard the whole movie and other employees "watch" it with in house voice acting it until it's good enough to animate.
See http://www.folklore.org/StoryView.py?project=Macintosh&s... for an anecdote about Steve Jobs and the design of the original Macintosh. I've heard variations of this story for other products, too, so I suspect he's got things structured so he has a final veto on any design.
Funny, I read "old school" as a kinder euphemism for shoddy (with all due respect to Sid's brilliance as a designer and hacker). Sometimes great people write crap, unmaintainable code. I've known several types like this in the industries I've worked in. You need a small army of programmers who can respect coding standards to clean up after them.
As for C++, I've looked at some of the Civ 4 source and it seems fairly industry standard "game style" C++. It uses templates, but not heavily, and some boost to provide Python scripting.
I've heard the same thing - brilliant people can hold more in their head, so they can read and manipulate more complex code. They don't need to simplify and refactor as much as mere mortals do, and because they're so focused on results, they get something out as soon as it's done.
I'm curious, have you seen enough C++ to know the differences between 1990's C++ and 2000's C++, and really prefer 1990's C++ because "C++ guys don't like it"?
>I'll bet it's some tight subset of C++, leaving out some of the more "advanced" features.
Isn't that just the definition of sane code when it comes to C++?
Personally, I despise C++ for a number of reasons that I won't go into in this comment. OTOH, if the subset of C++ you use is roughly "C with classes and namespaces," then I can generally tolerate it.
There are a lot of language designers in Coders at Work, but it's not "mostly".
Language designers: Brendan Eich, Joe Armstrong, Simon Peyton Jones, Guy Steele, Dan Ingalls, Ken Thompson
Not language designers: Jamie Zawinski, Brad Fitzpatrick, Douglas Crockford, Peter Norvig, Bernie Cosell
Marginal cases: Joshua Bloch, L Peter Deutsch, Fran Allen, Donald Knuth
which comes to 6/5/4. (Justifications for the marginal cases: Bloch does lots of Java library work, but not AFAIK a lot of language design, and the language itself certainly isn't his; Deutsch did some very important language implementation but that's not all the same thing as language design; Allen, likewise; Knuth's TeX and METAFONT are both, in their way, languages, but that's not primarily what they are.)
I wouldn't call that "mostly language designers".
(For the avoidance of doubt: I think a "Game Programmers at Work" volume could be extremely interesting.)
Oh dear, that will induce a nostalgia overload. Though I wish there was a hardcopy of this I could buy at the second-hand bookstore (it was released on a diskette in 1997).
Well, the thing is, design scales. Having a single person doing design is not a limit to scalability. Having a single person doing customer support, or sales, or implementation can be. Crowds of geniuses tend to lead to the opposite of scalability.
It does really suck when you work the hardest you can, fail, and you find out there is someone who is just so much better than you who consistently beats you. It often does create a caustic culture and a risky business environment where the company is overly reliant on one person and has no one else on the bench when the Truck Number gets called in.
But, one could easily argue that holding stellar performers back from expressing their talents is worse since they are just so much better. Could you imagine a world without Civilation because it made some people feel inadequate?