One of the biggest sticking points of being a solo dev is maintaining motivation. I’ve been keeping a journal entry about how to hack my motivation, what works and what doesn’t. Here are the things that have worked.
作为独立开发者的最大症结之一是保持动力。我一直在写日记,记录如何激发我的动力,什么有效,什么无效。以下是一些行之有效的做法。

Convert external sources to motivation 将外部资源转化为动力

I’ve always known that I’m more extrinsically than intrinsically motivated, so I have a couple systems that help to give me bursts of external motivation. For example, the Money Bots, which pop up every time someone subscribes.
我一直都知道,我的外在动机比内在动机更重要,所以我有几个系统可以帮助我获得爆发性的外部动机。例如,金钱机器人,每次有人订阅时就会弹出。

I’m a push notification ascetic, but these pop up right on my home screen. It’s a small burst of motivation every time. There’s a bit of a hedonic treadmill effect; initially a single new subscriber was a massive hit of dopamine/energy, and that’s reduced over time, but they still fuel me.
我是一个推送通知苦行者,但这些会弹出在我的主屏幕上。每次都是小小的动力爆发。有一点享乐跑步机效应;最初,一个新订阅者会带来大量的多巴胺/能量,随着时间的推移,这种情况会减少,但它们仍然给我提供动力。

In a similar vein, I signed up for a service that notifies me whenever someone mentions Chessbook. This is simultaneously useful for marketing, since engaging on socials can help a lot, but it’s also motivating whenever I see people talking (hopefully positively) about the thing I’ve built.
同样,我注册了一项服务,只要有人提到 Chessbook,它就会通知我。这同时对于营销也很有用,因为参与社交活动可以有很大帮助,而且每当我看到人们谈论(希望是积极的)我所构建的东西时,它也会激励我。

There’s also a #pump-up channel with a feed of milestones we’ve hit, like $X MRR, 2,000 discord users, churn rate <6%, motivating stuff like that.
还有一个 #pump-up 频道,其中包含我们所达到的里程碑的提要,例如 $X MRR、2,000 个 Discord 用户、流失率 <6%,等等。

Leave tasks unfinished 留下未完成的任务

I can’t overstate how much this one helps me. I try to leave a task 90% finished at the end of a working session. It feels slightly worse than closing out the work, but it makes starting the next day 10x easier. Having a quick win when I start coding is a massive boost, and it immediately gets me into the flow state. It can’t be too easy though, if all I have left is to run git commit, that’s not enough. Ideally it’s something where I know exactly what I need to do, that will take 5-10 minutes.
我无法夸大这个对我的帮助有多大。我尝试在工作会议结束时让任务完成 90%。这感觉比结束工作稍差一些,但它让第二天的开始变得容易 10 倍。当我开始编码时快速获胜是一个巨大的提升,它立即让我进入心流状态。但这也不是太容易,如果我只剩下运行 git commit ,那还不够。理想情况下,我确切知道自己需要做什么,需要 5 到 10 分钟。

Use the thing myself, as much as possible 尽可能自己使用这个东西

I try to use my own product as much as I can. When someone submits a bug report about some jank, sometimes it’s easy to classify it as a small issue. Then I run into it myself, realize that it really affects the experience, and go fix it right away. Felt pain is way more salient than communicated pain.
我尝试尽可能多地使用我自己的产品。当有人提交有关某些卡顿的错误报告时,有时很容易将其归类为小问题。然后我自己遇到了这个问题,意识到它确实影响了体验,并立即去修复它。感受到的疼痛比传达的疼痛更加明显。

To digress, this also gives me way better product ideas, the best ones I’ve had didn’t come from sitting down and thinking about what people may want, they came from realizing what I myself want.
顺便说一句,这也给了我更好的产品创意,我所拥有的最好的产品创意并不是来自坐下来思考人们可能想要什么,而是来自于意识到我自己想要什么。

Address the pain, instead of pushing through 解决痛苦,而不是坚持下去

There’s always some parts that suck. A neglected area of the codebase, dealing with third parties, releasing new versions of native apps, etc. If I know I’ll have to deal with one of these as part of a task, it can feel much harder to motivate myself to get started.
总有一些部分很糟糕。代码库中被忽视的区域,与第三方打交道,发布本机应用程序的新版本等。如果我知道我必须将其中一个作为任务的一部分来处理,那么激励自己去完成这些任务就会变得更加困难开始了。

The trick, is that you can almost always make these less painful.
诀窍在于,你几乎总是可以减轻这些痛苦。

For example, recently I felt a lot of friction starting a new task because it needed 4+ new endpoints, and that always involved a lot of boilerplate. I have to write the types on the backend, write the same types on the frontend, make sure I get the payload correct, make sure I get the path correct, and nothing is type-checked so usually it doesn’t work the first time. So before starting, I found a RPC library called RSPC, which generates types for me, and makes writing and calling a new backend function from the frontend almost as easy, and just as type-safe, as calling another async frontend function.
例如,最近我在开始一项新任务时感到很困难,因为它需要 4 个以上的新端点,而且总是涉及大量样板文件。我必须在后端编写类型,在前端编写相同的类型,确保我得到的有效负载正确,确保我得到的路径正确,并且没有任何类型检查,所以通常它第一次不起作用。因此在开始之前,我找到了一个名为 RSPC 的 RPC 库,它为我生成类型,并使从前端编写和调用新的后端函数几乎与调用另一个异步前端函数一样简单,并且类型安全。

Not only did this remove the pain point, but I was actively excited to use this new system. I converted a source of friction into a motivation multiplier.
这不仅消除了痛点,而且我对使用这个新系统感到非常兴奋。我将摩擦源转化为动力倍增器。

This is one that’s easy to forget if you’ve worked in bigger companies where you can’t address the pain points of day-to-day development. You’ve probably acquired a sense of futility in trying to address these things. There’s either deadlines to hit, or people to get sign-off from, or you need to write a technical doc on your approach before you get to try it. Being able to just go fix and improve whatever you want is one of the greatest points of being a solo dev, so remind yourself that you can take advantage of it at any time.
如果您曾在无法解决日常开发痛点的大公司工作过,那么很容易忘记这一点。你可能已经在尝试解决这些问题时产生了徒劳的感觉。要么有最后期限,要么需要人签字,要么在尝试之前你需要写一份关于你的方法的技术文档。能够修复和改进任何你想要的东西是作为独立开发者的最大优点之一,所以提醒自己你可以随时利用它。

Do nothing 没做什么

I get sucked into high-tech Skinner Boxes all the time. Reddit, Twitter, YouTube, etc. The best way I’ve found to get out of this is to do it in two steps. First I go from Reddit to doing nothing, then I get to work.
我总是被高科技的斯金纳盒子所吸引。 Reddit、Twitter、YouTube 等。我发现摆脱这种情况的最佳方法是分两步进行。首先我从 Reddit 转到什么都不做,然后开始工作。

Going straight from Reddit to focused work is very hard, but doing nothing is much easier, and eventually your brain calms down and it doesn’t feel nearly as hard to start writing some code.
直接从 Reddit 转到专注工作是非常困难的,但什么都不做会容易得多,最终你的大脑会平静下来,开始编写一些代码也不会那么困难。

I really mean doing nothing; I’ll just sit in front of my screen for a few minutes and as if by magic, the consumption-fueled dopamine-overload fog will lift, and I can get excited about creation and problem-solving again.
我真正的意思是什么都不做;我只需在屏幕前坐几分钟,就像变魔术一样,消耗引起的多巴胺超载的迷雾就会消散,我可以再次对创造和解决问题感到兴奋。

Update my users 更新我的用户

This is a two-for-one, I can both update my users, and motivate myself by looking back on progress. I often reach the end of the month, and find myself thinking “did I even get anything done?”, but then you can write your update for the month, and see that you did get a lot done.
这是二合一,我既可以更新我的用户,又可以通过回顾进展来激励自己。我经常到月底,发现自己在想“我完成了什么吗?”,但随后你可以写下这个月的更新,然后发现你确实完成了很多工作。

Obviously this cuts both ways though, if you really didn’t get much done you’ll see that too, but facing the truth that you’re not getting enough done can be motivating too.
显然,这是双向的,如果你真的没有完成太多工作,你也会看到这一点,但面对你没有完成足够工作的事实也可以激励你。

Get a partner 寻找合作伙伴

This may seem contradictory to the title, but I only said solo dev. I have a partner, who’s way better at everything product/design/copy/etc.
这可能看起来与标题相矛盾,但我只是说单独开发。我有一个合作伙伴,他在产品/设计/复制/等方面都做得更好。

I won’t list all the benefits of having a partner, but I now believe they’re essential, and in any future projects I’ll be making sure to find a partner that complements my skillset while being aligned on the problem. It’s a night and day difference.
我不会列出拥有合作伙伴的所有好处,但我现在相信它们是必不可少的,在未来的任何项目中,我将确保找到一个能够补充我的技能,同时在问题上保持一致的合作伙伴。这是白天和黑夜的区别。

The motivation piece here is mostly around accountability. It’s the same reason that people have gym partners, just having someone that expects you to show up can be powerful. Also if you have a weekly meeting and find you have nothing to talk about, you’re probably not getting enough done, and it’s a salient reminder.
这里的动机主要是围绕责任。这就像人们有健身伙伴一样,只要有人期待你出现就可以产生强大的力量。另外,如果你每周开一次会议,却发现没什么可谈的,那么你可能做得还不够,这是一个重要的提醒。

The other piece is that your motivation and your partner’s motivation will ebb and flow, and it won’t happen in lock-step. It’s very helpful to have someone else still motivated about the project, when you’re not.
另一件事是,你的动机和你伴侣的动机会起伏不定,而且不会同步发生。当你对这个项目没有热情时,让其他人仍然对这个项目充满热情是非常有帮助的。

No zero days, to avoid listless guilt 无零日,避免无精打采的负罪感

Some days when I’m not getting anything done, I’ve got this lingering guilt that I’m having a “zero day”. This prevents me from fully enjoying whatever activity I’m doing. I’ve tried just giving myself permission to enjoy whatever I’m doing, but it just doesn’t work. Ostensibly I’m taking time off and recharging, but it doesn’t feel like that at all – it feels like pushing through. This can lead to a negative feedback loop, where I’m constantly trying to recharge, but just getting more tired.
有时,当我没有完成任何事情时,我会因为自己经历了“零日”而感到挥之不去的内疚感。这使我无法充分享受我正在做的任何活动。我尝试过让自己享受我正在做的事情,但这是行不通的。表面上我是在休息、充电,但其实根本不是这样的——感觉就像是在坚持下去。这可能会导致负反馈循环,我不断地尝试充电,但只是变得更累。

I’ve found the only way is to get some good work done first, then I can be fully immersed in whatever fun slacking-off activity I dive into.
我发现唯一的方法就是先完成一些好的工作,然后我就可以完全沉浸在我所从事的任何有趣的偷懒活动中。

If I’ve got it, use it 如果我有的话,请使用它

Sometimes I’ll be going to bed thinking about a problem, and get the motivation which comes in the moment of figuring things out. I could write it down and get to it in the morning, but most of the time I’ll just get up and work until 4am instead. This is also one of the great parts of being a solo dev. I don’t need to be up at 9am to be available on Slack, so I can use my motivation whenever it strikes me, even if that’s in the middle of the night.
有时我会在睡觉前思考一个问题,并在解决问题的那一刻获得动力。我可以把它写下来,早上再写,但大多数时候我都会起床工作到凌晨 4 点。这也是作为独立开发者的重要部分之一。我不需要早上 9 点起床才能使用 Slack,因此只要有灵感,我就可以发挥自己的动力,即使是在半夜。

This probably doesn’t generalize, but again this is more of a journal entry adapted into a blog post, than it is advice. I’ve always done better with the looser approach of trying to maximize the opportunities for flow state work, than forcing myself to work 9-5 every day, rain or shine.
这可能并不能概括,但同样,这更像是一篇改编成博客文章的日记条目,而不是建议。与强迫自己每天朝九晚五工作(无论风雨无阻)相比,我总是以更宽松的方式尝试最大限度地增加心流状态工作的机会,做得更好。

You have ADHD, getting yourself to work shouldn’t be this hard 你患有多动症,让自己工作不应该这么难

True 😄 真的😄