I know most of you are experienced in shipping software, but I thought I'd share my thoughts, feelings and experience in shipping high-quality software - specifically FUN games!
I've worked in software development as a developer, manager and architect for over 20 years. I've worked at start-ups, small companies and large corporations - ranging from 1 to 100,000+ people. I've worked in water-fall and agile and seen many different approaches - pair programming, scrum - you name it. In every case, my motto has been the same: "Just Ship It!"
Sometimes people laugh when I'm in a meeting and say this; sometimes I myself say it sarcastically - clearly meaning we're not ready to ship. So what does "Just Ship It!" really mean and how do you get there?
The most important thing for me is to always know the exact state of my product from both the feature and quality perspective. There are many tools available to help you gain insight into feature delivery and quality - ranging from huge corporate tools like Rally, Bugzilla and IBM's Rational tools all the way down to using a text file - and nearly every possible layer in between. Recently, a lot of these kinds of tools have moved, "to the cloud" (I hate that phrase, but it kind of applies here).
Evernote has recently added the ability to share notes between users. I've used Evernote almost since it first came out, but now that it runs on almost every platform under the sun and provides cloud sync and great collaboration tools, it is better than ever.
Every single thing we want to work on goes into Evernote; we'll create several notes for a longer project, each with several sections inside it for new phases of development. For example, early on we had a note which talked about what Word Portal would be like to play - this was before the game even had a name - in fact one of the sub-sections was brainstorming on names! This first document talked about similar games, objectives of the new game, how monetization might work, high-level features, cool things we wanted to do, etc.
As work progressed, we created another note in Evernote to track feature requirements, implementation details and bugs. Each item was created hierarchically and with check-boxes so they could be stroked off when completed. No one item was so large that it couldn't be done in a few hours - a day maximum. This really helped provide a feeling of momentum!
Finally, we created a list of things that we needed to "Just Ship It!" This is the final list of features and bugs that absolutely, positively had to be in the first release of Word Portal. This document has 3 sections: Required, Done and Post-release. We started by evaluating our current game state and putting everything into the required section. We then went through each item and bumped everything except the "min ship" features and bugs. This was HARD! There are a log of things on the post-release list that we really wanted to finish before shipping the first production build, but at some point you have to "Just Ship It!"
For each item, we ask:
Unfortunately, the closer we got to launch, the longer the "above the line" list became - mostly due to last-minute bugs from feature testing or new issues introduced as we evaluated on more platforms with more beta users. Each new item is reviewed with the same criteria above before getting onto the list. Even items that can be fixed quickly are punted if they don't meet the criteria.
For us, 75% of the items dropped below the line and won't be in the first release! After 10 months of work, this really hurts initially, but gets us to the first ship line much more quickly. Getting to first ship is really, really important for a number of reasons:
With all that, we've pushed our iOS and Android builds this week. They will be available for download very soon. There's a tonne of work left to do (that 75% plus all the deferred bugs) but we're pretty happy with the overall result. The Windows Phone release is delayed a couple of weeks due to plug-in issues, but will be available in early June if all goes well.
What's your story? How do you get to first ship? We'd love to hear from you: firstname.lastname@example.org.