ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

i-have-adhd:一个ADHD开发者自建的执行功能辅助系统

i-have-adhd:一个ADHD开发者自建的执行功能辅助系统 “i-have-adhd” 是我放在 GitHub 上的一个开源项目也是我近半年来最私人的一个项目。它不是一个面向所有用户的效率 App而是我作为一个被注意力缺陷多动障碍ADHD困扰的开发者给自己写的一套环境支撑系统。说直白点市面上几乎所有待办事项软件都默认你“能开始做”但我的大脑恰恰在“开始”这一步掉链子。所以我决定不跟自己的大脑硬碰硬而是动手做一个能把“开始”这个动作变得足够小的工具。这个项目的名字就是我当时的心声i-have-adhd。我不是来给谁科普 ADHD 是什么的我也没有医学背景只是一个有 ADHD 诊断、同时会写代码的普通人。我把自己的生活方式、工作习惯、情绪触发器全部拆开来看最后沉淀成了一套可运行、可修改、可复原的软件系统。这篇文章会把它从头到尾讲一遍为什么现成工具救不了我、我给自己定的设计原则、系统里每一个模块到底解决了什么、以及真实使用四周之后有哪些预设被推翻。如果你也有类似的体验或者你正在给身边这类人做工具希望这篇内容能给你一些不一样的参考。1. 先从诊断室说起ADHD 的真实体验和我的工具价值观很多人以为 ADHD 只是“不专注”这是最大的误解。我自己的体验是我不是不能专注而是无法稳定地控制“专注”这个开关。遇到感兴趣的事情我可以一口气干六个小时不抬头遇到不感兴趣但必须完成的事情我可以在椅子上坐一下午眼前的任务就像一堵柔软的墙推上去毫无反馈。这种状态不是“懒”能解释的因为懒是选择了不做而我是在极度想做的情况下依然做不了。这个项目真正的起点是我某天下午想写一份季度总结结果先花了四十分钟整理桌面文件又用了一个半小时研究某款机械键盘的轴体区别最后打开文档写了三行字然后开始刷手机。那一刻我意识到问题不是我不够自律而是我依赖的“意志力”这个系统在我身上是失效的。我需要把大脑里那些不可靠的环节外包给一个不疲惫、不焦虑、不会多巴胺耗竭的外部系统。1.1 一个典型的工作日到底哪里出了问题我把自己普通的一天拆开来看发现注意力失控是有规律的不是随机发生的。早上十点坐下我最先做的事情不是工作而是“决定先做什么”——这个决定本身就是巨大的开销。我大概会打开邮件看两眼、刷一下消息、查一下天气这些动作都能带来微小的多巴胺反馈于是大脑就赖在这些低消耗任务上不走。真正想开始写代码的时候我又面临第二层阻力任务太模糊。比如“优化登录流程”这句话对于一个正常大脑来说可能已经足够具体但对我来说它意味着要拆出十几个子步骤先看当前代码、找到瓶颈、设计改动方案、动手改、测试、提交……每一步之间的切换成本都非常高。我经常卡在第一步因为“看代码”也是一个需要启动的任务。一天下来我没有产出多少东西却感觉极度疲惫。这种疲惫不是身体的累而是意志力被反复消耗后的空乏感。我需要一个工具能替我做三件事告诉我现在该做什么、把任务拆到不需要思考的程度、在我不想开始的时候推我一把。1.2 为什么现成的效率软件全都救不了我我也像所有人一样试过各种工具从系统自带的提醒事项到那些热门的任务管理软件前前后后用了不下十款。它们不是不好而是从一开始就建立在一个错误的假设上用户会主动去整理任务、会给任务排优先级、会定期回顾。这些行为本身就是执行功能的一部分恰恰是 ADHD 人群最弱的环节。我把它们的问题总结成了一个表格工具类型它假设我会做的事实际情况复杂任务管理软件主动拆解任务、维护子任务层级我连“拆解任务”这个动作都想拖延番茄钟每 25 分钟停下来休息我进入状态需要半小时25 分钟会被强制打断闹钟 / 提醒听到提醒后能切换任务提醒瞬间有效但关闭后五秒我就忘了要去做什么日历严格排期按时间块执行计划我严重低估每件事的实际耗时一拖延就会崩盘说到底市面上绝大多数工具是给“功能正常的大脑”设计的。它们提供的是管理能力而不是补偿能力。我需要的是后者——一个能代替我完成“开始决策”的系统而不是一个需要我先有组织能力才能用的数据库。2. 别人不会告诉你的事我给 ADHD 工具定的六条设计原则既然现成工具不行那就自己设计。但在写第一行代码之前我先做了一件事把自己过去一年里所有“失控”的瞬间记录下来找共同点。最后提炼出了六条硬性约束这六条后来成了这个项目所有功能的设计准则。每条约束都对应一个真实的生理或心理机制不是凭空想出来的。它们不是什么科学定论而是基于我自己体验和个人调研得出的工作假设我觉得对我有效也被不少同类处境的人认可过但你想拿去做自己的工具时还是需要结合自己的实际感受来调整。2.1 时间感失调倒计时比日历更可靠ADHD 人群对时间的感知常常是失真的。我经常觉得“刚才”看手机只过了五分钟抬头发现已经过了四十分钟反过来一项需要五分钟的任务我会在心理上把它预估成半小时。这种时间感知的错位导致我极度依赖“绝对时间”——当一个任务没有截止线时它就是无限延展的我永远无法启动。所以我的第一个原则是任何场景都要有显性的倒计时而不是顺数计时。倒计时给人紧迫感顺数计时只会提醒你已经熬了多久。工作区、休息、阅读、甚至收拾桌面我都需要一个明确的“开始时间戳”和“结束时间戳”。日历上的“上午 10 点到 11 点写方案”对我不起作用我需要一个可以按下去的、会倒数的、会响的番茄钟——但它必须允许我自由调整时长而不是锁定 25 分钟。2.2 执行功能障碍只保留“开始”这个命令执行功能障碍是 ADHD 核心问题之一知道应该做什么、也有能力做但就是无法启动。就像一辆油箱满的跑车却没有点火按钮。我给自己定的原则是系统里所有任务卡片都必须包含一个“启动动作”一个你打开卡片后第一件具体到不用动脑做的事情。比如“写周报”这个任务会被拆成“打开上周的日志文档列出五条已完成事项”启动动作是“打开文档”。只要完成了启动动作这个任务就算被“激活”了后续的步骤因为惯性通常会顺下去。如果打开文档后还是不想干那系统会承认这个任务今天不是时候允许我把它标记为“今天不启动”而不是让我带着失败感硬抗。2.3 注意力的切换成本让环境来适应大脑我的注意力从 A 切换到 B 的成本大概是普通人的三到五倍。一旦进入“心流”任何打扰都会让我产生强烈的抵触情绪而一旦被打断重新进入状态又需要很久。所以我需要的是“环境级别”的辅助电脑上只开当前任务需要的窗口手机放在另一个房间戴降噪耳机。但这些事情靠意志力去执行本身就是障碍所以我把它做成了系统功能——按下“专注”按钮后系统自动帮你处理这些“仪式感”前置条件。这个设计原则同样体现在数据展示上主界面同时只能看到当前这一步不能看到全部任务列表。任务全部展示出来对我来说就像把一百本书摊在床上我会什么都想翻一下结果一本书都读不完。2.4 多巴胺管理用最小闭环持续喂反馈ADHD 大脑对多巴胺的基线水平比常人低所以会不断寻求高刺激、强反馈的事情。写代码三个小时才有一次“编译通过”的正反馈这种反馈频率对 ADHD 大脑来说太低了难怪我会中途跑去刷短视频。我的解决方案是把任务的反馈频率人为提高拆分到每一步都有完成感并且在界面上做一个非常显眼的“完成动效”——不是那种花里胡哨的庆祝动画而是简单的打勾动作和一声清脆的音效。不要小看这种表面功夫。对 ADHD 来说可预期的、即时的正反馈是稀缺资源。我会在任务卡上设计一个连续完成计数不需要排行榜不需要分享只要能看到“你今天已经完成了七个最小步骤”多巴胺就已经足够支撑下一个动作了。2.5 外部化记忆所有东西写下来而不是记住工作记忆是 ADHD 的另一大短板。我经常走进厨房想拿一个东西到了之后完全忘了要拿什么开会时听到一个重要的点散会后十秒钟就忘了内容。过去我的解决方式是疯狂在手机备忘录里打字但备忘录本身是个黑盒我写了就忘了自己写过。这条原则落到系统里就是一切信息默认自动记录不需要用户主动保存。每当我新建一个任务系统会自动抓取当前时间、关联的项目、甚至当前打开的网页地址每当我标记一个任务完成系统会要求我用一句话记录“实际做了什么”。这些记录都不需要我来维护分类系统只按时间轴平铺搜索靠全文检索。这样我的大脑只需要负责“做”不需要负责“记”。2.6 烦人程度上限绝不做所有事的“太上皇”最后一条原则是我踩了很多坑才总结出来的一个工具如果管得太紧它一定会被卸载。我以前用过那种一开启就不断弹窗、强制锁机的专注软件一开始效果很好但两周之后我开始恨它最后直接卸载了。因为 ADHD 人群对“被控制”的抵触感极强任何机械的束缚都会激发逆反心理。所以 i-have-adhd 的所有功能都采用“引导”而非“强制”的策略。专注计时到了时间可以自由选择继续还是停止提醒可以一键静音任务拆解是推荐性的不是模板强制。工具的角色应该是副驾驶不是监工。它提供建议和结构但方向盘的最终控制权始终在我手里。这个设计原则后来证明非常重要它决定了我能长期使用这个工具而不是三分钟热度。3. 从想法到落地i-have-adhd 的模块、技术选型和实际用法整个项目是一个本地优先的 Web 应用我把它部署在自己的服务器上数据完全私有。界面极简到几乎没有装饰因为我知道任何多余的元素都会成为注意力的钩子。下面我把每个核心模块拆开讲顺便说说我选了哪些技术栈以及为什么。3.1 主界面我把“决定做什么”这件事整个消灭了打开 i-have-adhd你不会看到任务列表不会看到日历不会看到优先级矩阵。你只会看到一张卡片上面写着“此刻建议做的事”以及一个巨大的倒计时。这个设计是我认为整个项目最有价值的地方。ADHD 每天消耗最多意志力的时刻就是“决定现在做什么”我把它交给了一个简单的调度算法系统根据当前时间、任务截止日期、任务预估时长和上次执行时间算出当前最优的一个任务并展示出来。如果我对它不满意可以右滑换下一个候选但每次切换都会记录次数。每周结束时我会看到一份统计我在“决定做什么”这件事上浪费了多少次切换。这里的核心洞察是不需要完美的调度算法只需要一个足够好的默认选项。人总是可以否决机器的建议但当面前只有一个“主推选项”时启动阻力会小很多。3.2 核心模块一下一步动作卡Next Action Card这是任务的执行单元也是整个系统里最常用的界面。每一张卡片只包含三个信息启动动作一个不需要思考就能完成的动作比如“打开 xxx 文件”执行时长一个预估的倒计时而不是截止时间记录区完成后可以写一句话作为自动记忆创建任务的方式有两种。一种是主动创建直接在快捷输入框里写“任务名 预计时间”系统会自动拆解。另一种是被动创建你在某个网页上看到了感兴趣的信息可以一键发送到系统生成一个“稍后阅读”卡片自动抓取网页标题和地址。这个模块背后最关键的技术实现是一个“录入即拆解”的规则引擎。例如我输入“整理发票”时系统不会自作聪明地帮我拆步骤它只会把任务拆成两层启动动作 打开发票文件夹执行时间 30 分钟。如果是我输入的是“调研 A/B 测试工具”启动动作可能就是“打开搜索页输入关键词ab testing tools comparison”执行时间 25 分钟。拆得不够智能也没关系重要的是永远存在一个“启动动作”这个动作足够小小到不可能拒绝。3.3 核心模块二双人协同专注Body Double 房间Body double身体陪伴是 ADHD 社区里一个非常有效的方法一个人在旁边安静地做自己的事你就能更容易专注。原理可能是多巴胺的社会反馈机制也可能是单纯的“有人在看着我”的微妙压力但对很多人确实有效。我在系统里实现了一个极简的线上版本进入“陪伴房间”后你会看到其他也在使用该系统的人的状态——他们的头像、正在执行的专注倒计时、以及一个“坚持中”的标签。你不需要和对方交流只需要看到对方也在场就能感受到一种安静的共处感。房间不设聊天功能也不提供任何社交互动因为任何互动都会成为分心的入口。这个模块上线之后的效果远超我的预期。我的不少朋友在远程办公时都会开着这个页面不是为了看对方在乎什么就是为了“有人陪着”。有小部分用户在反馈里提到他们靠这个房间完成了考研复习和毕业论文这是我在设计之初完全没有想到的。如果你团队里有人远程办公容易走神不妨试试这种低交互的陪伴机制。3.4 核心模块三“不许碰”清单Ignore List这可能是最反直觉的一个功能。我发现自己的很多失控不是因为“不知道要做什么”而是因为“知道不能做什么但忍不住”。于是我做了一个“不许碰”清单专门用来记录那些当下不该花时间的事情。比如我在写季度总结的时候突然想起“该研究一下新的前端框架了”。这个想法会立刻被记录进 Ignore List并附带一句“现在不要做等季度总结完成后再说”。它的神奇之处在于大脑之所以反复惦记某件事很多时候是害怕忘记它。一旦把它写进一个可信赖的系统大脑就会安心放下。这个功能有效减轻了我至少三成的“随机分心”冲动。技术上它非常简单就是一个带时间戳的队列。每天的 Ignore List 会在晚上做一个自动回顾哪些“不该做的事”今天依然想做如果连续三天都出现在 Ignore List 里系统会提示我考虑把它正式安排成日程里的一个任务。“欲望需要被承认而不是被压抑”——这是这个模块最重要的理念。3.5 技术选型为什么我坚持本地优先、私有部署i-have-adhd 的技术栈不复杂前端是 Vue 3 TailwindCSS后端是 Node.js SQLite部署在自己的家用服务器上。整个系统的代码量不大约四千行。我没有用高深的架构也没有引入消息队列、分布式存储这类重组件刻意保持了“一个人能维护”的规模。选择本地优先有几个现实考虑。第一是隐私这些数据包含了我的任务、我的拖延记录、我的分心清单可以说是精神活动的完整记录我无论如何也不希望它们被上传到某个商业公司的服务器上。第二是速度本地服务器的响应速度是毫秒级的没有任何等待加载的焦虑这本身就是 ADHD 友好的体验。第三是可控性我可以随时改逻辑、改配色、改提醒规则因为整个工具就是为我自己写的不需要满足任何其他用户的需求。当然本地部署的代价是手机端访问不如原生应用方便。我的解决方案是把它作为一个 PWA渐进式 Web 应用安装到手机桌面利用 Service Worker 做离线缓存。核心任务操作都可以离线完成等有网络时再同步实测体验足够流畅。这个方案给我最大的启发是个人工具的第一诉求永远是可持续维护而不是技术上的先进。4. 四周真实使用记录哪些预设错了哪些坚持对了工具做出来只是第一步真正难的是“长期使用”。我给自己设计了一个四周的验证计划每周记录使用感受和统计数据。这个过程推翻了我不少初始假设也让我意识到一些当时没想明白的问题。4.1 第一周功能太多反而让我崩溃第一版系统我做了九个模块除了上面说的核心功能还包括数据统计图表、目标打卡、笔记、酒精摄入记录、情绪记录……结果第一周的使用数据触目惊心我每天切换功能的次数超过一百二十次平均每个模块停留时间不到两分钟任务完成率反而比没用这个工具时还低。原因很简单我又把工具变成了一个新的“可以研究的东西”。对 ADHD 大脑来说任何新鲜系统都可能成为分心源。我花在调配色、看图表、整理标签上的时间远远超过了用它做事的时间。第一周结束那天我在日志里写了句很重的话这个项目如果不砍掉三分之二的模块它就不是工具是新的玩具。于是我做了大手术。砍掉了所有统计图表只保留每周一次的自动摘要邮件、砍掉了打卡、砍掉了葡萄酒和情绪记录、砍掉了所有把使用过程变得“有趣”的机制。留下的只有一个任务卡、一个倒计时、一个 Body Double 房间、一个 Ignore List。极简到什么程度主界面甚至没有设置页所有配置都写在一个 JSON 文件里。这个决定是第四周能坚持下来的关键。4.2 第二周我把提醒全部改成“静默通知”最初我设计的提醒方式是弹窗加声音期望能把我从走神状态拉回来。实测发现这完全是错的。弹窗声音确实能打断走神但我被打断后第一反应是愤怒然后会反射性地关掉提醒重新回到分心循环。第二周我把提醒模式改成了“静默通知”——通知栏出现一条文字提示没有声音没有弹窗不会强制聚焦。如果我在专注状态我会自然忽略它如果我已经在神游了我可能会在五分钟内注意到它并拉回自己。关键区别是我不再把提醒体验成“被工具控制”而是“被自己发现”。这个改动带来的另一个好处是我不再因为关闭提醒而产生负罪感。以前每次关掉弹窗都像是在“违背系统的指令”产生额外的自我批评现在通知只是轻轻飞过我自己决定何时回应反而更容易响应。我理解到ADHD 工具不能和用户搞对抗关系它应该像水面上的浮标提醒你方向但不强行拖着你走。4.3 第三周我发现“下一步动作卡”的真正瓶颈按计划第三周应该是我效率最高的一周因为所有基础功能都稳定了。但数据表明任务完成率依然没有显著提升我花了一天时间翻了所有执行记录发现问题的关键在“创建任务”这个环节我在把任务录入系统时太随意很多任务的启动动作拆得不到位。比如我创建过一张“给汽车做保养”的任务卡启动动作写成“打电话预约 4S 店”但我一直没有执行因为在电话沟通这件事上有隐性焦虑。这让我意识到启动动作不仅要足够小还要在心理上足够“无压力”。如果它让你产生了任何微妙的抗拒那么它就没有真正达到标准。我把规则改成了如果一张任务卡创建后 48 小时没有被激活系统会自动弹出一个小提示“这个启动动作是否真的足够简单”如果我不确定我会把它再拆小一级。很多人以为 ADHD 工具应该教人“如何坚持”其实它更应该教人“如何把任务拆到不可能失败”。4.4 第四周真正让我留下来的三个“反直觉”设计最后一周回顾时我列出了这个系统里真正不可替代的三个功能它们都不是我当初最看重的功能。首先是“提前一秒记录”One-Second Rule。这是我自己加的一个小交互完成一个任务后系统要求你在三秒内草草写一句话记录结果不要求完整不要求准确哪怕只写“ done”也可以。这个动作帮我留下了一条完整的时间线月底回顾时能确切知道这一个月的时间都流向了哪里。它极大地减少了“我明明忙了一天但不知道干了什么”的空虚感。第二个是“冷却时间”Cooldown机制。每次完成一个任务后系统会建议休息五到二十分钟但不会强制。出于对控制的厌恶我一开始几乎总是不休息但我注意到直接进入下一个任务时自己的启动阻力会明显变大。后来我把“建议休息”改成“允许发呆”——就是说系统告诉你你可以什么也不做五分钟不用有负罪感。对 ADHD 来说“被允许什么都不做”反而会降低对“休息”的焦虑从而愿意真正休息效率反而回升了。第三个是“夜间自动打包”。每天晚上系统会自动生成一份“今日回顾”不是图表不是打分就是三行纯文字今天做了哪三件最重要的事、今天最浪费时间的一个瞬间是什么、明天想带三件事入场。这份回顾会在第二天早上第一眼看到但我可以一键忽略。它没有让我产生任何打卡压力因为它不是被动的记录系统而是主动的复盘助手。这四个星期的测试让我确信ADHD 工具真正需要提供的不是计划而是反思的创造支持和低成本的行动。5. 如果你想借鉴这套思路可以复制的经验教训“i-have-adhd” 这个项目也许不会成为大众产品因为它的核心价值在于“为我量身定制”。但它的设计逻辑对很多人群都有参考意义任何有注意力困扰的人、希望帮助 ADHD 亲友的人、甚至只是觉得现代生活让人越来越难专注的人。下面我把这套逻辑里最通用的部分提炼出来分三种情况聊。5.1 如果你会写代码从一个模块开始不要做“全家桶”我最大的建议是别一上来就设计完整系统。最好的做法是只选一个最痛的点用你最喜欢的技术栈做个最小的工具。比如你最常见的困扰是“开始不了”那就只做个启动动作卡如果是“容易被手机偷走时间”那就只做个限制类小程序。工具规模越小你越愿意为它迭代一旦超过临界复杂度你最后一定会在某个崩溃的晚上弃用。数据存储上尽量选择本地优先的方案。我用 SQLite 配合一个极简的 REST API一个月维护成本几乎为零。保持代码可读性高于一切因为 ADHD 使用者很可能就是你自己你的注意力本来就稀缺不要让“维护工具”本身变成一项负担。我强烈建议把工具设计成“开箱即用、默认无负担”关闭所有非必要通知关闭全部图表把界面上的颜色控制在两种以内——一个主色、一个警告色就够了。5.2 如果你不会写代码用现成工具拼出同一套逻辑就算你不会编程这套设计思路也能用现有软件组合出来。核心是遵循同样的原则减少决策、外部化记忆、强制低反馈。启动动作卡可以用最简单的清单应用比如 iOS 提醒事项或 Google Keep但要求每个任务都以动词开头并且自带第一小步。Body Double 可以用腾讯会议或 Zoom开一个不说话的会议室和朋友各干各的事。Ignore List 可以直接用备忘录建一个新列表标题叫“现在不要碰”随手记录分心念头。倒计时可以用任何番茄钟应用但记得把默认时长调成你自己实验出来的合适区间而不是用预设的 25 分钟。这些工具的使用逻辑比工具本身重要得多你完全可以不用写一行代码就搭出与 i-have-adhd 功能相似的支撑环境。5.3 大原则工具只是支点宽容才是核心最后想分享一点这几周下来最大的领悟ADHD 人群从来就不缺方法我们缺的是“宽容自己的方法”。市面上所有效率类内容都在教你怎么变得更高效但真正改善我状态的是这个项目把“计划失败”也设计成了系统的一部分。任务没启动没关系系统会问你是不是拆得不够小。提醒被忽略没关系系统允许你选择视而不见。今天什么都没干没关系系统晚上还是会温柔地问你“明天想带哪三件事入场”。这种设计语言来自我对自己的彻底接纳我不再希望自己变成一个“假装没有 ADHD”的人而是承认自己的大脑就是这样运作的然后给它搭一个适合它的环境。工具好不好用终极标准只有一个我是否愿意在明天打开它。对我来说答案已经写在第四周的使用记录里了。如果你也在做类似的事情哪怕只是一张便利贴、一个提醒事项也一定要把“允许自己失败”写进逻辑里。那才是 ADHD 工具最应该有的功能。
返回列表