thinking-dhh
$
npx mdskill add aAAaqwq/AGI-Super-Team/thinking-dhhApply DHH's 'good enough' framework to reject over-engineering.
- Evaluate feature proposals against real user pain and complexity.
- Assess technical choices using rigid-flexible decision patterns.
- Prioritize shipping fast over perfect design using iterative testing.
- Output structured assessment templates for immediate team decisions.
SKILL.md
.github/skills/thinking-dhhView on GitHub ↗
--- name: thinking-dhh description: DHH's thinking framework — convention over configuration, ship fast, perfect is the enemy --- 4. "正常人在8小时内可以把事情做得很好。加班是管理失败的症状,而不是勤奋的标志。" ——DHH,《重来》(Rework,2010) 5. "好的软件是迭代出来的,不是设计出来的。你不可能在纸上设计出完美产品,然后按照图纸施工。" ——DHH,Basecamp博客,2014 6. "测试不是信仰。测试是工具。如果测试阻碍了你的开发速度,那测试就变成了问题。" ——DHH,Twitter/X,2014-2019期间对TDD文化的批评 7. "我们拒绝的功能比接受的多10倍。大多数功能提案在第一天就被否决了。" ——DHH,Basecamp团队采访,2018 8. "Ruby on Rails不是为了改变世界而创造的。它是因为我厌倦了当时写web应用的痛苦,我想让那种痛苦消失。" ——DHH,Rails创始人访谈,2015 ## 实战模板(3个) ### 模板一:功能评估检查(足够好模式) ``` 功能提案:[描述] 日期:[今天] 评估人:足够好模式 问题一:这个功能解决的是真实问题吗? - 有没有用户明确要求?(vs PM/老板觉得用户需要) - 这个问题有多痛?(1-10) - 如果不做这个功能,用户现在怎么解决这个问题? 问题二:这个功能需要多少开发资源? - 预估工时:[X]天 - 机会成本:这X天如果做别的能做什么? - 复杂度评分(1-5):[复杂度越高越要谨慎] 问题三:最小可行版本是什么? - 能不能用更少的代码/功能达到80%的价值? - 能不能先做一个"看起来像"的版本验证需求? - 最坏情况:如果没人用,损失是多少? 问题四:增加复杂度评估 | 维度 | 影响 | 严重程度 | |------|------|---------| | 代码量增加 | [X]行 | 高/中/低 | | 维护负担 | [增加什么维护工作] | 高/中/低 | | 学习成本 | [新人要学多久] | 高/中/低 | | 依赖复杂度 | [引入了什么依赖] | 高/中/低 | 足够好评估: □ 做最小版本(1-2天能完成的核心功能) □ 不做(问题不真实或复杂度太高) □ 以后再做(等更多信息) □ 合并到别的功能里(不要单独加功能) 决策:[具体行动] 理由:[为什么这个决策是"足够好"的] ``` ### 模板二:技术选型评估(固执-灵活模式) ``` 技术选型:[X技术] 日期:[今天] 第一步:形成观点(固执) - 你对这个技术的立场是什么?(强力支持/强力反对/中立) - 你的立场基于什么依据? - 你有没有深入使用过这个技术? 第二步:反向证据 - 最强的反驳证据是什么? - 有没有使用这个技术失败的案例? - 什么情况下这个技术不是最佳选择? - 你有没有可能是错的?[诚实评估] 第三步:评估场景匹配度 | 维度 | X技术 | 当前需求 | 匹配度 | |------|------|---------|-------| | 规模 | | | | | 团队大小 | | | | | 维护能力 | | | | | 时间约束 | | | | 第四步:决策树 - 如果X技术失败,最坏情况是什么?能不能承受? - 有没有"后悔药"?(能否平滑迁移) - 如果不用X,有没有备选? 固执程度评级: - 10 = 强烈信念,几乎不可能改变 - 7-9 = 较强信念,会被强力证据说服 - 4-6 = 中等信念,容易被说服改变 - 1-3 = 开放态度,以实际证据为主 最终建议:[做/不做/继续观察] 置信度:[X%] ``` ### 模板三:发布决策清单(MVP模式) ``` 发布版本:[版本号] 日期:[今天] 发布内容:[简述] 第一步:必要检查 □ 核心功能能正常工作吗?(不是所有功能,是核心) □ 用户能完成主要任务吗?(端到端走一遍) □ 崩溃率在可接受范围吗?(<1%?) □ 性能在可接受范围吗?(首屏<3秒?) 第二步:回滚计划 - 能不能一键回滚?(还是需要手动修复) - 回滚需要多少时间? - 什么情况下应该立即回滚? 第三步:灰度策略 - 能不能先发布给5%的用户? - 有没有监控能看到异常? - 负责人能第一时间收到告警吗? 第四步:信息同步 - 运营/客服知道新功能了吗? - 知道如何处理用户问题了吗? - 有没有准备好FAQ/公告? 第五步:发布后验证 - 发布后1小时内检查什么指标? - 发布后24小时内检查什么指标? - 什么指标表示功能成功? MVP检查结论: □ 可以发布 □ 需要修复才能发布 □ 需要缩小范围才能发布 发布负责人:[X] 发布时间:[具体时间] ``` ## 应用场景 ### 场景一:评估要不要加某个功能 当产品经理提议"我们加一个X功能": 1. **DHH三问**:真问题吗?代价多大?有更简单方案吗? 2. **最小版本**:能不能用最小的方式验证这个需求? 3. **减法原则**:加上这个功能的同时,有没有可以移除的功能? 4. **拒绝的力量**:DHH团队拒绝90%的功能提案——不是每个好主意都要现在做 ### 场景二:技术选型(要不要引入新技术) 当团队讨论要不要用某个新框架/工具: 1. **真问题吗**:当前技术的痛点是什么?是真实痛点还是"用新技术"的冲动? 2. **复杂度评估**:引入这个技术的总代价(学习+维护+迁移)值得吗? 3. **固执-灵活**:你对不用这个技术有多固执?你愿不愿意被实际证据说服? 4. **DHH版**:你们的问题是不够大吗?如果不是微服务规模,用Rails可能更好 ### 场景三:发布节奏和迭代策略 在决定发布节奏时: 1. **MVP优先**:先发布一个能用的最小版本,不要憋大招 2. **快速反馈**:发布后立即收集用户反馈,用真实数据修正方向 3. **接受重写**:DHH:"我们在每个版本都会重写一部分代码,因为学习本身就是设计" 4. **足够好的发布**:不是"完美才发布",而是"够用就发布,然后迭代" ### 场景四:处理"技术债" 当开发者说"我们需要重构,需要2个月": 1. **真实影响**:这个技术债导致的额外工作量是多少?(量化) 2. **机会成本**:这2个月如果做新功能,业务价值是什么? 3. **渐进式**:能不能在不重写的情况下逐步改善? 4. **DHH的回答**:"大部分技术债是开发者给自己的借口,想重写不是因为真的需要,是因为想用新技术" ## 反模式 ### 反模式一:"完美主义瘫痪" **症状**:总觉得代码不够好、架构不够完美、功能不够完整,永远不发布。 **后果**:竞争对手发布了类似但"不完美"的产品,抢占了市场;团队士气低落,看不到产品上线。 **DHH的解药**:"完美是完成的敌人。发布一个80分的产品,然后迭代到90分,比永远等待100分更有价值。" ### 反模式二:"过度工程" **症状**:提前设计"能服务5年"的架构,使用"未来可能需要"的设计,引入"这个很流行"但实际不需要的技术。 **后果**:系统越来越复杂,没人能完全理解;维护成本指数级上升;新人上手需要几个月。 **DHH的解药**:"如果你的团队只有10个人,不要用微服务。大多数'过度工程'是为了让架构师感觉良好,不是为了解决实际问题。" ### 反模式三:"TDD原教旨主义" **症状**:必须100%测试覆盖才敢发布,必须先写测试才写代码,测试失败就不能部署。 **后果**:开发速度变慢,创新被压制;当测试本身有bug时,整个系统被误判。 **DHH的立场**:测试是工具,不是信仰。测试的目的是让你有信心快速迭代,不是为了满足"100%覆盖率"这个虚荣指标。 ### 反模式四:"功能通胀" **症状**:每个版本都在加功能,产品越来越臃肿,但活跃用户不增长;团队忙于维护旧功能,没时间做新功能。 **后果**:用户体验下降,产品失去焦点;维护成本吞噬开发资源;团队失去方向感。 **DHH的解药**:加每个功能的同时问:有没有可以移除的功能?坚持"减法原则"——最好的新功能往往是去掉的功能。 ### 反模式五:"加班=努力" **症状**:项目紧就加班,上线前通宵,节假日赶工,把加班当成解决问题的默认方式。 **后果**:短期产出增加,长期效率下降; burnout;代码质量下降引入更多bug;创新能力和判断力受损。 **DHH的数据**:Basecamp团队坚持每周4天工作制,他们的产品质量和产出效率在行业内名列前茅。"正常人在8小时内可以把事情做得很好。" --- *DHH思维框架的核心:完美是完成的敌人,足够好才是行动的开始。固执但不僵化,迭代优于完美计划,简约设计比功能堆砌更有力量。最重要的决定往往不是你做什么,而是你不做什么。*
More from aAAaqwq/AGI-Super-Team
- a-fund-monitor监控 A 股基金实时估值与盘后净值,自动判断交易日并生成提醒或分析。
- account-executive>
- add-leadAdd company/person/relationship to CRM
- adsComprehensive ad account analysis across all major platforms (Google, Meta
- ads-agentAI-агент для управления Facebook рекламой. Вызывай для анализа, оптимизации, создания кампаний и отчётов.
- afrexai-compliance-auditRun internal compliance audits against major governance and security
- afrexai-personal-financeComplete personal finance system — budgeting, debt payoff, investing, tax optimization, net worth tracking, and financial independence planning. Use when managing money, building wealth, paying off debt, planning retirement, or optimizing taxes. Zero dependencies.
- after-salesUse when managing post-purchase experience, building customer loyalty, or increasing repeat purchases
- agent-contactsAI agent contacts — add, list, remove MCP contacts. Use when someone gives an agent URL, or when you need to view/remove contacts.
- agent-model-switcher批量查看和切换子 agent 的模型配置,用于统一调整多 agent 的 provider/model 设置。