Puffin: An 80 Hours to MVP Retrospective

After 80 hours of development on Puffin, a work planning/tracking app for IOS, the buzzer has sounded and it’s time to look at what I accomplished.

The purpose for this MVP was to replace the spreadsheet that I had been using to track my work session.

Work Session Spreadsheet
My existing mid-tech method for tracking my work

What I managed to accomplish at the end of 80 hours

What went well?

Gaining clarity on the tracking portion. My attention was initially focused on the standup aspect of the app, so it wasn’t until I created a spreadsheet to track my work sessions that my understanding of what I wanted became clearer. I don’t have a desire to track hours specifically, that feels like a regression to my previous 9-to-5 work life. But I do want is a way to know when I am working and for how long in the overall context of my life. I’ve become more protective of my free time and wanted to make sure I wasn’t spending too much time working on any one project. Conversely, I still wanted to make sure that each project was getting the attention that it deserved.

What didn’t go well?

I spent an inordinate amount of time wrestling with the a few things that I thought would go smoother, namely the calendar. I’m using a 3rd party component because I wanted to save time. I soon discovered that my situation would still require making tweaks. I need a weekly view of the calendar and that means that I still have to adjust some of the settings. I still have to create a way to display the relevant information for a given date range. That said, it presented an opportunity for me to learn more about calendars and date calculations (Yippee!!) and this can be applied to an existing product Gobo.

On the project level, I didn’t do a great job at switching between this project and others. Part of the reason I’m working on Puffin is to create a tool that allows me to move more seamlessly between my projects.

What I learned?

I need to tone down the color usage in my designs.

Simulator Screen Shot - iPhone 6s - 2018-09-24 at 09.29.04
So much Blue!

I have a habit of picking a primary color for each new app idea and having it permeate all aspects of the design. While it works well for the icon creation portion of the project, it tends to make my screens overwhelming. I’ll change my approach to using color more judiciously, which will keep my designs in line with where things are now. I also find that using non-standard fonts is distracting and feel out of place on my device.

On the coding front, I experimented with creating all of my views in code, instead of using storyboards. I’ve tried going full storyboard in the past and now was on the other in of the spectrum. I learned so much about layout with this approach although it was a bit slower. Taking advantage of playgrounds in the early stages should help create a faster feedback loop. I’ll be taking a hybrid approach moving forward as I still see some advantages in using storyboard in my process.

What still puzzles me?

The app is still missing crucial connective tissue. While I’m clear on of the individual components that I need/would like to have, I’m struggling to create a cohesive vision. One of my biggest challenges is determining the correct entry point into the app. I’m not satisfied with the current information hierarchy. There are already too many tabs and I haven’t gotten the planning portions in.

What would I do differently?

My primary focus when I started was in the daily standup aspect. I was attempting to replace my daily journal with an software solution. It wasn’t necessarily the wrong way to go, as I made discoveries along that allowed me to throw away much of my early work. And that’s fine. Early versions don’t have to last. They’ve served their purpose as prototypes that I could use, learn from, and discard. As in writing, I have no issues with “killing my darlings”.

I’d also document the intermediate stages, There is value in being an “app historian” and capturing thoughts and decisions throughout the stages of development. Tracking what assumptions were made at the beginning and how/why they changed could be helpful further down the line. When revisiting features, there may be valuable historical information in determining the optimal time for if/how/when they should return.

Is it worth it to keep working on this? Why?

I’m still deeply interested in seeing this product continue. I find myself using the session tracker portion daily and it has replaced the spreadsheet in conveying how I’ve been spending my time. I’ll continue development by integrating the missing components and discussing them in further posts.

This MVP was a success and I’m looking forward to applying the lessons learned to the next one.

The Least You Can Do

Mom: “Ray, the least you could do is…”
Dad: “The least I could do is nothing.”

I often heard this dialogue between my parents when I was young. My mother would express displeasure about something that my father did/didn’t do. She would express a desire for a little more effort (usually in the form of some small gesture).

“Ray, the least you could do is…”

His response was always the same.

“The least I can do is nothing.”

It was my earliest introduction to my Dad’s personality.
It was sarcastic.
It annoyed my mother to no end.
And to a 10-year old weened on comedy, it was incredibly funny.

I was always looking for ways to inject the phrase into conversations. I even tried to mimic my Dad’s delivery, down to the smirk, head tilt and raised eyebrow.

As an adult, I would learn 2 things:

  • No one I dated would ever find it humorous/clever and no amount of nodding and winking would save me
  • The Least You Can Do is a powerful concept when used for good

On the path of 80 Hours to MVP, I found myself revisiting and repurposing that phrase. Instead of stopping at literal interpretation, I turned it on it’s head. By doing two simple things, I turned what was a joke into an effective approach for maintaining momentum in pursuit of my goals.

The first part is turning the phrase into a question. What is the least I could do? I find that asking questions keeps thoughts flowing and prevents me from getting stuck. For example, when I’m debugging, I ask myself questions to work my way through the current state of a problem to a viable solution. However, that alone would not transform the phrase into a powerful tool.

The second, equally important, part is adding an actual outcome. By providing a narrowly defined outcome, I can devise a pathway to completion. What is the least I could do to achieve the desired outcome?

I find this approach effective at both the macro and micro levels. In determining the success metrics that I defined in the Kickoff Interview, I have provided the macro version. I know what would make this endeavor successful in my eyes. The least you can do is the defining trait for the MVP.

Success requires consistent action. The difficulty is in the implementation and it’s easy to get stuck in the details. If you’ve spent too much time working through issues, frustration and discouragement can set in. Many projects are abandoned when some seemingly trivial tasks become more difficult and start to eat away at your time. It is at this point that you’re most susceptible to quitting.

You must resist the temptation to weigh your endeavors with the scale of frustration.

It is at this point that going back to the mantra of the least you can do proves effective at the micro level.

For example, in implementing the MVP for Puffin, I knew that I wanted reports on my activities. I knew implementing something robust would take too much time. Even implementing a chart library was going to eat into my development schedule as there was still a learning curve. So I asked myself, what’s the least I can do to get some metrics for my work activity? I decided that instead of providing a fancy chart, I could provide aggregate date (e.g.. total # of sessions, total time worked). In doing so, I had one of the solutions the app was designed to provide (how much did I work today?).

Another example of where I use this technique is in fitness. It’s hard for me to stay in shape on the road, since I tend to get tunnel vision on projects and am loathe to actually go to the gym. I solved this problem by asking what’s the least I can do to maintain a basic fitness level? My MVP of fitness is 30 minutes of HIIT training 3 times a week. And even when I’m struggling with motivation, I take it one level lower and focus on the least I can do to kickstart this workout. For me, the answer is usually a minimal action of few basic stretches/jumping jacks just to get my body warmed up. I then build on the inertia and add another small chunk and before I know it, I’ve completed 30 minutes.

Setting minimal metrics provides a clear stopping point as well. If I lack knowledge or experience in an area, I can complete the minimal actions given my current level and return at a later time, when I’ve acquired sufficient skills. By putting an cap on this iteration and enhancing it later, I minimize delays, the accompanying frustrations and maximize efficiency.

Make the least you can do work for you.

80 Hours to MVP: Kickoff!

“Begin with the end in mind” – Stephen Covey

The first step in our 80 Hours to MVP requires us to make a jump forward in time. For this, we’ll take a cue from author Stephen Covey and “Begin with the End in Mind”. It is the 2nd habit covered in his bestseller The 7 Habits of Highly Effective People.  Using visualization, we can prepare ourselves for success. You’ve no doubt heard countless stories of how athletes use visualization to prepare themselves for success on the playing field. I was introduced to this technique in an undergrad Sci-Fi Literature class in which I was tasked with writing a resume representing my completed writing career. It was a great opportunity of project myself into the future and look back at the choices that I would like to have made.

In applying visualization to my development projects, I complete a self interview about the completed project, which helps get my initial vision out of my head and into a tangible form. I’ve used various templates but most recently I’ve settled on using questions that I’ve seen on Apple’s App Store “Meet The Developer” section. Getting featured in the App Store is a goal I’d like to achieve so it’s not a stretch to imagine how I would answer these questions.

Let’s take a look at the questions and see how they can help.

What problem were you trying to solve with this project?

Starting with our WHY is critical as you should have a clear idea of the problem that you are trying to solve. It doesn’t have to be earth-shattering to be worthwhile, it just needs to be clearly stated. Referring back to the answer to this question during the development process can help you stay on track and prevent feature creep.

What was your biggest challenge?

This is a funny question to me because I have always been wrong in retrospect. Imagining the future won’t prevent mistakes from being made. There are many assumptions in the beginning, particularly because the are so many unknowns.

What turned out to be easier than you expected?

This question is similar in nature to the previous one and can be just as difficult to answer. There’s probably at least one aspect of this project that will be much easier than initially imagined.

At what point did you realize that this was going to work?

What would the project look like/do at a minimum for it to be viewed as a success. It is that point at which it is determined to “work”. Use this to define success milestones for the project.

How and where does everyone work on the this project?

Answering this question provides an opportunity to get a handle on logistics. Are you working on this project alone or with others? If working with others, how will you communicate? How often will you meet to discuss progress or issues?

What advice would you give to your younger self?

This question was the impetus for the 80 Hours to MVP approach. After completing the Gobo app, I realized I could’ve gotten to a usable version much sooner by thinking/shipping smaller. There will almost always be something that you’ll wish you’d known when you started.

What’s next?

After the MVP is complete, what are the next steps? Think about both the obvious (e.g. additional features, other platforms) and not-so-obvious (e.g. marketing campaigns, press releases, support) actions you can take.

Once you’ve completed the MVP, go back to this initial interview and go over the questions.

  • How accurate were you?
  • Which assumptions were right/wrong?
  • What would you do differently?
  • Are there any additional questions that you would’ve have asked at the beginning? (feel free to add those to your template)

80 Hours to MVP

I started 2018 with a grand plan of having 10 apps in the App Store by year’s end. I would split my time between developing apps and embarking on a new career in voice over. I had broken the plan down into four 13-week segments, each with a one week retrospective/break at the end. By the end of the 2nd quarter, it was obvious that my approach was not providing the visible gains that I expected. Only Gobo, an expense tracking app for iOS, was on track for release, with older projects stuck in Development Hell. The cascading effect was that my blogging had stopped as well (what was I going to write about if I wasn’t making “progress”?)

My frustration was growing. It wasn’t as if I wasn’t working every day. I had a daily standup, task lists and bi-weekly retrospectives. All for a one person team.

Could the problem be some flaw in my process?

It is too Agile? Not Agile enough?
Do I need to use storyboards? Should I write everything in code?
Should I use React?

Why was I even doing this in the first place?

This entire endeavor was self imposed. If I didn’t want to continue, I was free to stop.

So what was the point of it all?

I simply enjoy making stuff. Completed projects provide self-affirming feedback, further powering the confidence/competence cycle. It’s a drug with a potent, sustainable high.

So rather than packing it in and accepting defeat, I’ve decided to try a feasible middle ground, between the equally disappointing quarter length projects and the hackathon/death marches that left me physically and mentally drained.

80 Hours to MVP

Nothing earth-shattering. Any product idea has to become a deliverable product within 80 hours of starting.

And then it’s DONE.

Pencils down.

Bottle it and ship it.

Why 80 hours?

While working on my 2nd app, GWTA, a simple transit app, I tracked my hours and saw that from the beginning to App Store submission, the process had taken me 79 hours. So I settled on 80 hours as a manageable time frame. It’s large enough to engage the entire creative process without feeling burn out. It’s also short enough to force design/development decisions to be made. GWTA doesn’t have all of the functionality that I wanted in a first version but it exists.

Done is better than perfect.

What’s Next?

My next 80 Hours to MVP project is my work tracking/daily standup app, Puffin. I’m starting over with it, keeping only the app icon that I designed earlier this year.