The Cocoa Nomad Podcast: Weekly Retro #2

In this week’s retrospective, I talk about how my hackathon project didn’t go as smoothly as planned, how changing countries is disruptive to my routine, and how my June Challenge will allow me to get reacquainted with some old tools. 
You can listen to the Cocoa Nomad Podcast on the following services:
I’d love to hear from you. Reach out with comments, feedback or show ideas on Twitter or Instagram

Cocoa Nomad Podcast: Weekly Retro #1

Retrospectives are helpful in managing your progress towards goals. They allow you to access what’s been working well and what may need to change. This episode is the 1st of weekly retrospectives in which I’ll share my goals, progress, setbacks and lessons learned.
Show Links:


You can listen to the Cocoa Nomad Podcast on the following services:

Anchor FM




I’d love to hear from you. Reach out with comments, feedback or show ideas on Twitter() or Instagram

Cocoa Nomad Podcast: Accountabili-buddies

Today, I talk about the benefit of having accountabili-buddies, people that you meet with frequently to hold you accountable for the goals that you set and willing to help you achieve them. Whether it’s an informal call or a formal mastermind group, it’s beneficial to have others invested in your success.





Show Notes:

Blog Post: Accountabili-buddies


Remember when you were a little kid and you went on school field trips to the zoo or museum? Each person was assigned a buddy, someone to keep track off so that no single person wondered off, got lost or left behind. You could be sure that you didn’t miss the bus, unless of course you both decided to bunk off and make your own adventure. But even then, at least you wouldn’t get into trouble alone.

As an adult, I often find myself getting lost or getting behind in the passion/side projects that I’d really like to see move forward. Even armed with a plan and productivity software, like Trello, it’s still easy to lose you way. I realized that what I lacked was a companion, like I had on the trips of my youth. It’s for this reason that I started making “Accountabili-Buddies”, people who come along the journey.

The kind of buddy you want

How Does It Work?

Schedule a periodic meeting (no more than 30 minutes) in which the two of you can review your progress. You can do this in person or over the internet depending on your location. During the session, each person will state what they have done and what they plan to do before the next planned session. You can also use this time to demo something that you’ve been working own and get feedback or talk through challenges. If you’re familiar with Agile practices, this may sound a bit like a standup or sprint review. It’s quite similar, albeit a bit less formal and one-on-one. I prefer this to having a larger meeting such as a mastermind group as it allows each person to be more completely involved and not get “lost in the sauce” of a larger group.

Does it have to be someone in my field?

Not necessarily. You don’t work in the same industry nor have the same goals. At the museum or zoo, my buddy and I weren’t always interested in the same thing. I may be into butterflies or Impressionism but my buddy isn’t. It doesn’t matter. The point is that we’re there to support each other. You can work out what to see (review) during the sessions. That may ebb and flow based on what each person is working on at the time. I’ve found that getting a different perspective is helpful in how I am viewing my work. For example, I used to have a weekly session in Medellin with a friend with a project management/design background. He helped pull me out of a “feature-based” approach by challenging with questions about the “story” behind each screen. It was a nice reminder that even though I was the first user of the app, I wasn’t the only one and that I was bringing assumptions into the user experience that I needed to question.

Where Can I Find A Buddy?

Reach out to people in your social or work circle and ask if they are interested. It could be someone whose work you admire or who’s opinion you value (regardless of domain). It could even be a friend that you’d like to communicate with more often. Having an Accountabili-Buddy is great way to keep communication lines open with people you value. Be creative in thinking of people that may work as well as the projects that you bring into sessions. You’ll be surprised. I’ve had 5 different buddies in the last 3 years, each starting with different goals and rooted in various projects.. I still meet weekly with two of them via Google Hangout/Skype/Zoom. With one of them, we have each worked on 3 separate projects this year alone.

Respect the Calendar and the Clock

Make a point to respect the meeting time and each other. When I place this time on my schedule, I don’t move it unless it’s absolutely necessary. It reinforces in my mind the value that each session brings. That being said, it’s important to be understanding when things come up. Everyone has their respective responsibilities that require attention. It’s not lost on me that I have the luxury of a more flexible schedule than most and am able to reschedule when needed. Sometimes, you may just have cancel a session and that’s OK too. Just don’t make it a habit. If a timer frequency isn’t working, simply adjust it. It’s more important to be consistent than dogmatic about how you started.

Honesty is Critical

The most important ingredient to successful sessions is honesty. We need to hold each other’s hand but also hold each other’s feet to the fire. Just remember that the purpose is in support of our goals. We all need it, even when it doesn’t appear that way externally. Challenge your buddy to keep moving forward but balance it with encouragement along the way. Nudge, don’t push. If a project isn’t working, suss out if the problem is you need to move on or simply to “push through the dips”. A supportive and objective ear is valuable in discerning the difference. Don’t be afraid to express your opinions. I’ve gone back to the drawing board after I was told that a particular implementation was hard to understand or just “ugly” (my buddy didn’t use that word but I could tell from the delivery). I appreciated it because it saved me from shipping something that wouldn’t have been as well received. Don’t let your buddy go out in a ridiculous looking outfit. These sessions should be a sounding board, not an echo chamber.

Don’t be this kind of buddy

Periodically Reevaluate

Life happens and there’s no point in having another meeting that brings stress or comprises your valuable time. You probably have enough of that at work/home. These sessions should be things that you look forward to. If you find that they aren’t providing value, joy and/or satisfaction, don’t be afraid to stop doing them. Being honest with your buddy, especially if this is a friend IRL, is far more important. You can always find another buddy or pickup sessions again at another point in the future.
Give Accountabili-Buddies a try and see if it helps you move toward completing something that you’ve been wanting to accomplish.

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.

Retrospective Feb 25 – Mar 10


Without a struggle, there can be no progress

— Frederick Douglass

I’ve been struggling but I’m finally seeing progress! With each iteration, I’m streamlining the process. The biggest obstacle for me is in keeping things simple and focusing on the essential needs. The reality is that there will always be something “wrong”, so I have to continually make a decision and move forward, making improvements as I go.

The final sprint of the first 12 week year is upon me. With the stated goal of 10 apps this year, I will spend week 13 assessing the results and planning for the next quarter. It’s time to transition to the next country. Colombia has been great but it’s time to move on.

Learning Cocoa (iOS/macOS)

Last Sprint This Sprint

DTSEssentials Framework: Shared Code for iOS/macOS apps

Having a second app use the framework has helped highlight issues that need addressing. Many of the methods calls are too complicated or make incorrect assumptions made about their usage.

Last Sprint This Sprint
  • Extensions for UIBarButtonItem and UIViewController
  • EmptyDataView for List View
  • Refactor List View with simpler convenience init method

Gobo (iOS): Nomad Expense Log

Beta is out! Have received lots of good feedback. Thanks to all the testers

Last Sprint This Sprint
  • Settings
  • TestFlight Beta Submission
  • Form validation
  • Exchange Rate support
  • Improvements per Beta feedback

Puffin (iOS): Daily Standup

Development has resumed! Using the lessons from the framework code and Gobo beta to make changes. Keeping functionality simple to get to beta this sprint

Last Sprint This Sprint
  • Update data model
  • Daily Standup View
  • TestFlight Beta Submission

Voice Over Work

VO gigs are steady from the trainer. App work has delayed my auditioning.

Last Sprint This Sprint
  • VO gigs via trainer
  • Audiobook is awaiting proofreading.
  • VO gigs as they arrive


Seeing the benefits from adding the boxing workout back in. It’s important to switch up the exercise regimen to keep things interesting.  Adding some yoga movements into the mix to increase flexibility.

Last Sprint This Sprint
Walking: 154,661 steps (11,047 /day) Walking (avg. 10000 steps /day)

Reading List

Didn’t get any book reading done during this sprint. Switching to a new daily approach should help with consistency.

Retrospective Feb 11 – 24



A lot of people in our industry haven’t had very diverse experiences. So they don’t have enough dots to connect, and they end up with very linear solutions without a broad perspective on the problem. The broader one’s understanding of the human experience, the better design we will have.

— Steve Jobs

Last week was missing a post because I decided to switch to a 2 week period. While the one week version was good for creating a sense of urgency, the downside was an unnecessary pressure that didn’t comport with the reality of my goals. I took a step back after a particularly draining few days and realized that such a myopic view of my progress was negatively impacting my outlook. Progress isn’t always linear. There are good days and bad ones. On balance, things are going well.

Learning Cocoa (iOS/macOS):

Last Sprint This Sprint

DTSEssentials Framework: Shared Code for iOS/macOS apps

Added some helpful updates to the framework. Finally got a version of my FormViewController done that I likes, only to discover an existing library. Still, the learning process was beneficial.

Last Sprint This Sprint
  • ViewController Containment extensions
  • FormViewController
  • UIKit extensions

Gobo (iOS): Nomad Expense Log

Beta was delayed but I’m within a few days of getting it out.

Last Sprint This Sprint
  • Updated Screen Designs
  • Bug fixes for issues updating entries
  • Basic stats for expenses
  • Form validation
  • Exchange Rates
  • Settings
  • TestFlight Beta Submission

Voice Over Work:

Still haven’t gotten to the new VO platforms yet. Have to get that done this sprint. I landed another audiobook narration too, which is great.

Last Sprint This Sprint
  • 7 VO gigs via trainer
  • Submit 3 auditions on ACX
  • Audiobook Narration
  • VO gigs as they arrive


Holding steady with the step count. Back to boxing as main part of workout regimen (no bag work/sparring yet). I want to add capoeira back in but I need better knee support.

Last Sprint This Sprint
  • Workout: 200 cal/session
  • Walking: 158,821 steps (11,352 /day)
  • Workout: 200 cal/session
  • Walking (avg. 10000 steps /day)

Reading List:

Last Sprint This Sprint
  • Black Panther – Christopher Priest run
  • Batman – The Court of Owls