You've probably noticed this before: You ask someone how long it would take to implement a feature and the response sounds amazing - only a few hours or days! Fast forward two weeks and the status is still "almost done." What happened?

In the vast majority of cases it boils down to simple miscommunication. By phrasing the question as "how long would it take to implement," you kick off a self-imposed challenge in the engineer's head to figure out how quickly they could build an MVP. As you'll see below, the resultant estimate is only 20% of the actual work that remains to be done.

In this article I'll attempt to de-mystify the engineering process by comparing it to an easy-to-understand task: writing an email.

💡 The Scenario 💡

Imagine you're writing an email that goes out to your entire mailing list by default. You are writing in several languages that are not your mother tongue (the email will change languages depending on the reader). The content consists of text and images, and it can be accessed on desktop, tablets, and smaller mobile devices.

You can break the above scenario down into the following stages:

  1. Writing the initial drafts for each language
  2. Asking others to proofread your drafts
  3. Revisions
    1. Typos / Grammatical errors
    2. Clarifying confusing messaging
    3. Improving the "voice" of the copy
    4. Making the call-to-action clearer
    5. Repeating the above for every language and for every revision until no more revisions are needed.
  4. Testing the following:
    1. The email changes languages appropriately depending on the reader
    2. The email displays properly across devices
    3. Analytics tracking behaves as expected (# of email opens / clicks)
    4. Repeat the above for every issue identified until no more issues
  5. Sending the email

Every one of the above points has a counterpart in engineering.