Breadth after Depth: Don’t Set Yourself Up to Fail in Software Projects

It is very easy for software product owners to be lured into the trap of designing software to solve a broad problem for many people right from the start. This is a mistake. Most ideas start to scratch an itch or build something that is unique to a particular company or group. Then as you think more about solving it, the natural tendency is to go bigger and think “hey, this could also solve these similar problems!” You increase the scope of your project to encompass those problems as well. After all, it’s software, there’s no cost to make your product just a bit more generalized, right?

No. Again, this is a mistake.

Build to solve the smaller problem. Learn the domain by focusing on solving the problem you started off with from A to Z. Once you have done that, expand to similar problems or refactor your software to a higher level of abstraction.

For example, say you rent a house and find it tough to communicate with your landlord. You decide you want to build software to help landlords communicate with their tenants. Great. As you start thinking about it you realize that you could also solve the problem for people who rent out their houses to vacationers for the summer or for commercial apartment building landlords to communicate with many tenants in a building. After all, they’re basically the same problem, right?


They require different models, different abstractions and different user interfaces. Solving everyone’s problem means solving no one’s problem. Instead it means getting bogged down in creating software generic enough to not exclude any potential customers. It may seem like you’re making big fancy plans and building elegant software models when in reality you are severely lengthening your time to market and setting yourself up to build a product that doesn’t fully solve any one of your potential customer’s problems.

Here’s what not to do:

  • Don’t try to solve a problem that can be described in two words like “Project Management” or “Travel Guides” or “Technical Training” or “Note Taking.” Your first product should be much more specific. “Note taking for software developers,” for example.
  • Don’t start trying to sell something that has even the smallest geographic considerations to customers globally. Instead, pick a country or state and go from beginning to end with just that segment of the market.

An example in the software world is Ruby on Rails. It didn’t start as a broad framework. It started as a product–Basecamp. It wasn’t until after Basecamp was successfully built to completion (depth) that 37 Signals extracted Rails as a general framework that could be used to build other web applications (breadth). Contrast that with Meteor or These are frameworks built to solve huge problems for many people. They are promising but have been extremely expensive to build and growth has been quite slow, in fact for, it seems to have stopped completely.

Resist the temptation to start by building for a broad market. Focus. Build a product that completely solves a small problem, then expand it.

bridal hats bridal hair accessories

Myth and Matter

I’ve started a newsletter!

Join me, a natural, habitual collector of information on a random journey through languages, spoken and coded, literature, culture, science, learning and many other topics. This is a casual, infrequent email conversation that will point you off in fun & interesting directions.

Conscious Consumption

A couple weeks ago I posted about “Radical Creation”–stopping reading, watching TV, listening to podcasts etc. to re-focus on creating content and move away from constant consumption. It was a successful experiment. I came away from it refreshed and with a more conscious approach to media. I’m no longer cold-turkey, and have moved back toward the middle; toward what feels like a better place. This has resulted in me setting a few informal rules:

  • Give time to think, write and process anything you consume. If you haven’t done that for the last thing you read, listened to or watched, don’t start something new.
  • Write about it. Even if it’s just jotting down a quick note, write something about everything you take in. This is to help remember it later, but more importantly, to remember it now. 
  • Triage. Consume all types of information, but be aware of the relative value. It’s not always easy to put something down midway through, but do a gut check. If it’s not working out, move on.
  • Avoid “The Shallows“. It’s easy to spend all available time reading Twitter or Hacker News, but there is more out there. The best fish aren’t found in shallow water.

Since taking that approach, I’ve been writing significantly more, have re-started some side coding projects and have generally felt more in touch with the present and more conscious of how what I consume affects me. It’s been a good reset.

Tips for Interviewing and Telling Good Stories

Telling stories is hard. Getting people to tell them can be hard too, but once you do, there is nothing as captivating. Recently Tim Ferriss interviewed Alex Blumberg of Gimlet Media on how to tell and elicit engaging stories. The interview is specifically geared toward giving advice to podcasters on how to get people to tell good stories, but can also be used to help you relate information in a way that people will identify with.

Blumberg’s goal when editing a podcast is to draw in his audience with memorable stories. We’re “hard-wired” to want to hear a story and if you can do that with your content, people will listen. He suggests learning to “listen to your own boredom.” In personal interactions we try to meet people halfway to understand their perspective and maintain interest, but the Internet isn’t a personal interaction. If you’re feeling a twinge of boredom or drifting while editing your content or speaking, chances are, you have already lost your audience.

In the same vein, when you are reviewing your content, be aware of any feelings of confusion. The axiom applies here as well: don’t assume people will meet you halfway. Even a subtle feeling that what you are working on might be confusing is an indication that it will be very hard for your audience to follow. Stop and clarify.

Blumberg also has a couple specific techniques and questions to use when interviewing to help get you to that moment where someone tells a story with real emotional appeal. A question he finds useful is “what do you make of that?” It is a little awkward to ask, but it is open-ended and tends to draw out people’s feelings on a subject. He also asks “why is this story meaningful to you?” After using these questions he suggests you “sit back and shut up.” Let your interviewee talk, give them time and you will the story you are looking for.

Part of the interview comes from a Creative Live class that I haven’t seen ($99), but looks interesting.

Evernote’s Strengths and its Fatal Flaw

I use Evernote heavily. It is an innovative product with a great design aesthetic from a company that seems to have a very good business model. All this has rightly earned Evernote an avid user base and a growing ecosystem. The problem with Evernote though, is that it was made for storing a specific type of information but in reality, it is used in less effective ways for storing much more than that.

First, let’s talk about the information that Evernote is really good at storing. I’d place this in two categories:

  1. Ephemera. Things like grocery lists, blog entry drafts, quick reminders. Anything that you will keep around for awhile, then be fine with it disappearing forever, either literally (being deleted) or practically (being replaced by other, newer information and only found by search.)
  2. Chronological data. Journal entries, receipts or bills come to mind. Anything that is primarily organized by the date it was created.

For these two categories, Evernote is practically perfect. Its native apps are nice and ubiquitous, its web app is amazing. None of the problems with Evernote stem from execution of its core functionality.

So that’s what it does well, what’s the problem? The problem is that for most things, people don’t think in lists and we don’t want to retrieve information that way.

Once something is saved in Evernote, really the only way to find it is by searching. If you’ve tagged your entries, you can browse by tag, but that is a seldom used feature. If you use notebooks, they can aid in finding notes, but after awhile, the lists become difficult to manage and it is hard to find and surface things you’ve stored further back than the recent past. Evernote has one other feature for premium users that surfaces related notes. This is getting much closer to solving the problem I’m talking about, but it relies completely on their AI (which is pretty good!) and is limited to just a few related notes.

What if you could take the is related notes concept and apply it much more predictably, more rigorously, to all your information? It would make notes easier to find, a feature that is hugely important. After all, why bother writing something down if you’re almost certain to never see it again. Still, as important as discoverability is, an even more important problem that a better connected way of storing notes would solve is enabling you to see patterns in the information that you care about. Patterns are at the root of creativity. Patterns are what enable us to take two or more different ideas and combine them in novel ways. This is where art and business are born.

This very type of pattern finding facilitated by good tools for information storage and retrieval is something I’m very interested in and something I’ll be writing about here more.


The Myth of Staying Forever Young

If anyone understood the human condition, it was Joseph Campbell. This is him in 1949 on what he calls the ‘inverted emphasis’ of staying forever young:

It has always been the prime function of mythology and rite to supply the symbols that carry the human spirit forward, in counteraction to those constant human fantasies that tend to tie it back. In fact, it may well be that the very high incidence of neuroticism among ourselves follows from the decline among us of such effective spiritual aid. We remain fixated to the un­-exercised images of our infancy, and hence disinclined to the necessary passages of our adulthood. In the United States there is even a pathos of inverted emphasis: the goal is not to grow old, but to remain young; not to mature away from Mother, but to cleave to her. And so, while husbands are worshiping at their boyhood shrines, being the lawyers, merchants, or masterminds their parents wanted them to be, their wives, even after fourteen years of marriage and two fine children produced and raised, are still on the search for love—which can come to them only from the centaurs, sileni, satyrs, and other concupiscent incubi of the rout of Pan…

He is principally directing this criticism to men who refuse to grow up, but also to women for fulfilling the vacuum of finding good men by appealing to fantasy where reality comes up lacking. The youthful reluctance to pull away from the mother that he describes is very Freudian. At the end of life we are faced with another, this time Jungian, conflict:

What is difficult to leave, then, is not the womb but the phallus—unless, indeed, the life-weariness has already seized the heart, when it will be death that calls with the promise of bliss that formerly was the lure of love.

The purpose of these descriptions is to point out the place for myth in our lives. Myth and ritual help us to cease to cleave to our mothers when we are young, then to accept death when we are old. It moves us through life in a way that is sublimely, universally human. Without myth, we go through these transitions alone, clumsily. With myth, we are part of something bigger, part of the hero’s journey. As Campbell says, with his unique and chilling talent for language:

Full circle from the tomb of the womb to the womb of the tomb, we come: an ambiguous, enigmatical incursion into a world of solid matter that is soon to melt from us, like the substance of a dream. And, looking back at what had promised to be our own unique, un­predictable, and dangerous adventure, all we find in the end is such a series of standard metamorphoses as men and women have undergone in every quarter of the world, in all recorded centuries, and under every odd disguise of civilization.

That discovery, that our plight is not unique but is a “series of standard metamorphoses” should be liberating and unifying. It elevates our tribe from being the small group of people we know personally to being the human race.

The Hero With a Thousand Faces p. 10-11

special occasion dresses store

Radical Creation

I’ve reached saturation point with consumption. I’ve become buried in books, movies, articles, Netflix and Amazon Prime shows, documentaries, podcasts, Wikipedia pages. All of them are excellent and are only getting better. I have come to a point though where all that amazing information and content is dead-ending in my brain. Clearly there is value in the good conversations I’ve had about all of those things. Cultural literacy is an important and probably under-appreciated pursuit. Also, apart from any educational benefit, there’s value in the human experience of enjoying the experience of someone else’s creation. For now though, it’s time to restore some balance. Consumption has almost succeeded in pushing out all creation for me.

Maybe that’s a bit hyperbolical. I’m a software developer and spend most of my days writing code, which is a very creative act, for my employer. I blog here semi-regularly and keep a journal. Something is missing though. So, to try to figure out what, I’ve started an experiment in radical creation. Starting about 5 days ago, I have cut out all consumption except for work-related reading and the occasional time spent with my family watching a TV show. For me, this means that there has been no reading books or listening to audiobooks, no podcasts, no articles and no games (almost, I have still been playing some trivia games). I’ve even cut out music with lyrics, but still use instrumental music to increase concentration.

It has not been easy. At all. Consumption is a habit and an escape mechanism. I’ve realized how often I’d pick up a book or article rather than take time to prioritize my actions. Catching myself has been tough and when I realize that I’m about to go in for more, it’s very easy to make justifications of how tired I am or how hard I’ve worked and hey, don’t I deserve to just chill for a bit?

After just a few days though, I have had some promising results. The most notable result is that I’ve been writing more. I’ve made brief forays into fiction in the past, but I feel like my approach this time is more systematic and deliberate. I’m not sure what the result will be, or really even what the goal of my writing is, but it has already been very rewarding. I feel like doing some writing myself gives me more permission to be a better critic of what I consume once I go back to reading in a more balanced way.

It’s been surprising how, once I get past the initial resistance, I can get myself to go into a creative mode at times when before I would have written off the possibility due to distractions or fatigue or whatever other justification I needed. In small chunks of time, like walking to lunch or to the bus stop, when I’d normally have headphones in listening to someone else’s ideas, I’ve come up with some pretty good ideas for my own writing or coding. I’ve also spent more time meditating, journaling and exercising and I’ve picked up an old side project and started thinking about it and working on it some. All this in just a few days!

I can’t say I’m not excited to pick back up the books I was reading and there are a few shows that I am really looking forward to, but this experiment is just beginning and I can already tell it’s one that I won’t regret. If you’re feeling a similar over-saturation with consumption, try your own experiment in radical creation and see how it goes.


An Ideal Day

Over the last few years I’ve noticed a trend in books and conversations dealing with the day-to-day routines people follow. Whether it’s writers or artists and their rituals or people from other cultures, we seem to be fascinated with what people do with their time. Despite the fact that it’s often people with semi-celebrity status whose routines get published, I think this trend is healthy and in a way, anti-celebrity. It shows that even the most accomplished people tend to have a day-to-day ritual they follow, or try to follow, and that often it’s not too far off from what is achievable by almost anyone. In that way, I find that sharing daily routines is something that brings people together and motivates us to live better lives.

So, with that prelude, I’m going to diverge a bit from the trend and and not share my actual daily routine, I’m going to share the one that I aspire to. Each part of this has been in my routine one time or another, but I haven’t had the full thing all at once for any sustained period. Here it is:

6:30 – 7:00 Wake up and meditate for 20 to 30 minutes. I like Samatha and Vipassana style meditation.
7:00 – 8:30 Actively read literary fiction or non-fiction. For me, this is reading and taking notes with the mindset of eventually summarizing what I read in written form.
8:30 – 9:00 Breakfast.
9:00 – 12:00 Write code for either work or a personal project. I love the combination of creative and technical satisfaction I get from writing code. I also love the immediate feedback. This is how I most easily find “flow.”
12:00 – 1:00 Lunch. I like to take long lunches at one of the amazingly varied restaurants around Seattle.
1:00 – 3:00 More writing code. This could also easily be substituted for writing prose or researching work or project related ideas.
3:00 – 3:30 Catch up on the news. I don’t like to be immersed in news, but I like to have a time-limited period of the day where I can indulge my tendency to keep up to the minute with the latest in technology and other news.
3:30-4:30 A long walk or swim. I love going on long walks either around my neighborhood or the city. This can be with friends, my wife, with an audiobook or just enjoying walking alone. I’ve never had swimming as part of my daily ritual, but if I ever get back to living close to the ocean, I’d love to do that. This could also be some other form of exercise. I’ve never been one to go to the gym, but I wouldn’t be opposed to it.
4:30 – 7:00 Family time and dinner. This sometimes involves board games or card games, drawing or just chatting with my wife and boys.
7:00 – 7:30 Playing music (I try to play banjo), ideally with someone else.
7:30 – 9:00 If I could somehow pre-arrange to have an awesome conversation with my wife or friends or someone I’d like to meet every day, I’d love that. Those types of conversations tend to be memorable, life-changing and some of my favorite moments.
9:00 – 10:30 – Reading, fiction.
10:30 – Sleep

That’s it! Feel free to share your routine if you’d like to. For others, check out the book Daily Rituals by Mason Currey, Tim Ferris‘ podcast or pretty much any biography or autobiography.


Musings on Learning French

One of my goals for 2014 was to learn French. I went into it feeling fairly confident. After all, I learned to speak fluent Spanish and they’re both Romantic languages. Besides, it’s the age of apps and there are way more resources now than there were back in the late 90’s when I learned Spanish. The big difference is that with Spanish I was living in Mexico for almost 2 years then later got a refresher while living in Uruguay and Argentina for another year. This time around, with French, I don’t have the benefit of being able to pack up and move to a French-speaking country. The other possible disadvantage, as people are all too eager to point out, is that I’m a significantly large number of years older than I was when I started learning Spanish.

In more than one way, the experience has been humbling. Progress has been spotty and slow. I’m nowhere near where I imagined I’d be at the beginning of the year given the time I’ve put in. On the other hand though, it has been exhilarating starting over with learning something new. There have been many moments where I remember just how much real effort I had to put into Spanish. It’s easy to look back on it and think “ah yes. I was young and living in Mexico, the language practically taught itself to me.” But really that wasn’t the case. As I spend time learning French, I’m brought back to the many, many hours spent with my head buried in Spanish grammar books, making and studying flashcards and pocket-sized lists of words, and probably most importantly, fumbling through conversations with unsympathetic interlocutors over and over, just trying to make myself understood.

It makes me wonder, have the 15 years that have passed since then really significantly dulled my language acquisition skills? Had I approached Spanish as casually as I have for many of my efforts to learn French, would my learning have been just as slow? Probably close to it. I don’t feel more forgetful or more hardheaded, I simply feel that I haven’t created the opportunities to cement what I’m learning in my mind by going out and actually speaking French. It seems that the consensus among linguistics experts is that my ability to learn a language has actually, physically, deteriorated. I’m still not willing to believe that though.

Apart from the language itself, a rewarding part of learning French is the chance I’ve had to dive into French culture. I’ve tried some French recipes, which for a practical non-cooker, has been a stretch, but surprisingly fun. I’ve watched tons of French movies and YouTube videos. I’ve tried listening to French podcasts and radio stations with varying degrees of cognition. I’ve read books and poetry by French authors (mostly translated to English). I still have not, as I mentioned before, reached out and talked with real, live French people. Which brings me to the conclusion of these musings.

My goal at the beginning of the year was to learn French in 2014, then Russian in 2015. Instead, I’m going to spend 2015 working more on French. I’m going to try to take some of the lessons I’ve learned, and will write about here soon, to heart and be more deliberate with my practice. Most importantly though, I’m going to get out and speak some French.