Why online games have sucky databases

Every team and company has blind spots. In some cases, these blind spots can cut across an entire industry. One of the most common is Not Invented Here Syndrome, an inability to trust software that you didn’t write yourself. In the past, many businesses had a huge blind spot when it came to open source software, often going so far as to ban it as a matter of policy. These days, many newer companies refuse to purchase commercial software, preferring only open source software. These blind spots often lead to making the kinds of expensive mistakes that are also prohibitively expensive to fix.

Most often, blind spots result from a failure of pattern recognition. People see their own problems as novel when in fact they are slight variations of problems that have been encountered and solved many, many times. What got me thinking about this was a post by database industry analyst Curt Monash, who writes about his frustration with the many bugs and flaws he has encountered in online games that seem to result from a failure to use off the shelf database technology effectively. If there’s one thing we know how to do in the computer industry, it’s store and retrieve transactional data at scale, and yet it appears as though many game companies have absolutely no clue how you might build such a system.

The game industry is famously a monoculture, even by the standards of the rest of the software industry. It is also remarkably insular – there’s not a lot of crossover between working on games and working on other kinds of software. I’m sure there are plenty of people in the game industry who understand what relational databases are and how they work, but I suspect that the industry suffers from a lack of people who’ve built large-scale database applications that work reliably. More importantly, my impression is that the culture of the game industry would make it difficult to even hire people with that kind of experience.

How does a company minimize blinds spots? Obviously hiring for diversity (both with regard to demographics and experience) is a big deal, but the solution requires more than that. It’s also necessary to build organizations where people who point out blind spots are respected rather than ignored. In the example I’m thinking of, I’m talking about technology choices that lead to bugs and poor user experience, but the blind spot could just as easily be related to potential markets that go untapped, or management practices that lead to irreparable image problems and lawsuits.

The downsides of blind spots are pretty serious, and it’s not like my suggestions for preventing them are in any way novel or perhaps even interesting. So why don’t we do more to prevent them? To state the obvious, we’re rarely aware of our blind spots. More importantly, blind spots enable us to move faster thanks to the certainty they foster. They enable us to spend more time doing and less time thinking, and when you’re in a hurry, thinking often feels like a waste of time. Unfortunately, as we often see, they wind up being really expensive in the long run.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>