In an interview, earlier this year, my interviewer asked me: “How do you ensure that you are building the correct thing, once you are given the specification of a project?”.

My answer back then was a variation of the following vague points:

“I do not develop in a vacuum, I do not take the specification run away for a month and then come back with something. Instead, I try to keep the stakeholders of the project (users / managers) in the loop from early on. Every time I achieve a milestone, I present it to them and ask for feedback. I want them engaged and enthusiastic about the project. Yada, yada…”

All of this above is true. I do believe this is the correct way to ensure that you are building the correct thing. I do all the things I mentioned above, but in the way I answered, I did not provide any actionable piece of information to the interviewer. Looking back at it, what I really wanted to say is:

“To ensure that I build the correct thing, I start with the Front End. That simplifies the interaction with the users from the early stages of the product and allows me to course-correct when things diverge from requirements.”

Case Study — www.cashflow.finance

www.cashflow.finance was my moonlight project for 2018. It is a budgeting app, similar to mint.com, but more privacy-focused. (It is currently in beta, so you can subscribe if you want to be part of the test group.) There are few things that are special about this project:

It was one of my 4 New Year Resolutions for 2018, which meant that I really wanted to have it done by the end of the year (today).

I did not have a clear business model. I was building it mainly for myself, which meant it was never top priority.

As a result, I started working on this project on 4 discrete occasions. Every time I worked on it for 2 days, after which priorities changed and I was pulled into something else for several months.

After each multi-month break from this project, I would start it from scratch, but from a different angle.

Each of the screenshots below was taken after exactly 2 days of development for each attempt. It is a powerful illustration of how far you can get if you start with the Front End.

Take 1 — Starting with a single feature