It also reminds me of my own early days, of creating "games" on a little Sharp Pocket Computer in some unholy dialect of BASIC. I remember the first time I sat down with a full copy of QBASIC on my parents' laptop and started to experiment; one of my first goals was to create a clone of Commander Keen (and fix what I perceived to be some severe design issues in the game, namely that I sucked at it and couldn't beat it). For years my secret dream was to get a job making games, although I rarely admitted it, because for some reason most people don't take that as a serious career choice - apparently I was supposed to do something "useful" with my life.
But now here I am, and oddly enough people take my career a lot more seriously these days. I guess game development has a much better reputation now (as a "real" business) than it did back in the early 90's - which is fair, I guess, considering most of those "businesses" were run out of garages and sold product in plastic bags.
In a lot of ways, things are pretty much as I expected: I sit around eating junk food and writing code most of the day, have a pile of top-end hardware sitting around, and get to go to events like E3. What strikes me most, though, is how different the reality is from what I would have expected - and, from my time here, it seems that those misconceptions are more or less ubiquitous.
For instance, I always figured I would work in a cubicle, wear a coat and tie, and report directly to a "Manager" who I called "Mr. Boss Sir" all the time. I suspect that that particular misconception was more the result of my ten year old brain trying to comprehend the life of a working man, but I still think it's funny how totally different my job turned out to be: I work at home in my apartment, wear jeans and a t-shirt (except for Pantsless Thursdays), and our team has an extremely flat hierarchy. Go figure.
One thing that turned out to be correct has also turned out to serve me very, very well over the years, both in the game industry, and as a freelance contractor before that. I have always considered it the chief responsibility of an employee - and, more importantly, of a team member in general - to contribute all of his skills and abilities to the ongoing good of the team effort. I suspect I got this largely from my father, who has always been admirably philanthropic, but in any case it seems to be fairly rare, especially among the current high-school generation that's preparing to start looking for jobs in the next few years.
To be honest it worries me a little bit, but that's probably just because I'm a cynical pessimist bastard and I worry about everything. Regardless, I see an awful lot of people - especially in this community - who approach things from the opposite perspective. People seem to expect that they are entitled to everything, and that the world exists to serve them. This is really a symptom of a larger cultural phenomenon I think, and it by no means is limited to the young people of today. I'm not educated enough about cultural history to speculate on how this situation came to be, but it most certainly came to be, and now we have to deal with it.
Many people begin their game development experience with this sort of grandiose vision of being some kind of "lead," with dozens of people at their beck and call to carry out their every gaming whim. The most extreme case of this is people who don't want to master any particular skills - they just want to be the "idea guy" who tells everyone else what to make. The more of these people I see, the more I suspect that such thinking arises from the entitlement attitude.
These people seem to believe that they will be in positions of power, where their underlings/headcount/demeaning-term-of-the-weak exists solely to do what they want. This kind of power-hungry drive manifests in many places outside of just the "idea guy" crowd. In fact, it is often most dangerous in places like programming, where a single control-obsessed person can wreak havoc on a code base and create all manner of headaches.
The common mental image of the "lead" or "manager" or "boss" is the command-and-control drill sergeant who fires off orders in a loud voice and probably smokes a lot of cigars. Sadly, this stereotype actually occurs in the real world (albeit a little bit less caricatured) because at one time command-and-control was considered the ultimate method of management. So this vision of the "Boss Man" who wields the combined power of dozens of his underlings is particularly entrenched, especially in American culture.
What's interesting is that pretty much everything written these days about how to manage and lead teams in the IT world goes totally against this. Good leadership isn't about yelling orders and building layers of bureaucracy. Leaders don't sit at the desk and yell at everyone to charge forward. Just look at the etymology of the word itself: a leader should be someone who leads. That means going out in front.
A few years ago I encountered a term for this kind of person which I found deeply compelling. The word is provisionary (it's a noun, not an adjective). A provisionary is someone who looks ahead - pro vide, from the Latin roots. The idea of looking ahead is to plan for the future, see what potential needs and challenges are on the horizon, and then prepare for them. The best leaders are provisionaries; they exist solely to scout out the road ahead of their team, and make sure that road is as clear and safe as it can be.
Lately, though, it's occurred to me that this is not the sole responsibility of those who are "in charge" in the bureaucratic sense. To an extent, every member of the team should be doing the same, within their area of expertise. It's important that everyone have a unified vision of where the road should be going, and so it's best to have someone who is the "chief scout" so to speak who makes sure everyone is going the same direction.
However, no manager or team lead has the time or energy to see every single possible problem before it arises. Team members are on the team because they provide a unique and valuable skill to the team as a whole. This means that each individual on the team is uniquely positioned to see their own little slice of the road ahead, and prepare for it. A good leader needs to be in place to collect and correlate all of these little slices of vision, and reconcile them with the overarching direction of the team and the project.
What's interesting here isn't the leader's role so much; rather, there's an interesting perspective that needs to be present in each of the team members themselves. In most of the 9-to-5 corporate cultures out there, team members feel like they exist to serve their immediate superiors. Certainly their superiors rarely do anything to discourage this notion - and in fact in many places it is made quite clear that that is how the culture is configured. Employees exist to do the bidding of the manager.
So what happens when an employee, fully accustomed to this situation, is placed under the leadership of a provisionary? What happens when a team member operates like a drone grunt simply because he doesn't know that he has an alternative?
What happens is that the entire team suffers. It's not visible, not noticeable, and probably nobody will ever have any idea that it's going on. You could say that the team simply doesn't reach its full potential, but I don't think that really captures the seriousness of the problem. The team suffers - and it's the worst kind of suffering, the kind that is undetectable.
The solution is to cultivate an attitude of provision and service among every member of the team. When everyone truly feels and believes that they are a central, critical part of accomplishing something great, they will become more motivated, more productive, more concerned about the quality of their work. We all know that it's more fun to work on something you really believe in. Interestingly, this also feeds directly into your employee ego, which has huge benefits of its own.
A lot of people these days are talking about Google's management structure, their company policy, team organization practices, building layouts.... I think there are a lot of attempts to divine the "Secret of Google." Everyone wants to figure out how they are so successful. Is it the on-site chef and cafeteria? The funky paint colors on the walls? The nifty little glass-tent cubicle/office things? The opportunity for people to spend 20% of their time on personal projects? What makes Google such a powerhouse?
I think the secret is much more subtle and profound than food, paint, or dress code. I think the secret is that Google understands provisionaries, and it knows to cultivate that attitude in every single member of the company. I can't say for sure, as I haven't had the privilege of working there, but from what I can gather from those who do work there, that seems to be what's going on.
You want your team to have the success of Google? Heck, willing to settle for even one tenth of the success of Google? It's pretty easy. Just remember that every single member of the team exists to serve each other. Not your boss, not you, not the shareholders, not the quarterly earnings report. Each other. As soon as any of the trappings of corporate existence get in the way, you've lost the magic, and things will inevitably degrade. Your team exists for each other - nothing else matters. Nothing else exists.
Every individual has something they can bring to the team. (And on the off chance that they don't, it's time to take a deep breath and dig out the pink slips.) Not only that, but every individual should be doing all they can to help the team move forward. This means people need to care about the project enough to be bothered when there are problems. They also need to have the skills to find solutions to those problems. Finally, they need to have the initiative to implement those solutions.
It's actually pretty rare for one person to cover all three bases. That's why we have teams in the first place: because everyone's skills supplement and complement the team as a whole. That's where a leader comes in; it's the role of the leader to find people who can take care of all three areas, and make sure they do so. However, it is vital that everyone at least partially cares about the project itself; this simply doesn't work in an environment of complacency.
So how do you make people care about their project? Give them a tire pump for their egos. People can and should be proud of the things they've accomplished and are working on accomplishing. Back in the Olde Days, we spoke of "taking pride in one's work." That's really just another way of saying that you care about what you do - you care because the outcome of your efforts is a reflection on you. That emotional investment will do more wonders for your project than any cigar-munching, oak-desk management Vogon will ever be able to comprehend.
The secret is that taking pride in one's work isn't just something that each individual does for themselves - each team member (and especially the leaders) needs to push everyone else to take pride in their work as well. It's unfashionable to be an arrogant jerk, so many people will simply settle down to mediocrity so as to to rock the boat; nobody wants to be accused of being a prima donna. That's why the team has to encourage each other to be proud of their accomplishments - it's much easier to be proud of what you've done if people around you are proud of you, too.
When people care, they work harder, and work better. This is a pretty well-understood phenomenon. What's important is to foster a culture of caring, and of service. Each person needs to feel compelled to use any of their available skills to help advance the team's goals - and they need to have the authority and permission to do so.
The results can be truly amazing. I know, because I have the privilege of working on a team where just such a culture is being created.
But don't just take my word for it - look at this little company called Google. You may have heard of them.