I've gotten very good at talking myself out of doing any side projects. Finding flaws and planning for failure, the qualities that help me a lot at work, don't let me believe in my ideas enough that I would take them to life.
On the other end of the spectrum is the hopeful entrepreneur making a classic mistake, developing a product before confirming she has a verifiable edge over the competition, and solves a problem real people have. Edward Thorpe said it the best in “A Man For All Markets”: in business, just like in gambling, you only play when you know that you'll win.
I decided that for some current ideas, as well as new ones that I consider viable, I'll withhold judgement. Instead of gauging whether the product would work, I'll take it unconditionally to the landing page stage. It takes almost no commitment and creates no technical debt, it's just a domain and some static HTML. It's a win-win from any point of view: I spend much less time on it than building the simplest MVP, writing a description forces to be precise about the idea and its details, and I can show the result to people, perhaps potential users.
You don't even need a landing page. Market research should come first in talking to your future users. But my ideas usually have me as the user, so I can make the first pass without talking to people.
I'm working on a project right now, and I'll add a link to it to the Projects section soon.
It's too easy to get into the habit of consuming by default: check email, Twitter, Facebook, Slack, Basecamp or a million other services designed to consume our attention. It's funny how “consuming” works both ways.
Producing by default, when you have to restore lost context to continue writing or programming, or drawing after switching away, is much harder, but it's a habit just like any other. Initial friction will go away and you won't feel resistance starting to re-explore your own, not someone else's, ideas.
I see that a lot in myself when starting to write code in an unfamiliar language. My intention is to write the best code I can. In order to do that, I need to read a guide, best practices, examples and try and build a mental scaffolding that will help me produce the code that I want.
But it's too easy to be stuck in the “research phase” as it's called, never doing the work. How am I going to be fluent in a language if I don't practice producing it? How am I going to produce if I don't know how to do that?
There's a catch. Reading leaves few traces in your mind, and when the time comes to write, you feel like gripping thin air, nothing comes out. Try writing the simplest things, make mistakes, no one is judging. Code is meant to be rewritten anyway.
Sounds simple? I get caught often. Just when I think I learned enough, I try writing and find I forgot almost everything that I've read. What was the point of reading then? I could spend that time writing, encountered the problem and would have read the answer the same way.
Ruminating (actually, procrastinating, who am I kidding?) on what makes a day productive for me, I came up with a metric that rings true so far.
It's time spent creating vs. time spent consuming.
Creating is making new things or making things better. Or at least trying. Consuming is usually doing things you shouldn't be doing: reading Secret, playing that game on YouTube because you're too busy to actually play it, picking up your phone every minute to check for notifications.
Now, not all consuming is bad. More often than not, kicking back and reading a book for a while or daydreaming does more good than harm. You can't spend all your active time creating, or you'd run out of creative juice. You need time to rest and recharge.
Still, creating creates (ha!) momentum. I've noticed that if I start my day on a creative note, I get more done. Rarely what we need to do is to consume something, rather it's something we should create: write emails, code a program, present our ideas to other people.
Consuming works the same. If you eat (consume) a cake instead of doing a morning pushup set (creating a better body), you're much more likely to slump on a sofa and watch (consume) another episode of people in fantasy setting killing each other right and left than draft (create) a new blog post.
This reminds me of the concept of stability in physics.
Stability is the ability of a body to restore its balance after a disturbance (change in position or orientation). The quality of the stability is determined by how large a disturbance the body can withstand before the balance is lost. A body that is precariously balanced can withstand only a small disturbance and so has low stability. A body that is solidly balanced can be disturbed greatly and so has high stability.
Consuming is settling on the bottom of a pit: you have nowhere to fall. Stable. Creating is rope walking: at first, every misstep sends you tumbling into the pit. As you learn, even in headwind and with the rope thrashing around, you remain stable atop. When you do fall, you're back on the rope in no time.
So, time spent creating vs. time spent consuming. At the end of the day, concentrate for a few seconds and in your heart you'll know at once whether you've spent enough time creating.