I don’t need to tell anyone that teams are important. There are tons of articles on this topic from the games industry (my personal fav) to the startup world. (Even I wrote on the topic of teams and some research of adding a female to a group.) Instead of trying to tell you what the makeup of your team should look like or that you should be stringent in your hiring (seriously, EVERY studio that I talk to believes they are doing this), I’m going to focus on the things I’ve learned from being on multiple teams from AAA to indie.

Passion != Strong team dynamics
Just because you met at work and have a equally strong hatred for AAA development, it does not mean that working together would be a good fit. You’re probably even all very talented in your respective fields and you think that you balance each other out. This still doesn’t mean that it would be a good fit. In my opinion, the only thing that matters are your goals for that project. What do you want to accomplish and how do you think you’ll get there? Sure, your game might not be as strong if you don’t have a dedicated artist. Sure, your game mechanics might be a bit on the weak side until you test without a dedicated designer. But when you start out your team with a solid base understanding of goals then you can power through all those weaknesses. It’s not guaranteed that a great designer and a great artist will lead to a successful game, but it is guaranteed that misaligned goals will lead to the ruin of a team. Which leads me to the next point…

Make sure your goals are the same – every day
Once your team is established, just like the relationship with your significant other, you need to make sure (EVERY DAY!) that you and your team are heading down the same path. This could change, and honestly it probably should change, but you need to always make sure that you want and are headed in the same direction. Some key questions, especially for indie game devs are good to ask: Do you want to make money? If this ever became moderately successful, would you quit your job even if there were risks? What is your philosophy on how games become successful – hard work or luck? Do we want to be published? Make sure you’re on the same page. Ask those key, what I like to call, “do-you-want-babies” questions. It’ll save you a lot of heartache in the future.

One irrelevant person will such the soul out of the room
God forbid you ever hire or bring onto the team someone that is not as important to the group as the others because this person will suck the soul out of the room. Usually this person knows that they are not as valued and they slack off because of it. Then the rest of the team because resentful over the slacking. I’ve seen this happen more then once in both AAA and smaller teams. First of all, don’t do that. Make sure everyone has a specified place that they can easily settle into. Don’t make they have to worry about forging a niche for themselves – you should have an idea of what they need to do already. Second, if it does get that far and you’ve made a mistake – let them go. Sure, you’ll have to take on a little extra work when there’s no room for that but, believe me, your team will thank you.

Know the weaknesses
Make sure your teammates know and understand their weaknesses. This to me is the most important quality of good team members. You can’t have a lead that refuses to give up power because they think they do it right ever single time – when they don’t or they are too busy to attend to everything at once. You can’t have a designer sticking to their faulty guns because they are emotionally connected to their ideas. Make sure that when you bring on teammates that they are aware of their weaknesses and are open to trying to conquer those weaknesses. (This goes for you too!)

I’m sure I’ll expand on these points as I try to learn from my failed teams and try to emulate my successful ones. I’ll be sure to update this post if I do. Let me know if you have any thoughts on this subject!

[This post was originally created for and posted on AltDevBlogADay.]

From agile and scrum to extreme programming, everyone’s trying to nail down what it takes to iterate on products quickly and efficiently. There are a lot of methodologies that you can employ to guide you through shipping products. But today, I’ll be talking specifically about video games and how, as a developer, you can use a loose process and follow some basic rules in order to get quality games quickly out the door. You might argue that in today’s day and age, with the Valves and Blizzards of the world, that taking your time speaks volumes for the quality of a game. Well, yes and no. For big AAA companies with a reserve of cash, that might make sense but as an indie developer you live and die off of shipping. The importance of quality and fun has not changed. However, the games industry is much more accessible and now developers utilizing fast iteration can make ridiculously high quality games in very short amounts of time. It’s one of the few things we can do better than big developers.

Now, there is a fine line between making quick iteration a focus and getting bogged down in process. Every game and every team is unique. So, take these and mold them according to you or your team’s style for the best results.

Make measurable steps every time you sit down to work

Did your mom notice that something changed with that last check-in? If not, then you may be caught in a common trap. When you sit down for an 8 hour workday and you don’t make steps towards improving gameplay some things can happen: 1) You stall. You get too caught up on adding an animation pipeline to your engine. You spend all day refactoring your draw calls. This doesn’t just eat up one day but multiple days spanning weeks of work. You’re so heads down that you haven’t come up for air and when you finally do: 2) Your morale drops. You realize that you just spent a week of valuable work time (or in many indie dev cases, valuable free time) working on something that made no noticeable improvements in your game. Sure, you’re set on glorious animations for the next 3 games but in the meantime you’re stuck with 98 levels left to create.

I’m not saying that those refactors or pipelines aren’t important. Or that you don’t enjoy getting in there and mucking around. But try to couple every systems task with a more visible task, usually art or gameplay. Take a break to put in some quick UI. Implement that restart button you’ve been putting off because you can just kill the process and rerun. At the very least, you have a new iteration of your game every day and you’re one step closer to getting it out the door.

Someone should always be playing your game

As soon as your game is playable, others should be playing it. There have been a lot of great articles on this blog recently about the merits of playtesting. The very successful Spry Fox team tries to achieve their version of daily iteration. This means a designer is looking at the latest build and the developers are iterating on that feedback that day.

Whether it’s a game designer with 20+ years of experience or your 12 year old brother taking a look at your latest build, you need feedback to iterate on. This is quite possibly the most critical step towards a fun and successful game and you shouldn’t leave it to the end of the project when everything is set in stone. Not to mention hearing feedback on your game boosts morale. Even negative feedback allows you the opportunity to change something before it tanks your game. And higher morale is definitely what you’ll need to push anything out the door quicker.

Ship it.

No matter what you might think, that extra particle effect is not what will tip your game from the dumps to a hit. Ship it and add it later. As indie devs, we need to break ourselves out of the mentality that the ship date is an all or nothing push. One thing that social games have learned is that majority of your dev time is best spent on post launch work. This is where you boil down what users like/dislike and what works and what doesn’t. Even with all the playtesting in the world, you’re never going to know how successful your game will be until you ship it. So ignore the fact that your UI takes an extra split second to show on screen, and trust that if your core gameplay mechanics and game’s aesthetics did well in the previous step that it’s enough to ship.

And finally, fail

The final piece of advice I leave with you is don’t be afraid to fail. As long as you’re failing quickly and often, switching things up and trying again, you can’t help but learn. There was a great case study done where CEOs, business students, and children were brought into a room. Each group was told to build a structure as high as they could out of popsicle sticks. Guess who got the highest? The children. Examining what the children did differently they found that the children built up structures as quickly as they could, watched it fall, and then immediately started building again where as everyone else spent meticulous time planning and creating. So be like a child and build quickly. Whether it’s failing or succeeding, you’re moving in the right direction.

[This post was originally created for and posted in the career section of]

When I was early in my college career, I was drowning. I was getting my math degree and while math had come naturally for me my entire life, I was finally getting to topics that no longer came so naturally for me. In an act of desperation, I sent out an email to one of my classes asking if anyone wanted to get together for a study group. The response I got was astounding. I gained friends there that would help me get through the program and that I would keep my entire life.

Many psychological studies show that being involved in a community can lead to greater participation, perceived safety, ability to function competently in the community, social bonding, and a greater sense of purpose. I can’t express how important this is but it can be a little daunting to make the first step. Here are some things to remember:

1) Put yourself out there.

The internet is a great anonymous place where you can find anyone – someone who shares your love of egg whites, knitting, or even that enjoyment you get from tearing glue off your fingers. Whatever it is, someone is there with similar likes and dislikes as you. Find them and don’t be afraid to share your quirks with them as well.

2) Be active and continue to be active.

Consider this as you would any relationship. Your friends like it when you call even when you can’t hang out for the whole day. Think of this relationship the same way instead it’s with a whole community of people. It takes work and time every day to remind them that you’re still around and have more to add to the conversation.

3) Share your work.

This is where the career part comes in. If you’re trying to get into a community to influence your side project or maybe to get inspiration at your full time job, ask for feedback and share what you’re working on. It could be as simple as sharing your idea: “Hey, I’m thinking of starting a blog for geeky and girly girls. What do you think?” Hearing feedback, both negative and positive, will give you a burst of energy and will improve your idea all the more.

And what do you have to lose? Who knows, you might end up writing an article for a geeky/girly blog. :)