Explainer Technical

How to Ship a Software Project

I’ve spent the last 14 years building software, off and on. Over that period I’ve been on the hook for dozens of ship dates. Some I missed. Many I hit.

Through all those adventures, I’ve settled on a basic process I think anyone can use to get from deep-in-the-weeds to a triumphant ship. None of this is especially innovative. Plenty of people likely ship using some variation of this exact procedure. But I wanted to write it up in case it was useful.

1. Pick a ship date—but don’t get attached to it

Start by choosing a date on which it would be nice to have shipped your project. Any criteria is valid here. Business needs, deadlines imposed by programs to which you want to apply, even press strategy.

But don’t get too attached to this ship date. You have no idea if you can make it. At this point it’s an experimental constraint, which will guide the rest of your planning process.

2. Determine the minimally viable feature set your project needs for a successful ship

What does the audience of your project need to be better off than if you’d never shipped the project at all? What is the simplest feature set you can deliver to make an impact?

by Henrik Crisp

You’re reading this because, presumably, you would like to ship. So it’s essential you understand that you can’t immediately ship everything your mind imagines. You can’t ship perfection. Perfection and shipping hate one another, so you have to pick one. I suggest picking ship, but that’s up to you.

Shipping requires hard choices. The more things you try to bundle into a shipping project, the more risk you incur. The risk multiplies invisibly, as it’s impossible to know ahead of time about complex interactions that produce bugs, reduce performance, or otherwise introduce surprises.

The fewer things you try to ship at once, the less risk you incur. So when you make the list of things you want to see in your first ship, do everything you can to keep it as short as possible.

3. List all of the dependencies that must be satisfied for your minimally viable feature set

What needs to exist for these features to work? How much already exists? Get your mind around all the dependent tasks, from things that need to be built, to things that must be bought, to things that must be designed, in order for these features to be ready for public consumption. With luck, you’ve already got some of these dependencies handled.

Can you license or purchase things instead of building them yourself? Can you leverage open source software rather than rolling your own solutions? Think through how many off-the-shelf opportunities exist to satisfy your dependencies. But also remember there’s no free lunch: integrating outside resources can still be costly.

4. Estimate how much time it will take to satisfy your dependencies—then multiply

Software development time estimates are comically error-prone. But if you price the estimation risk into your estimate, you can earn yourself some breathing room. There will be bugs that keep coming back. There will be surprises as you integrate third-party tools and content. There will be tasks that seemed easy at the outset, but whose implementation reveals a raft of additional complexity.

That’s life in the software business.

As you create an inventory of your dependencies and the time you estimate they’ll need to cook, multiply by 2.5.

Maybe that seems excessive. But it’s a concession to the fact that our frail meat brains are bad at storing and modeling the total complexity of a software system. When you made your initial guess, you were quite possibly ignoring more than half the picture. Price that limited perspective into your final guess.

Or don’t. It’s your ship. You can use whatever multiple you feel comfortable with here. Long experience tells me that for my estimates, though, I usually want 2.5x.

Don’t forget time for testing your project ahead of ship. I can’t tell you how long this will take, since different environments have different constraints. If you’re shipping native code for approval in the iOS App Store, for example, you’ll want to do much more thorough testing than if you’re shipping a web app you can update at-will.

You’ll also want to budget time to make fixes based on what you learn in the QA process.

5. Add up your time estimates and compare the timeline to your ship date

If you’re very lucky, your time estimates and your ship date mesh perfectly.

But you’re probably not lucky. You’re working with software, and software delights in thwarting our optimism. What if your requirements push far past the ship date?

You’re going to be tempted to manipulate the estimates. Don’t do this. There’s a reason we estimate in pieces and add things up, instead of working backwards from the ship date.

In this process, here are all the things we’ve considered in order from most real to least real:

  1. The dependencies for our desired features
  2. The minimally viable feature set
  3. The time estimates
  4. The ship date

The ship date is the least real thing we’re dealing with! Don’t let it drive.

That said, if you absolutely must treat the ship date as a hard constraint, you have options. None of them include goosing the estimates.

6. Make hard choices: trim scope or move the ship date

I know. You want a pony.


But now you know what the pony costs.

You’re going to ship the pony 18 months later than you would have liked. Are you going to have enough money to survive for that extra 18 months? Will you give up an important competitive advantage by taking that extra 18 months? Are you OK waiting 18 extra months before getting feedback from customers about whether you’re even on the right track?

Maybe you’re fine moving the ship date. Sometimes that’s the right call.

But often, this is the point in the exercise where you take out your knife and start trimming scope. Maybe you’re not going to ship a pony. Maybe it’s time to ship a bicycle instead. With the knowledge of the time and financial cost of your minimally viable feature set, maybe you can find inspiration to pare down even more.

Trim scope until your estimates for the remaining work—which you have not goosed—give you a few days of margin under your ship date.

Now you can get to work, having a clear idea of what’s worth prioritizing and what can wait. You can repeat this process whenever you feel your project getting off track or losing steam. It helps me to track my requirements and dependencies on something tactile, like notecards or sticky notes, but you can document the process you’ve gone through using whatever systems make sense for you and your team.

But, Danilo, this isn’t the agile/scrum/[cargo cult methodology] way!

Whatever, man. I’m sure it isn’t. This is the way I know to get a project out the door on a date agreed upon by all parties, with scope documented for all parties, with trade-offs understood by all parties.

Within that, I’ve seen it work alongside tools like sprints, planning meetings, stand-ups, and retrospectives. I really like doing all of those. If you have existing systems you like to use to communicate and collaborate, you can keep them.

But you need a way to understand the relationship between costs, scope and outcomes, and to communicate those constraints across all functions. This is the basic approach I’ve long used for that. I hope it’s helpful in your adventures.

Further reading:

1.0 by Rands: “Shipping a 1.0 product isn’t going to kill you, but it will try.”


Why Apple chooses thin devices over longer battery life

Apple is never happier than when announcing a flagship product has been made just a little thinner.

It happened last week with the Apple Watch, which is 0.7mm thinner than its predecessors. Before that, the iPhone lost more than half its thickness over the course of a decade. The iPad has slimmed down significantly from its first iteration. And who could forget the introduction of the MacBook Air, plucked with fanfare from a manilla envelope.

Steve Jobs loved a good reveal.

Every time this happens, you can set your watch by a chorus of onlookers and faithful Apple customers both asking the same thing:

Why can’t we have a few more hours of battery life instead?

With all the extra volume Apple’s miniaturizations have carved out over the last ten years, it’s conceivable they could have doubled the battery capacity of their most popular products. Smaller components means the possibility of more room to store energy.

Instead, we get a march toward smaller and lighter devices.

There’s a strategic reason for this which can teach us a lot about 21st century economics.

Information goods

Information technology pervades every aspect of our culture and economy. Even physical products now have deep information roots. As Paul Mason’s Postcapitalism describes:

In hi-tech engineering, before a single piece of metal is shaped, objects are designed virtually, tested virtually and even ‘manufactured’ virtually — the whole process modelled from start to finish — on computers. The mistakes are discovered and rectified at the design stage, in a way that was impossible before 3D simulations came about.

Which means that the outcome of a research and development process can now be cheaply duplicated by anyone who has access to the basic machinery to convert digital plans and schematics into finished goods. Competitors can produce alternatives or counterfeits that cost little more than the raw materials, tools and labor necessary. Because these competitors have minimal R&D costs, they can undercut the original producer, destroying their profit margins.

In Mason’s words, information tech “corrodes” prices over the long term.

Many who shop on Amazon or Ebay have first hand experience with this phenomenon. Both services are rife with counterfeits sold as the genuine products of the brands they’re emulating, often at discount. This presents meaningful challenges for small companies selling basic hardware. Elevation Lab designed a clever but easy to manufacture hook for storing headphones beneath your desk. They quickly found themselves competing with counterfeiters:

They literally reverse engineered it, made steel compression molds, made the logo wrong, used fake 3M adhesive that’s very thin and was diecut smaller than the top (measure once, cut twice), they use a lower durometer silicone so it flexes more, its has huge mold parting lines, and the packaging is literally photocopied then reprinted (you can tell by the lack of image contrast). And they had to apply a big sticker to cover our SKU with theirs. But to the untrained eye, it would pass.

Elevation Lab was unable to maintain a monopoly on the basic inputs that yielded their product. The design schematics, manufacturing tooling, and even packaging could be approximated by a third party wielding the power of information-based design and production.

It is into this future that Apple is sailing.

Apple’s monopolies

Here it is helpful to define our terms.

Monopoly is a loaded word. The Bell Telephone Company once held an absolute monopoly on all US telephone service. Microsoft had a monopoly on computer software in the workplace, controlling more than 90% of desktops in the 1990’s.

But monopoly can exist even without this level of market dominance. You can be the exclusive purveyor of a product without being the exclusive purveyor to an entire market.

This is the position where Apple finds itself. It doesn’t come close to selling all of the world’s smartphones.

Yet it maintains a tight control over several inputs that make an iPhone:

  • iOS, the operating system that drives all its non-Mac computers
  • Their processes and designs for creating the custom chips that now drive the iPhone
  • Expert hardware engineers who can push the state of the art into new scales
  • Processes, equipment and raw materials for producing consumer hardware at extraordinary scale, to extremely fine tolerances.

Miniaturization as monopoly

So why is Apple making things thinner, rather than expanding battery life? Why are they sacrificing headphone ports to push their designs into thinner and thinner dimensions?

The answer is that anyone can make bulky tech with massive battery capacity.

But no one can build devices that are as miniaturized as Apple’s.

Through miniaturization, Apple creates products whose subjective experience of niceness cannot be matched. By exclusive control of cutting edge, global-scale manufacturing processes and the silicon necessary to produce both powerful performance and good enough battery life, coupled with an exclusive operating system written to match and enhance the capabilities of the hardware, only Apple can make iPhones.

Which means if you want a phone that feels this nice, you have to pay prices set exclusively by Apple.

Apple is staking its future on its ability to make products that are seamlessly integrated and ever smaller, lighter, and thinner. For now, it’s working. They’re worth a trillion dollars. As manufacturing processes advance and evolve, Apple will have to evolve along with them.


Read six books to understand the coming financial crisis

The world is in trouble.

My generation can’t afford to do things like buy homes and start families. In the United States, birth rates have declined steadily since the last financial crisis.


And we’re not out of the woods yet. As births hit a thirty year low, economists wonder if this signals yet another recession. As would-be parents lose confidence in their ability to generate the income necessary sustain a family, they logically cut back on their conception plans.

Meanwhile, even without an explicit crisis, we’re living in difficult times. The share of national income going to working- and middle-class Americans continues to drop. Adjusting for inflation, workers are making less on average than they did in 1988. Meanwhile, profits soar:

Why is this happening? Why is the economy leaving so many people behind? How can we have so much profit, but so little going to everyday people?

The answers are complex. Finance is a system that’s almost as complicated as modeling global weather patterns. The shape of today’s world is dictated by the goals of financiers, political elites, and ultra-rich business leaders. Their incentives are shaped by complex financial instruments, tax codes, and most of all, a deep and gnawing fear—central to the lives of every human—that no amount of money will ever be enough.

Understanding our place in this system is the only chance we have of healing its sicknesses. But how can we make sense of something with such global complexity?

We need to learn how the economy actually works. Unfortunately, our economics classes didn’t offer us nearly enough tools for this job.

Here are some books that can help.

Labor and Monopoly Capital: The Degradation of Work in the Twentieth Century

Labor and Monopoly Capital: The Degradation of Work in the Twentieth Century
This widely acclaimed book, first published in 1974, was a classic from its first day in print. Written in a direct…

Have you ever felt that something is wrong about work? Ever get to Sunday evening with a feeling of dread, knowing your week is about to start and you’re not in control of your everyday life? Even with jobs we like, with coworkers we love, work can feel so disempowering and frustrating.


In Labor and Monopoly Capital, Harry Braverman tries to explain:

The reduction of the worker to the level of an instrument in the production process is by no means exclusively associated with machinery. We must also note the attempt, either in the absence of machinery or in conjunction with individually operated machines, to treat the workers themselves as machines.

It’s profitable to codify the process of creation as a series of repeatable, scalable, discrete steps. Production is an enormous mechanism, of which workers are individual parts. The more fungible the workers, the more control and flexibility the business has over the production process.

Being a cog in the machine doesn’t always feel great. Why do people continue doing it?

First, workers are separated from the means with which production is carried on, and can gain access to them only by selling their labor power to others.


The worker enters into the employment agreement because social conditions leave him or her no other way to gain a livelihood.

Labor and Monopoly Capital is, in other words, an introduction to class relations, who has power in the workplace, and what goals shape the structure and management of our jobs.

Class awakening

There’s a reason I put this book first. The powerful fiction of the American dream discourages us from fully considering class. The deal for Americans is that, with hard work, we should be able to determine our own class. Wherever we are today, we can be somewhere better tomorrow.

Unfortunately, there’s less and less of this that’s true. Class mobility has sharply decreased over the last generation. Class mobility further constricts according to race.

Meanwhile, class—the economic resources we have, the opportunities open to us, and the goals we pursue based on these assets—is essential to understanding why the world works as it does. To ignore it, or to pretend it’s irrelevant, is to blind ourselves to reality.

Debt: The First 5000 Years

Debt: The First 5,000 Years
Debt: The First 5, 000 Years [David Graeber] on

Debt shapes the world we live in perhaps more than any other social construct. Debt determines our individual opportunities. Debt creates reins for foreigners to set the paths and policies of entire nations, without ever loading a single gun. It was debt that created the tangle of financial instruments that led to the 2008 financial crisis.

In Debt: The First 5,000 Years, David Graeber explores its past and present.

I could have begun by explaining how these loans had originally been taken out by unelected dictators who placed most of it directly in their Swiss bank accounts, and ask her to contemplate the justice of insisting that the lenders be repaid, not by the dictator, or even by his cronies, but by literally taking food from the mouths of hungry children. Or to think about how many of these poor countries had actually already paid back what they’d borrowed three or four times now, but that through the miracle of compound interest, it still hadn’t made a significant dent in the principal.

Graeber’s perspective is as much critic as anthropologist, and he works to explain the history of debt better than what we were given in school:

In fact, our standard account of monetary history is precisely backwards. We did not begin with barter, discover money, and then eventually develop credit systems. It happened precisely the other way around. What we now call virtual money came first. Coins came much later, and their use spread only unevenly, never completely replacing credit systems.

Economics: The User’s Guide & 23 Things They Don’t Tell You About Capitalism

Both of these are by economist Ha-Joon Chang. They provide a strong foundation for understanding economics, by explaining how broad concepts fit together, and demystifying common issues in current events. I enjoy Chang’s style: it’s approachable and compelling, while deeply respectful of the reader’s time and intelligence.

In 23 Things They Don’t Tell You About Capitalism, Chang explains the cult of shareholder value, tying its impact back to real events:

Shareholders may be the owners of corporations but, as the most mobile of the ‘stakeholders’, they often care the least about the long-term future of the company


William Lazonick, the American business economist, estimates that, had GM not spent the $20.4 billion that it did in share buybacks between 1986 and 2002 and put it in the bank (with a 2.5 per cent after-tax annual return), it would have had no problem finding the $35 billion that it needed to stave off bankruptcy in 2009.

Chang is also a critic of the thinking that suggests the “the market” is some natural space, where interference from government regulators does damage to its workings. From Economics: The User’s Guide:

Once you know that lots of things that cannot be bought and sold today — human beings (slaves), child labour, government offices — used to be perfectly marketable, you will stop thinking that the boundary of the ‘free market’ is drawn by some timeless law of science and begin to see that it can be redrawn.

Chang is a believer in capitalism, yet a sharp critic of its irresponsible stewards. In his recap of capitalist industry, he gives appropriate attention to the costs borne by colonized peoples:

There is a long-running debate on whether capitalism could have developed without the colonial resources of the sixteenth–eighteenth centuries — precious metal to be used as money, extra food sources such as potato and sugar and industrial inputs such as cotton.While there is no question that the colonizers greatly benefited from those resources, those countries would probably have developed capitalism even without them. There is no question, however, that colonialism devastated colonized societies.


Principles: Life and Work
1 New York Times Bestseller “Significant…The book is both instructive and surprisingly moving.” -The New York Times…

Principles is a victory lap by hedge fund billionaire Ray Dalio. I find a lot to be frustrated by in his analysis of wealth inequality, but I still recommend the book because it reveals much about how the arcane workings of high finance translate to real-world impact.

…in economic terms a chicken can be seen as a simple machine consisting of a chick plus its feed. The most volatile cost that the chicken producer needed to worry about was feed prices. I showed Lane how to use a mix of corn and soymeal futures to lock in costs so they could quote a fixed price to McDonald’s. Having greatly reduced its price risk, McDonald’s introduced the McNugget in 1983. I felt great about helping make that happen.

It’s weird to feel pride about creating an unhealthy fast food staple, but I can’t help but find the process fascinating. Dalio’s tale is one of systems thinking and automated analysis as a path to wealth.

Principles also shows how wealth creates opportunities to protect yourself from economic downturn, in ways that aren’t available or practical to the working and middle classes:

Making a handful of good uncorrelated bets that are balanced and leveraged well is the surest way of having a lot of upside without being exposed to unacceptable downside.

When your resources are limited, so are the bets you’re able to place.


Postcapitalism has an ambitious goal: to describe what comes after capitalism, and to provide an alternative to the looming, ongoing boom and bust crises created by the financial system.

Most compelling about this work is that, while it places its conclusions in rigorous historical and academic context, it has some new conclusions.

While the critics of capitalism have, for a century, clung to the fantasy of its eventual demise, it continues to define our economic reality. Why? Journalist Paul Mason insists it’s because capitalism is an emergent system that adapts to preserve itself:

Kondratieff gave us a way of understanding mutations within capitalism. Left-wing economics had been looking for a process that led only to breakdown. Kondratieff showed how the threat of breakdown usually leads to adaptation and survival.

Intriguingly, it is Mason’s view that information technology is fundamentally incompatible with our existing market premises:

…information goods are corroding the market’s ability to form prices correctly. That is because markets are based on scarcity while information is abundant. The system’s defence mechanism is to form monopolies on a scale not seen in the past 200 years — yet these cannot last.

Tip of the iceberg

Of course, economics is a tradition that spans thousands of years. Six books can’t be more than the barest starting point. Still, if you’re anything like me, your economics education in school did little to prepare you for the complex, messy, unequal world we inhabit today. Hopefully these books give you a starting toolset for making sense of the world as it is, and for imagining a more just and equitable world that could be.