I just got back from seeing The Social Network. It isn’t a bad movie. In fact, it’s a pretty decent movie. It has those absurd coding sequences that make software developers wince. It’s possible that relationship statuses were added to Facebook in an hour. I have my doubts, though. And trying to make that process entertaining, the act of watching someone code, is never not funny.
The movie has a melancholy side story about what it means to start something, to own it. What it means when others try to take it. And no, I’m not referring to the heavy-handed sequences about the people who sued Zuckerberg. I’m referring to the people who might latch on to the core of a company as dead weight and try to “grow it”, perhaps at the expense of itself. Perhaps at the expense of those who founded it. The relationship between financing, software development and business is almost a side-story, but it’s done well. For that alone the movie is worth seeing. The Social Network unfortunately takes a typical shortcut. Mo Money, mo problems. There’s something more in there, though.
Recently, one of my favorite video game developers collapsed. In 2007, with Halo 3 being readied for a September release, Microsoft chose the studio Realtime Worlds and the game they’d hired them to develop, as the delivery platform for the Halo 3 beta. Many people bought this little game, Crackdown, simply for the beta. It was the butt of jokes when it was announced. People sold the game immediately after participating in the beta in some cases. And then the unthinkable happened. This little game, the one Microsoft felt needed a nudge from a completely unrelated game, it’s #1 franchise, became a bona-fide hit. To this day it’s still considered one of the most entertaining games on the Xbox 360 and one of the biggest surprises ever in the industry. As they would tell us in The Social Network, this is when the trouble began. More money, more problems. Most gamers would have been happy for Realtime Worlds to give us another Crackdown. Realtime Worlds, however, had a name, investors and much bigger ideas. They wanted to do much better than just being a Microsoft first party developer. And now, finally the cautionary tale from an insider. I’ll pause to let you read it. It’s well worth it, wether you’re a fan of video games or someone who appreciates how business works or wonders why companies are often so dysfunctional.
What I find most interesting about this account is the meditation on business and software development. When I was introduced to Agile software methodology (XP at the time), the big “ah ha” moment for me was that I had been following one of the core principles my entire career. That being that engineering should not only know what the business does functionally, they should be as involved as any other department in the operation of the company. They had their own domain, but they were not apart from the business. Far from it. Of all the things I’ve learned in my career I pride myself most on being interested in the business and trying to ensure that I understand not just the functional needs of the software, but the business needs, the end user needs. I think this is essential for what I do.
For a while the prevailing wisdom was that companies have a structure. They just did. They always have HR departments and recruiters and business development. They have layers of executives to handle the business. Down that road often leads to a world where engineers inhabit cubicles in the basement and business gets the penthouse, metaphorically and often literally . This isn’t just bad for the morale of engineers, but it removes them from what really matters, solving a business problem. That’s a lot of software engineering. Solving business problems, making the company money, making the non-profit more efficient, etc. The saga of Realtime Worlds is one of a company where the business and software teams were tightly coupled and produced something beautiful. And then they decided they had to grow. More money, more problems.
“When we received the initial $30m to develop MyWorld, management literally reverse-engineered a “hiring curve” (a graph of team size against time) from 3 parameters: the budget available, the desired launch date (set by the investors), and our internal figure for the maximum rate we were able to hire people at (this was the only good part of the plan – Dundee put the brakes on for us!). There are obviously far better ways to plan a project, and I could spend a whole post discussing just that, but for now I just want to focus in on the unquestioned assumption that we should set out to spend all the money.”
I thought about this article a lot after watching the movie tonight. If there’s anything I’ve learned and keep with me and try to impress on others is the primacy of business and engineering being partners. You see, it’s not really the money that’s the problem. It’s thinking that you need to take the money and create the structure to immediately grow the business when the people who should understand the business as well as anyone else are already in the building.