We’ve all heard the saying: “they couldn’t see the forest for the trees”. I’d like to run with that metaphor, because I think I’ve been encountering this as a major issue in my personal product development process.
Imagine a forest. Imagine you’re tagging trees in this imaginary forest – your job is to break the forest down into manageable chunks, then break those chunks down even further, then select individual trees to mark.
What I do is, I go deep into the forest, and start worrying about tagging trees deep in the heart of the forest, instead of first splitting the larger chunk into smaller pieces, smaller parcels of land.
To use another metaphor, I’m doing a depth first search when I should be doing a breadth first search. Occasionally, the problem happens in reverse, too, where I’m so overwhelmed by decisions that I can’t dive into one in particular (but that’s rare).
I’m seeing this crop up, more and more, as I try to build micro apps. I helped build Vennly with the ever-wise guidance of my friend Dane, but we very carefully scoped things so that my habit of diving into the deep end and not coming up for air wouldn’t affect us so much. I wouldn’t get into so many rabbit holes.
Geez, I’m really mixing my metaphors here. But you know what I’m talking about, if you know product development. It’s a classic scoping and timeboxing issue. I’m trying to be more self-aware regarding this habit, but of course, instinct kicks in, and sometimes you just hack on stuff for a couple hours before you stop and think, “hey, maybe this isn’t the way”.
What I need to do here, is “keep to the center”. I need to pay attention to details when those details are pertinent to the task at hand. I’m repeating some of what I said in my last post, but it still rings true.
It’s not all bad, though. I’ve been doing a damn fine job of getting around roadblocks, of finding the simple solution “needle” in the “haystack” of potential decisions to be made. I just need to stick to it, not get discouraged by dead ends or branches that don’t work out. It happens, after all.
This habit extends beyond coding, come to think of it…
I do this with my personal todo list as well. I’ll try to do as much as I can ahead of time in anticipation of failure or obstacles, e.g. looking at cars before I have housing sorted. Forget putting the cart before the horse – I’m putting the car before the house!
Most of the time, it’s just browsing, but still. Time allocation matters.
Mind you, I’m just rambling here. This is stream of consciousness you’re getting here. It has that peculiar tone that this kind of writing always has…hard to get around it. I need to work on more intentional writing. I need to work on more intentional, proactive action in general.
For now, though, enough navel gazing. Here’s what’s next for my birthday wishlist micro-app:
- Fine-tuning the fetching of metadata on embedded links, so it looks good when you paste a link
- Creating a special sharing link, so people other than the list’s creator can see what has been bought already
- Fixing the bugs I’ve created in my little deep dive I did tonight
Some of this really speaks to the rabbit hole problem. For example, I’m fine-tuning the metadata fetching, and the way a user might add metadata to a link, and I don’t even have the sharing and the core experience down yet! It’s like pouring a basement for a house, then finishing the basement before the rest of the house is built.
Anyway, I’ll likely sketch out the big picture next, and see which sections of the app forest are unexplored, and which have detail work already. That’ll tell me which details I need to pay attention to, and which can wait.
Til' next time, this has been Austin, doing deep dives and rambling about it so you don’t have to.