Are You Working In A Feature Factory?
Today, I want to talk about my experience of working in a Feature Factory. This is something I really struggle with in a lot of my development projects and the idea basically is that if you work on something you can end up just making it bigger and more complex and crazier and just pump out features. You don’t actually really produce a whole game. I remember one experience, it wasn’t a game, but it was a project that I worked on for a long time. You may recognize it: It’s called Game Dev Underground.
The idea in the beginning was that I was going to build something for game developers to help market and promote their games. So I built this basic website, and it was all based on the premise that the landing page was going to be more marketing focused. It was meant to give a marketing grade landing page directly to game developers without any of the fancy stuff that other sites have. And when I started on it, it was very clear like that that’s what I wanted to do. As we got people in, we had a very successful launch. We had hundreds of people come in at midnight and I was just blown away by the support we got by those that joined. It was AWESOME.
But then, people started requesting things. I was like, okay, I’m just going to add this and that…I’m going to form a discussion…I ended up with social profiles and a newsfeed. Before I knew it, it had BALLOONED into a social networking site! I looked at it one day and I was like, “Holy shit! What did I do?” This was not supposed to happen! This was just supposed to be a marketing tool. And I realized that maybe that was the goal from the beginning. Because I named it Game Dev Underground—I didn’t really name it Game Dev Marketing Tool or something to that effect.
I essentially ended up working on a feature factory for a year and a half. I just kept pumping out stuff and ended up with a big pile of stuff that was all over the place. It was not good for the user. I’ve done this in games as well. I’m working on a rogue-like game right now and I have rewritten the game from scratch twice. And every time I just end up on these long tangents of adding in features and doing these things and I keep forgetting about just getting the whole thing complete—just getting that vertical slice done and getting the game out there.
Although this is something that I have learned a thousand times, it’s still something I struggle with, because it’s so tempting to just want to work on features and get stuff out there. I can think of 3 ways to help you combat working in a Feature Factory and make sure that when you get yourself out of there, you become truly productive.
1. Find the right metric
What I mean by this is you have to find something that can help measure or properly determine your success. In the developing a game, for example, I think that the perfect metric is not the amount of work that I’m doing but the completion of the vertical slice. Or let’s say I have ten segments that need to be complete before I have a working game. I measure my progress by those ten segments so I don’t add anything else. I have plenty of ideas of course and I keep adding these ideas to a notepad or a folder or file or whatever. I can’t just go off on a tangent and add and add stuff! I have to find the right metric and stick to it and constantly measure my success by whether or not I’m hitting the milestones or individual goals or objectives that I set. You have to pick the right goals, the right things to measure or you’ll end up on this crazy wild train ride!
Many people do not measure their progress at all. That is why they end up in this deep dark pit of game development where nothing gets done and they’ve been working on a project for two years or so. And before they know it, they have this giant thing that’s not even a full working game but it has all these cool features that are confusing to use and it’s just a nightmare. Therefore, number ONE is picking the right metric.
2. Focus on OUTCOME not OUTPUT
The second way is similar to the first one but it’s focusing on outcomes over output. A lot of developers will say, “Okay, I had a successful day because I worked for eight hours on the code” or “I had a successful day because I rewrote this whole function section or whatever.” Your output does NOT determine the outcome. You have to focus on the outcome. This was hard for me to do in the beginning because I enjoyed working on all these little tangents, features, and things that I would go off on a little path to nowhere. I just thought of well..playtesting.
If your output is more important than your outcome, you’ll never get anywhere. I think the outcome for any indie developer is probably the vertical slice, the initial prototype, or the MVP of the game. You want to get a playable game as soon as possible that’s the outcome. Everything that you do should be focused on the outcome, not your output for that day, week, or month. It’s not how long you worked at it.
3. Avoid shiny objects
The third advice I’d like to give is avoid the shiny object syndrome. It’s still related to what I mentioned above wherein you would come up with these ideas and then all of a sudden just go off on a tangent, like “Oh that’s so cool! I want to build that thing!” The shiny object syndrome is when you would get all excited about new features and just abandon the old one in pursuit of the new ones.
Sometimes you would abandon entire games, just like that because you can’t wait to start on a new one. You would just hop from shiny object to shiny object and that is the number one killer of all indie games. And if this happens, so many mistakes could happen in your game, you lose motivation and may just end up hating or quitting your project. You don’t want that to happen.
So, make sure that you’re not working at a Feature Factory. I know it’s hard. When you love something like game development, you just want to sit down after a long day or even during a long day and just make a game or work on something. Some of us use it as a type of therapy, or a hobby. For some of us, it’s a business and you’ve got to make sure that you are getting somewhere, that you’re progressing.
Feature Factories don’t go anywhere. They are never-ending amounts of work. They’re constantly growing in scope and scale and even though you work on them they don’t get anywhere. So if you do these three things: Find the right metric, focus on outcomes not output, and avoid shiny objects, I think you’ll do well. It’s worked for me!
I still have to remind myself no matter how many games I make even though I know this stuff conceptually, even though I’ve done this stuff before. I’ve worked on myself to the point where I have to remember this stuff and I still have to write it down. I have sticky notes on my computer. It’s not easy but it’s effective. And if you want to be a game developer, the number one thing standing between you and that is a finished game. Focus on that and avoid feature factories as much as you can.
If you have any comments on this, leave a comment below. I want to hear what you have to say.