Alright, I need to have some catharsis, so, here we go:
If I ever own my own game development studio, I learned the following:
- If you are going to pay top dollar for experienced talent - use it, exploit it. Don't be arrogant, thinking that the way it is done now is the way it must be; let your new talent challenge assumptions and the processes.
- If you are going to pay top dollar for world class technology, be prepared to modify your workflow to fully embrace that technology. Licensing an engine means understanding the workflow of the company that made it and bending your processes to that method; if you try to fight that, you're going to spend a lot of time, energy, and effort trying to shoehorn in what you think is right, even if its suboptimal to the workflow established by the creators.
- Too much secrecy is a morale killer. Game Developers love what they do - they get excited when they are working on something cool - and then telling them they can't talk to each other about what they are working on is killer. Secrecy makes good sense in worrying about with people outside of the office, for obvious reasons, but within the office, is really hurts.
- Sending memos asking people to limit discourse in the office is a morale killer. See above. And, more importantly, good game development is all about communication. Stifle that, and you might as well put out the "Help Wanted" sign, because people will leave.
- Micromanagement is a killer. Good Leads ensure people stay on task, they don't tell people how to do their jobs as long as the end product performs as requested and is optimized for performance. Present subordinates with a problem and let them solve it - you'll often be amazed at the results.
- Not everyone is going to be happy, but learn who the talkers are and convince them what is happening a good thing. In every team, there are the most vocal folks and they drive the morale of the company. Don't ignore the problems, and don't say "this is always the way we've done things" because that means nothing to someone that you brought into the company - if they see problems, explain the process. If they point out flaws in the process, don't ignore them and if you do ignore them, more importantly, don't look for input and then tell people that change is not coming. That is brutal for morale and, for folks not intimately tied to the company, will have them running for the door. Game Development is one of the few corporate ventures where everyone can express their creativity toward a common goal, and contrary to what you tell yourself, there are always other jobs.
- Worry about word of mouth from former employees. The game industry is still small, but word gets out fast when it comes to how a company does business. Like all business, the best thing you can get is positive word of mouth.
- Benefits are more than free dinners and soft drinks.
- Retain experienced, senior-level staff. The best companies in the industry retain more than leads and recruit more than entry level staff. If you have trouble keeping your mid level employees, you have problems. Either they are under payed, overworked, under appreciated or feel ignored and marginalized, or all of the above. Game Developers can be incredibly loyal, but, that loyalty only goes to a point - and given how much interest a experienced developer gets on the open market, retaining them should be top priority. Entry-level folks can burn out. Mid to Senior-level are in it for the long haul; most have seen the fire of crunch and wear it with a badge of pride.
- Disagreeing with Management isn't insubordination, particularly if they go ahead and do what is asked for anyway. Good management is all about communication, and if you aren't communicating properly - no matter how many meetings or verbose emails you send - expect their to be miss communications. Further, if you have someone create something, and you as a manager have preconceived notions on what that something should be , don't be surprised if what is created doesn't match your notions. Also, don't be surprised if you, as a lead, have to fight to have your idea used, particularly if someone else was instrumental in designing a system.
- Object Oriented Design is only as good as the long term plans allow. People are more willing to work in the more generic, esoteric designs if they know that the hard work they are doing now is going to be used multiple times - see the discussion about secrecy above. However, if no plans are made (or are communicated) as to the next project, expect morale to take a huge hit as people work extremely hard for a one-project game, creating code and designing systems that may or may not be used again.
- Be realistic with your development schedule. If management wants more out of the game, get estimates sooner and modify appropriately. Minimize wasting development time on systems and content for something you never had the time or manpower to address anyway.
- Be prepared for people to challenge management, particularly on creative things. Management needs to be prepared to either compromise or abandon their ideas if they are either unfeasible or are simply bad ideas. Wasting time to indulge management kills morale and, more importantly, will waste time. This is not always possible, particularly if they are expressed at the start as being core to the game, so this is a two-way street. Management needs to be willing to abandon ideas that test poorly. Talent needs to be willing to embrace other ideas that test well.
I'm currently working at a startup, surrounded by industry veterans that have been behind some huge hits. Communication is open and free, which means we actually talk less and get more done. We're incredibly incentivized, and everyone is busting their asses. More to the point, I'm working on something I never thought I'd work on, and its much more stimulating than my last job.
We're having fun, and after a year and a half of work, its a welcome change.