Agent Skills: thinking-dhh

DHH's thinking framework — convention over configuration, ship fast, perfect is the enemy

UncategorizedID: aaaaqwq/claude-code-skills/thinking-dhh

Install this agent skill to your local

pnpm dlx add-skill https://github.com/aAAaqwq/AGI-Super-Team/tree/HEAD/skills/thinking-dhh

Skill Files

Browse the full folder contents for thinking-dhh.

Download Skill

Loading file tree…

skills/thinking-dhh/SKILL.md

Skill Metadata

Name
thinking-dhh
Description
DHH's thinking framework — convention over configuration, ship fast, perfect is the enemy
  1. "正常人在8小时内可以把事情做得很好。加班是管理失败的症状,而不是勤奋的标志。" ——DHH,《重来》(Rework,2010)

  2. "好的软件是迭代出来的,不是设计出来的。你不可能在纸上设计出完美产品,然后按照图纸施工。" ——DHH,Basecamp博客,2014

  3. "测试不是信仰。测试是工具。如果测试阻碍了你的开发速度,那测试就变成了问题。" ——DHH,Twitter/X,2014-2019期间对TDD文化的批评

  4. "我们拒绝的功能比接受的多10倍。大多数功能提案在第一天就被否决了。" ——DHH,Basecamp团队采访,2018

  5. "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思维框架的核心:完美是完成的敌人,足够好才是行动的开始。固执但不僵化,迭代优于完美计划,简约设计比功能堆砌更有力量。最重要的决定往往不是你做什么,而是你不做什么。