ANYONE CAN SHIP SOFTWARE that works great and leaves us feeling great, but few of us actually do. More often than not, our products arrive late, miss the real customer need, or cause you and I to develop another ulcer. This is a problem. One of the reasons we have these problems is that we don’t know how to put all the pieces of the shipping puzzle together in the right way. We sometimes forget essential steps or get wrapped up in the wrong details, and we end up charging blindly ahead, depending on luck, hustle, and good will to drive the product out the door.
This approach is not sustainable or efficient, which is why the best teams at Amazon don’t work like this. It’s also not fun, which is why the best teams at Google don’t work like this either. Luckily for you, the path to shipping greatness is composed of only seven straightforward steps that any team lead can follow, and generally results in both success and fun.
Step 1 is defining the right product. You won’t achieve greatness if you do a fantastic job shipping crap. The right product is one that serves a real customer need that many customers share. Meeting this need in a unique and meaningful way is your mission, and you’ll organize all your efforts to ship around this mission. For example, your mission will inform your strategy, which is your unique approach to your market. Once you have a mission and strategy, your product will be much more clearly defined and much less likely to be crap, because it will conform to a great strategy. You’re already done with step one.
Shipping step 2 is to define your product as clearly and with as much detail as you can handle. There are 10 major ways to do this, including writing a press release, building a living FAQ, writing the functional spec, and more. By the time you’ve completed these 10 steps, you’ll have aligned your engineering team, engaged with your management or investors and gained their buy-in, and generally excited everyone. You may also be ready for a break.
Step 3 is designing the user experience. Working from the user out, you’ll iterate with your design team to build a beautiful, intuitive, and simple user experience. You’ll ask questions to keep the team focused on your mission, and you’ll help glue the engineering and design teams together so you design something that can be built with software.
In step 4, you need to do some basic project management—not too much and not too little. When your engineering team has mockups and requirements that they can write code against, you will start to do some basic project management. You’ll help your team track their deliverables, you’ll help them say no, and you’ll keep the scope in check.
Step 5 is when you start testing, because code will start coming in and the product will start getting real. Your velocity as a team will increase, and your testing organization will start to work in earnest. This is a less creative but very exciting time. As the team lead, you’ll lead a bug triage process and make important decisions about what changes you can afford to take in your initial version and what must be fixed before you ship.
You’re almost ready to launch in step 6, but before you release your software you need to ensure that you know what success will look like, and that means establishing metrics by which you’ll measure greatness. Because you’re following a good process, your team should have some engineering bandwidth available at this point to help instrument parts of your user experience that weren’t already instrumented and to help build dashboards. Your bug count will hit zero and you’ll be ready to measure your launch. Time to buy the champagne and put it in the fridge.
Finally, Step 7 is when you launch. Launching a great product is not as simple as just uploading some files to a server. You will need to plan your marketing and PR, and make sure that you go through a launch checklist. Invariably, something will go wrong and you’ll need to cope with it; if you cope with your launch crisis gracefully, most users won’t notice and you’ll be on a path to greatness, which you can see in your dashboards.
Shipping doesn’t seem too hard at this level of detail, and that’s the idea behind the process. Each step has concrete tasks and will build on the prior stages, helping ensure that you build a happy team and a successful project.
Throughout these steps you will find that we’re constantly working to reduce the scope of the project, simplify the user experience, and move more quickly from one stage to the next. Moving through this process quickly will help you iterate, and iterations are great because each iteration is informed by customer feedback about the previous one. Even though each version of the product is different, the process will be the same and you’ll work through the same steps. So now let’s look at them in detail, starting with defining your mission and strategy.
3.136.22.192