There is no universal method to ship software. Different methodologies optimize for different goals, and all of them have downsides.
First, Take a Look at Who the Customer Is
- Expensive software means predictability is key while shipping. Customers need your product.
- A lower (or no) price tag means that you should focus on UX. Users who don't need your product have to want it.
Next, Assess How You Deploy and How Much You're Willing to Risk
- Your deployment model affects your release tradeoffs.
- Deploying in the cloud gives you total control over the runtime environment of your software.
- Deploying onto a customer's device means the once and future cost of doing a release is radically higher.
- Your deployment model also affects risk.
- A consumer business can afford a lot more risk than an enterprise software business.
- The speed at which you fix your mistakes can be as important as how bad the mistake was in the first place.
How You Ship is One Strand of Your Cultural DNA
- How you ship is not just process, it's culture and identity. Swapping out a process is easy. Changing culture is hard.