How to prevent stagnation while building products alone
Your product’s a vessel for your fantasies, developer. It promises a journey to lands where you could be who you hope to be; where your life could be what you want it to be. But a short journey, it does not promise.
As you sail, uncertainty blinds you like a fog. Instinct and skill are your compass, but even the best compass is unaware of hidden obstacles. Progress becomes a game of going around surprise-bergs: Huge problems that show up only when you’re right next to them. You dodge them by making sharp turns, and that makes moving forward slower than expected; more trying than predicted. Then in the middle of the journey, things start to feel surreal.
An endless ocean of detail surrounds you. The air’s thick with a fear of drowning in complexity, and you see no land in sight. The details consume more headspace than the fantasy. The journey becomes less adventure, and more task. A sluggishness pushes against you, and your determination pushes against it; you get crushed in the middle, and you realize why some call it a grind.
This is where people and payment help a lot. A crew you believe in, a steady salary, users you care for, investors you trust, and reliable revenue; all soothe like a balm; all externally applied when you need them. But a solo-developer often starts with none of these.
You’re both captain and crew; both unpaid and unknown. The work of staying afloat, in shape, and moving forward, is entirely yours. Here lies the monster: When you’ve no one to share the burden with, when there’s no steady reward, and when the fantasy gets lost in an ocean of details, moving forward can feel like a drag. Eventually, enough to get you to stop.
Work can become an impossible push. I call this self-consumption because it feels like you’re feeding on yourself to keep moving; like a hungry parasite tricking you into thinking that rising discomfort is normal. When work stops or slows to a crawl, knowing the entire journey depends on her, the solo-developer feels like a guilty captain shamefully lost at sea. But stopping or slowing down is a natural reaction to a simple imbalance: Too much discomfort with too little relief. Thankfully, it’s an imbalance we can help for a short while.
Until you discover an external source of comfort (like people and payment), you can tempt yourself to move forward by exploring your path playfully. Imagine you’re standing at the tip of your ship. A dense fog surrounds you; making it hard to see more than a few feet ahead. A bucket full of stones is by your side. You pick a stone from the bucket, and throw it in front of you. It zips into the fog. THUD! You hear the stone hit something. You pick up another one, and throw it to your right. THUD! It too hit something. You pick up another stone, and this time you throw it to your left. You close your eyes, and a second later: SPLOOSH! Ah! Water. Maybe the path is clear there; maybe you can move a short distance in that direction without bumping into anything. While developing a product, a similar device for quick exploration is something called an implementation intention.
This is how you use one: You simulate work in your head, predict obstacles in your path, and then plan ahead on how to handle them when and if they show up. It’s a popular strategy in the self-regulation literature with strong effects on protecting people from emotional discomfort and distraction[0][1]. It’s helped people with performance anxiety in sports, test-taking, social and general anxiety[2], and with specific emotions like disgust and aversion[3]. It appears to work so well because you proactively search for obstacles to include in your plan, making your reaction to them less discomforting when they show up[4].
Here’s how a solo-developer uses this: For all work, whether that’s on a big feature or a small function, you ask yourself How much time can I afford to spend on this without feeling bad?, What can obstruct me from finishing this within that time?, and How am I going to avoid these obstacles?
By asking yourself these questions, you prepare for the non-linear path you’ll need to take to move forward. More importantly, it includes your needs as an individual in the problem solving process. Your time constraints, your distractions, and your need for progress, if regularly acknowledged, means you’re intelligently burning the only fuel that drives solo-development: You, the sole developer.
References
- [0] Achtziger, A., Gollwitzer, P. M., & Sheeran, P. (2008). Implementation intentions and shielding goal striving from unwanted thoughts and feelings. Personality and Social Psychology Bulletin, 34(3), 381–393. https://doi.org/10.1177/0146167207311201
- [1] Gollwitzer, P. M., & Sheeran, P. (2006). Implementation intentions and goal achievement: A meta-analysis of effects and processes. In M. P. Zanna (Ed.), Advances in experimental social psychology, Vol. 38, pp. 69–119). Elsevier Academic Press. https://doi.org/10.1016/S0065-2601(06)38002-1
- [2] Stern, C., Cole, S., Gollwitzer, P. M., Oettingen, G., & Balcetis, E. (2013). Effects of implementation intentions on anxiety, perceived proximity, and motor performance. Personality and Social Psychology Bulletin, 39(5), 623–635. https://doi.org/10.1177/0146167213479612
- [3] Gallo, I. S., McCulloch, K. C., & Gollwitzer, P. M. (2012). Differential effects of various types of implementation intentions on the regulation of disgust. Social Cognition, 30(1), 1-17. https://doi.org/10.1521/soco.2012.30.1.1
- [4] Bayer, U. C., Gollwitzer, P. M., & Achtziger, A. (2010). Staying on track: Planned goal striving is protected from disruptive internal states. Journal of Experimental Social Psychology, 46(3), 505–514. https://doi.org/10.1016/j.jesp.2010.01.002