Is it “Steve Jobs Finished”?

Oftentimes when a software engineer says he’s “finished” with something, the engineer actually means he’s written a bunch of code that isn’t tested, is missing a bunch of functionality, and which nobody has hooked up to the rest of the system, and it will actually be another 3–6 months until the feature he’s working on is actually finished.

I myself am guilty of this. Understand, though, that the engineer is not straight-up lying. He probably has been working on one or more tasks and has legitimately completed some of them. That said, looking at the project holistically, as a good manager is apt to do, this definition of “finished” is very different from what she had in mind when asking the question.

Now, don’t get me wrong. I blame managers just as much as engineers for this conundrum. Too often, when a manager asks is it finished? she is asking a leading question that implies you’d better answer Yes to this oversimplified question or I’ll be upset with you.

What we need is a way to disambiguate these two definitions of it’s finished:

  1. It’s finished, I have completed the small task I am currently working on.”, from:
  2. It’s finished. Everything has been fully integrated. Corner cases have been thoroughly tested and we’re confident it is bombproof. We have incorporated feedback from our beta testers, and we’re ready to launch it to the public later today. It is elegant and simple to use. Holistically, it provides a really great experience that you and the company will be proud of”.

The problem is, usually managers are asking about (2), whereas engineers provide an answer to (1).

My proposal is we disambiguate the two by asking Is it finished? to get an answer for the former, and following it up with Is it “Steve Jobs Finished”? to get an answer for the latter.

The test for whether or not something is “Steve Jobs Finished” is simple. Imagine you worked at Apple in 2010. Would you be prepared to demo what you’ve been working on to (the late) Steve Jobs (someone with notoriously high UX standards) and a room full of VPs and board members, and tell them with a straight face that it is ready to ship to the public, and not get your ass laughed out of the room (and possibly fired).

It takes a lot of work for something to be Steve Jobs Finished”. It’s usually not something an individual can achieve. At a minimum, it requires that your work has been fully integrated into the product you’re building. This requires collaboration with UI/UX designers, frontend engineers, backend engineers, the documentation and marketing teams, and many others.

To be clear, features are not commonly Steve Jobs Finished” until they have been worked on for a very long time. The bar is extremely high. Many products ship before they are Steve Jobs Finished”. Do not be ashamed to answer “No, not yet”. But do use the question as a jumping off point to figure out what work remains to be done to create a solid final product. For example: “We are going to need to integrate my work into both the Web UI and the iPhone app. Then we will need to spend several weeks testing it and incorporating each other’s feedback. Eventually, we will need to update the product documentation, and create a new release package.” Or even better: “I have finished my current tasks, but I think we need to go back to the drawing board because the design is not user-friendly. Also I have concerns about performance under heavy load.”

Notice that the question Is it “Steve Jobs Finished?” is less about the work you’ve personally done, and more about how completely and compellingly your work has been integrated into the whole package.

Finally, I do want to stress one thing. I believe the question Is it “Steve Jobs Finished?” is so important as a disambiguation tool that we need to protect it from inflation. It needs to be unacceptable to declare something Steve Jobs Finished” — if it is not — simply to get your manager off your back or to avoid an awkward situation at a meeting. Managers, likewise, never expect the answer to be “Yes”. Instead, expect the answer to be “No”. If your engineer says “Yes”, be skeptical, or even call bullshit on them: “Really? Steve Jobs, rest his soul, would have been willing demo what you just showed me at the 2010 WWDC?”