Software is fundamentally broken; or at least the creation of it. Think for a moment about how video games get made. A bunch of eager over-achieving creatives sit in a room and throw pasta at the wall until something sticks. They go their respective ways to flesh out the ideas and come back together to fight over who’s baby doesn’t get thrown into the volcano. Finally the idea is further enhanced, concepts are drawn, and the game is pitched to the development team who will almost assuredly and universally hate it. The design is clearly overambitious and, while the concepts are alluring, everyone takes the large gaping holes in the design and interprets it as behaving like their favorite game of last year. It should be noted that everyone is already wrong…
In time, the team begrudgingly comes to an agreement and the real work begins. If the team can’t leverage the technology from their past game things get really interesting. It’s back to the boardroom where whiteboards are filled with diagrams and flowcharts. The question will always come up; do we have time to fix the systems we are keeping? The answer will inevitably be no, but the team hasn’t realized it yet. Some people are already jotting numbers and formulas while Billy in the back row keeps rolling his eyes because the project is 6 months from even considering if that feature will get prototyped. Feelings are hurt, dreams are crushed, and an overwhelming sense of dread haunts the team.
Everyone is starting to see the vision of the game design but even after a couple short months of grinding at the foundation for the game it’s obvious that the design was overreaching. Managers are lost because the schedule in no way reflects what is going on in the pit of Engineers and Artists. It’s The Walking Dead down there and his/her How-To book said nothing about this. Rapid Development, Scrums, Standing Meetings, Waterfall, none of the material alphabetically sorted on the bookshelf stand up to the reality that is software development; they act more like a SpongeBob band-aid stretched over a deep laceration. Designers are turning gray as their precious vision is being ripped apart and the development team is slowly leaching all creative decision-making away. Producers are leaning over the programmers, asking why the conversation system isn’t implemented yet. Engineers have been asking to hire someone to handle that task and more but it has been sitting on the Manager’s desk for 3 months now; before this project even started. The Executive team looks at the numbers and can’t seem to justify the cost of bring in more people. They remember being in the trenches; back in the day when it was just 2 people cranking out games. This team will just need to step up their efforts. And every two weeks, the Business Developers keep pestering the team for a demo to start shopping this game around or taking it on the road for shows. It’s an 18 development window but everyone wants it yesterday.
The project is coming to a close and everyone is looking slightly pale, a little bushy, and carry a hint of, “I feel like destroying something beautiful” in their eyes. Management suspects that station 6 in the render farm was taken out to pasture with bats in hand by the art team but they don’t want to “poke the bear” right now. The game is actually kind of fun, looks amazing, and there is real promise but a lot was left on the cutting room floor. Now, all the team can do is find some institutionalized beauty in what they have, nothing more nothing less; like a pet rock or a prized collection of various lengths of wire. As amazing as the game is, there is still much in the way of polish to be done and bugs to be squashed. As a kind gesture, and partially out of self-preservation, Management brings in a couple more Engineers to keep the tasks on this mythical schedule. Just move these tasks over to this new resource and done! Instant success; back on target. Yeah, those guys you asked for before this project started? Here they are, 4 months til ship date. Awesome… Just enough time to train them with the time the Engineering Lead doesn’t have because he has somehow been delegated the Project Manager’s job, while still expected to code.
The day finally arrives… The game has made it through the approval process and is on it’s way to print. Oh by the way, Management wants to talk to the Engineering Lead… It seems those extra Engineers put a strain on the budget and they are going to have to do some “restructuring” in the company. Don’t worry, the Engineering Lead is probably okay; the casualties will certainly be the new hires and maybe 3-4 others he/she has befriended to make up the loss. Management has asked the Engineering Lead to break the news to the team; they have another meeting to catch with Business Development about, “some things coming down the pipe”. A glimmer of false hope does little to ease the Engineering Lead as he receives a short stack of pink slips and is asked to fetch the Art Director for what can only be assumed as a similar conversation.
The SERIOUS Difference
“But..but.. I just want to make a mini-game about saving lives!”
If you’ve ever worked in the Military contracting business, creating Serious Games, you’ll know that the process is actually not too dissimilar; though the financial climate is controlled more by politics than consumer demand. The main differences are in the people you work for and the hurdles you have to jump over. The (wannabe) Designer is usually the point-of-contact in the Military branch; the guy who holds the money over you. They are kind of like the Publisher when you’re dealing with that Executive Producer that wants to make his game, not yours. Though he barely knows where to find the power button on his 15 year old business class laptop your point-of-contact will insist on being involved every step of the way; serving only to slow everything down. On top of that, you’ll be asked to replicate some preexisting training game that you’ve never seen before; killing all creative rights you thought you had. You’ll be asked to make it do what that other game does, but prettier and able to run on “current” PC architectures (his laptop). You’ll have to deal with security clearance or Government Furnished Information (GFI) which is a fancy way of saying, “Please fill out these forms, requesting to view a screenshot of some 20 year old flight simulator, and someone might get back to you in 6-8 weeks.” Repeat this process just about any time you want to make a decision that involves some form of creative choice; be sure to C.C. the point-of-contact. Also do your homework because they are not allowed to do software updates without admin approval so you might have to work with aging brittle versions of libraries and browsers locked in time. This is why it takes 7 Managers, 2 Engineers, and 1 Artist to screw in a light bulb, a bulb that had to be purchased by completing a purchase request form, then an expense sheet filled and approved, and a signed order from the Management teams boss saying it’s okay…
There is something fundamentally flawed about Big Software, and yet we can’t go back; the world expects bigger and better. Consumers and technology users want platforms to appear and make their experiences simpler and more unified. This is a rare sight for one person’s garage project. I’m not sure if the world of software is destined to be this broken or if there will ever be a light at the end of the tunnel. I’d imagine that, with business ruling over the science of software development, we are pretty much screwed.
If you’ve ever seen a duck swim you know exactly what it’s like to be in software development. On the surface, everything looks smooth and confidently organized. That duck appears to glide across the water, barely making a ripple. Just underneath the surface, his legs are paddling comically fast. Beneath the surface tension, they are stuck in a frantic motion that seem almost otherworldly to what the we see above…
“Me to, duck… Me to…”