The Art of being Done. Almost.
Friday, January 28, 2011 at 5:25PM One of the funny things about game development is the art of being “done.” We finished the port of Cro-Mag Rally from iOS to Windows Phone 7 at the end of December, where we hunkered down in our San Diego office amid torrential downpours. So you would think it’s all margaritas and frosty bugs while we wait for the royalties to roll in.
Not so.
While we had managed to complete all features, there were still a number of bugs to be retired. Bugs included things like:
- Skeletons and animations didn’t work right for all models
- Effects and particles didn’t look… quite right
- performance, though much improved, was still not as good as we wanted
- weapons often fired in the wrong directions
Who would have thought it was so hard to make a nice fire?
So, after porting thousands of lines of code, four bugs should be nothing to worry about. Ha. These four bugs alone represented about 40 dev-hours of effort.
But now that we’ve got those bugs retired, we should be done, right?
Almost.
It’s true that we have resolved all known issues at this point, but when you’re publishing to a platform like Xbox LIVE Arcade or Windows Phone 7, you have to meet certain technical certification requirements (aka “TCRs”). So onto the task list go things like:
- Handle “tombstoning” (when the user puts your app to sleep then returns to it)
- Manage resource loading to avoid long waits without screen refresh
- Create trial version
- Review Windows Marketplace “Best Practices”
So with all this work to do how come we said we were “done” back in December?
I have had some pretty heated conversations about the nature of “done” in software development, and in particular game development. A lot of people think, with good reason, that devs tend to be rather… optimistic in their notion of what constitutes being “done” with a feature. People who run large projects are held accountable for getting these projects out the door and into customers’ hands, so when they hear a dev say they’ll be “done” by some date, they automatically tack on another 20% or more to estimate when the thing will transition from “done” to “ready to send to customers.”
Entire methodologies are centered around getting the subjectivity out of the definition of “done.” There’s some good in these practices in that they help people be more introspective about how they spend their time and effort, but I don’t believe “done” is a four-letter word to be vilified and analyzed until its meaning can be explained with a flow chart.
I think, maybe, that “being done” is something we need on a more human level. We need “done” to be kind of squishy and subjective because we need something to strive toward while we’re in our basements or garages or cubicles putting our blood and sweat into making games. We humans (and even we devs) need “done” to be a friend. Someone we can look forward to coming over and having a beer. We need it to be a little flexible because we undertake these efforts to build features and fix bugs knowing that we don’t know for sure how long it’s going to take or how many nights we’ll have to sit in bed or on the couch with our laptops working on a problem long after the rest of our families have gone to sleep. We need that sense of being done in order to recharge and prepare to do it again, as we know we will.
So if I’ve just checked in a fix for a bug that was supposed to take a couple of hours and instead took me 3 days and 42 cups of coffee to resolve, perhaps I can be forgiven for calling the feature “done” even if it’s not accompanied by a full complement of unit tests and documentation. If you’re a manager who has chewed someone out for calling something done when it didn’t meet your 15-point Checklist for Completeness™, then shame on you.
So—tldr—is Cro Mag for Windows Phone 7 done or not??
Because we’re a "Managed Indie” title we’ll need to add Achievements once we get the necessary tools from Microsoft. And we need to localize the game to 5 languages.
But then! Then we are truly, truly done.
Until it’s time for a Title Update.
James |
4 Comments |
Cro-Mag,
Microsoft,
Windows Phone 7,
Xbox LIVE Arcade,
done,
iOS,
sofware development in
games 