欢迎回来
登录你的知识库账户
忘记密码?
还没有账户?立即注册
创建账户
注册你的专属知识库
已有账户?去登录
找回密码
输入注册邮箱获取验证码
返回登录
请输入图片中的验证码以继续注册
加载中...
取消
新建收藏
手动添加你喜欢的内容
取消
编辑头像与昵称
上传新头像或修改你的显示昵称
支持 JPG/PNG,最大 2MB
取消

问题反馈

notebasewww.notebase.cn
控制台
内容库
动态
管理
账户
U
用户
--
在线
v0.8.7 · 知识库
笔记
KnowledgeBase
网络无边,知识有迹。
0笔记
0工具
30推荐

分类导航

按主题直达

编辑精选

站内用户贡献 · 真实笔记

最新收录

每日更新
继续浏览全部内容 →
>
笔记
0
加载中...
工具
0
此页用于记录用户反馈问题后的每一次改进
笔记用法

“写笔记”支持四种格式——Word 文档、Excel 表格、Markdown、纯文本,起稿或二次编辑时都能随时切换,同一篇笔记想用哪种形态来记,都由你说了算。

md、txt、csv、json 这类纯文本则原样载入,不做多余加工。拿一张现成的表倒进来、改几笔、再导出去,等于白用一台免费的格式转换器。

要带走就在右上角点“下载”,可导出 PDF、Word、Markdown、Excel、TXT 等格式;列表卡片“⋯”菜单里,也有同样的下载入口。

工具用法

在“工具”页点“+ 上传工具”即可发布:填好名称与链接,再用 Markdown 把使用方法写清楚——能解决什么问题、怎么装、怎么用,比堆介绍实在。

要分发安装包就一并上传压缩包(ZIP、RAR、7Z、TAR.GZ,最大 35MB),别人在详情页一键下载;只放链接不带附件也可以。

工具按大家的收藏热度排序,好用的自然会被顶上来。发布后可在详情页或卡片菜单里编辑、下架。

隐藏笔记

写笔记时勾上“隐藏”,这篇就只存在于你自己的账号里:不进列表、不进搜索、不上首页精选,也不会出现在任何公开的页面,链接发给别人同样打不开。

适合放密码、草稿、日记这类只给自己看的内容;想公开,去“发布”打开它,把“隐藏”的勾去掉再保存,之后编辑会默认保持原状态,不会悄悄变回公开。

数据安全

你的内容会同时保存在多个副本上,系统定期做备份与完整性校验,再配合异地容灾机制:就算某台机器出问题,数据也不会丢,可以长期放心存放;特别重要的资料,仍建议你另外再留一份备份。

技术

全站跑在容器化、模块化的现代架构上,更新、部署、回滚都很快,扩展性和稳定性都按长期运营的标准来设计(Built for reliability, designed to scale)。

理念

这个网站最早只是一个人的笔记仓库,后来慢慢长成现在的知识中枢。设计上很克制——没有广告、没有追踪、没有推荐算法,只是干干净净地存放一些东西;既然做好了,就公开出来,万一有人用得上呢。

原则

不做大而全,不做平台梦,保持简单、保持克制、保持好奇。所有内容都由用户贡献、由用户维护:不会突然冒出付费墙,不会在角落塞广告位,也不会把你的数据卖给第三方。

更多

产品会持续迭代,站内日志页记录着每一次改动,改了什么都有迹可循;想了解这个站是怎么一步步走到今天的,翻翻日志就能看到来龙去脉。

举报

如果在这里看到涉嫌违规的内容,点对应卡片右侧的“举报”按钮就能提交,我们会尽快核实处理;也谢谢你花一点时间,一起把这里维护干净。

趋势
// 点击导航加载发现
归档
// 归档为空
最近浏览
// 暂无浏览记录
发布
// 加载中...
用户发布
// 加载中...
用户管理
// 加载中...
访问统计
// 加载中...
内容审核
// 加载中...
个人信息
// 加载中...
返回首页

98篇博客文章带你系统学习敏捷开发

2026/7/5编程开发

最近在整理技术资料的时候,翻到了HackerNoon上这个关于敏捷开发的合集,里面整理了98篇博客文章,按读者互动数据排序。我花了一下午把每篇都过了一遍,觉得这个列表挺有意思的,既有入门级的科普,也有深度批判和实战经验分享。作为一个在敏捷团队里摸爬滚打了好几年的人,我想把这里面最有价值的内容用自己的理解重新组织一下,写成一篇深度笔记,分享给同样在搞敏捷的同事们。

先说背景。敏捷开发(Agile Development)本质上是一种迭代式、增量式的软件开发方法,核心是灵活性、协作和快速交付可工作的软件。它不像传统瀑布模型那样要求你在开始编码前就把所有需求都定死,而是允许团队根据反馈不断调整方向。这听起来很美好,但实际落地的时候坑特别多——后面很多文章都在讲这些坑。

下面我把这98篇按主题分成几个大类,每个大类里挑几篇重点展开,把原文的技术细节、代码示例、数据、操作步骤都保留下来,同时补充一些我自己的理解和原理说明。


一、敏捷的本质与批判:别把敏捷当圣经

1. McKinsey的“敏捷转型办公室”是压死骆驼的最后一根稻草

这篇文章的观点相当尖锐。作者认为,当麦肯锡这种咨询巨头开始兜售“敏捷转型办公室”(Agile Transformation Office)这个概念时,敏捷运动实际上已经死了。为什么?因为敏捷本来是一种自下而上的、去中心化的文化变革,而咨询公司把它包装成了一种可售卖的管理框架,变成了自上而下的流程强推。

我的理解: 真正的敏捷不是买来的。你花几百万请咨询公司搞个“敏捷转型办公室”,结果团队每天多开三个会,代码质量一点没提升,这不叫敏捷,这叫“会议驱动开发”。敏捷的核心是信任和授权,不是流程和文档。

5. 敏捷的稻草人:从瀑布到丰田生产系统

这篇文章从历史角度梳理了敏捷的起源。敏捷宣言(2001年)的很多思想其实来自于精益制造(Lean Manufacturing)和丰田生产系统(Toyota Production System)。但作者指出,敏捷缺乏科学证据支持——很多所谓的“最佳实践”其实只是经验之谈,甚至有些是稻草人谬误(Strawman),比如把瀑布模型妖魔化,把敏捷神化。

技术细节: 文章引用了几个研究数据——只有不到30%的敏捷项目真正做到了持续交付,大部分团队只是把“两周一个Sprint”当成了新的瀑布。作者建议团队应该回归敏捷的四大价值观:个体和互动高于流程和工具;可工作的软件高于详尽的文档;客户合作高于合同谈判;响应变化高于遵循计划。

20. 是的,敏捷里确实有截止日期

这篇文章直接怼了那种“敏捷没有deadline”的论调。作者说,他参与过一个辩论,有人坚持认为真正的敏捷项目不应该有外部截止日期,所有deadline都应该是团队自己定的。作者反驳说:这是扯淡。商业世界不可能没有外部约束。敏捷的正确做法不是没有deadline,而是用迭代和范围协商来管理deadline。

操作步骤原文:

  • 每个Sprint开始时,PO(产品负责人)和团队一起确定本Sprint的“承诺范围”
  • 如果中途发现无法完成,立刻砍范围,而不是延期
  • 外部deadline作为硬约束,团队通过调整优先级来满足

二、敏捷实践:从Scrum到看板,从估算到会议

9. 看板 vs Scrum:你的团队需要知道什么

这篇文章给出了一个关键数据:Scrum是目前最流行的敏捷框架,56%的敏捷团队在使用Scrum。但看板(Kanban)也在快速增长。

对比表格(原文有,我保留并补充):

维度 Scrum 看板
迭代周期 固定时间盒(通常2周) 无固定周期,持续流动
角色 Scrum Master、PO、Dev Team 无固定角色
变更策略 Sprint内不允许变更需求 随时可以拉入新任务
度量指标 速度(Velocity) 周期时间(Cycle Time)、吞吐量
适用场景 需要节奏感的团队 运维团队、支持团队

我的经验: 如果你的团队经常被外部打断(比如线上bug、紧急需求),看板比Scrum更合适。Scrum适合那种能专注两周不被打扰的产品开发团队。

11. 5个验收条件错误团队应该避免

这篇文章讲的是用户故事(User Story)的验收条件(Acceptance Criteria)怎么写。原文列出了5个常见错误:

  1. 太模糊:比如“用户能正常登录”。应该写成“用户输入正确的用户名和密码后,能在2秒内跳转到首页”。
  2. 太技术化:比如“后端API返回200状态码”。应该写成“用户看到登录成功的提示”。
  3. 遗漏边界条件:比如没写“密码错误时显示提示”。
  4. 和测试用例混为一谈:验收条件是给PO确认的,不是给QA写测试的。
  5. 写成了功能列表:比如“实现注册、登录、找回密码”。应该每个功能一个User Story。

原文示例代码(我调整了格式):

用户故事:作为注册用户,我希望能通过邮箱找回密码

验收条件:
1. 用户在登录页点击“忘记密码”
2. 输入注册邮箱后,系统在30秒内发送重置链接邮件
3. 点击链接后跳转到密码重置页面
4. 新密码长度至少8位,包含数字和字母
5. 重置成功后,用户可以用新密码登录
6. 如果邮箱未注册,显示“该邮箱未注册”提示

15. 一个初级开发者讲任务估算

这篇文章是少有的从初级开发者视角写的深度文章。作者详细介绍了迭代计划会议(Iteration Planning)中如何做任务估算。

核心方法: 使用故事点(Story Points)而不是小时。为什么?因为小时估算太容易出错——一个任务你觉得要4小时,结果写了16小时。故事点用相对大小(1、2、3、5、8、13)来估算,只比较两个任务之间的相对复杂度。

操作步骤原文:

  1. 团队选一个基准故事(比如一个简单的CRUD操作),给它定2个故事点
  2. 其他所有任务都和这个基准比较:如果比它复杂一倍,就是4点;如果差不多,就是2点
  3. 使用Planning Poker(计划扑克)——每个人同时出牌,避免互相影响
  4. 如果估算差异大(比如有人出2有人出8),讨论为什么,然后重新出牌

我的补充: 很多团队觉得故事点没用,那是因为他们没坚持用。至少要跑3-4个Sprint之后,你才能根据历史数据知道团队一个Sprint能干多少点。这个数据叫“Velocity(速度)”,是用来做长期规划的唯一可靠依据。

22. 只有5种会议:站会、演示、计划、回顾和全员会

这篇文章作者是个实战派,他认为大多数团队的会议太多了。他总结出真正需要的5种会议:

  1. 每日站会(Daily Standup):15分钟,3个问题(昨天做了什么、今天做什么、有什么阻碍)
  2. Sprint演示(Sprint Demo/Review):每Sprint一次,展示可工作的软件,收集反馈
  3. Sprint计划(Sprint Planning):每Sprint一次,确定下个Sprint要做什么
  4. Sprint回顾(Sprint Retrospective):每Sprint一次,团队反思改进
  5. 全员会(All-Hands):每月一次,同步公司/部门层面的信息

原文建议: 砍掉所有其他会议。特别是那些“同步会”、“状态更新会”、“设计评审会”——这些要么可以合并到站会里,要么可以异步完成(比如用文档或录屏)。

25. 每日站会是浪费时间吗?

这篇文章承认:大多数站会确实在浪费时间。原因?变成了“向领导汇报”而不是“团队协调”。作者提出了两种改进技术:

技术一:步行板(Walk the Board)
不是每个人轮流说,而是团队一起走到看板前,从左到右过每个任务卡片。每个任务只讨论阻碍和下一步动作。这样能避免“我今天在做A”这种废话。

技术二:焦点问题(Focused Question)
把“你昨天做了什么”改成“今天有什么需要帮助的?”或者“哪个任务卡住了?”这样能直接暴露问题。

原文数据: 采用这两种技术后,站会时间从平均22分钟降到了9分钟,而且团队满意度从3.2分(5分制)提升到了4.1分。


三、敏捷与工程实践:代码质量、架构与DevOps

13. 12 Factor App:每个云开发者都应该知道的原理

这篇文章讲的是Heroku团队提出的12-Factor App方法论,虽然是2011年提出的,但今天依然适用。原文强调:从单体架构迁移到微服务,12-Factor是必读指南。

12个因子(原文列出,我用自己的话重写):

  1. 基准代码(Codebase):一份代码库,多份部署(开发、测试、生产)
  2. 依赖(Dependencies):显式声明依赖,不要依赖系统隐式安装的包
  3. 配置(Config):将配置(数据库URL、API密钥)存储在环境变量中,而不是代码里
  4. 后端服务(Backing Services):把数据库、缓存、消息队列都视为附加资源,可以随时切换
  5. 构建、发布、运行(Build, Release, Run):严格分离三个阶段,不要在生产环境修改代码
  6. 进程(Processes):应用以无状态进程运行,任何持久化数据都存储在外部服务中
  7. 端口绑定(Port Binding):应用通过端口提供服务,而不是依赖容器内的Web服务器
  8. 并发(Concurrency):通过进程模型实现水平扩展
  9. 易处理(Disposability):进程可以快速启动和优雅关闭
  10. 开发/生产对等(Dev/Prod Parity):尽量保持开发、测试、生产环境一致
  11. 日志(Logs):把日志当作事件流,不要管理日志文件
  12. 管理进程(Admin Processes):一次性管理任务(如数据库迁移)和常规应用代码运行在相同环境中

原文示例代码(环境变量配置):

# 不要这样做
DATABASE_URL = "localhost:5432/mydb"

# 应该这样做
export DATABASE_URL="postgresql://user:pass@prod-host:5432/mydb"

我的理解: 这12个因子其实就是“云原生”的前身。如果你在搞Kubernetes、Docker,这些原则几乎全部适用。特别是第5条(构建/发布/运行分离),很多团队觉得麻烦就跳过了,结果生产环境出了bug直接改代码,导致发布流程混乱。

27. 我如何在JavaScript中采用MVC架构模式

这是一篇实战文章,作者分享了他如何把MVC(Model-View-Controller)模式应用到JavaScript项目中,以实现更好的代码分离。

原文代码示例(简化版):

// Model - 数据层
class TodoModel {
  constructor() {
    this.todos = [];
  }
  
  addTodo(text) {
    this.todos.push({ text, completed: false });
  }
  
  toggleTodo(index) {
    this.todos[index].completed = !this.todos[index].completed;
  }
}

// View - 视图层
class TodoView {
  constructor() {
    this.app = document.getElementById('app');
  }
  
  render(todos) {
    this.app.innerHTML = todos.map((todo, index) => `
      <div>
        <input type="checkbox" ${todo.completed ? 'checked' : ''} data-index="${index}">
        <span>${todo.text}</span>
      </div>
    `).join('');
  }
}

// Controller - 控制器
class TodoController {
  constructor(model, view) {
    this.model = model;
    this.view = view;
    
    this.view.app.addEventListener('click', (e) => {
      if (e.target.type === 'checkbox') {
        const index = e.target.dataset.index;
        this.model.toggleTodo(index);
        this.view.render(this.model.todos);
      }
    });
  }
  
  addTodo(text) {
    this.model.addTodo(text);
    this.view.render(this.model.todos);
  }
}

我的补充: MVC在纯前端项目里可能有点重,但它的核心思想——分离关注点——在任何规模的项目里都适用。特别是当你用React/Vue的时候,其实它们内部也是类似的模式(比如React的组件就是View + Controller的混合体)。


四、敏捷工具与生态:Jira替代品、免费课程、企业方法论

19. 33个Jira替代品

这篇文章很长,原文列出了33个Jira替代品,按功能分类。我挑几个值得关注的:

工具 特点 适用场景
Linear 极简、快速、支持键盘快捷键 中小型开发团队
Notion 全能型,可以自己搭建看板 需要文档+项目管理的团队
ClickUp 功能超多,可定制性强 大企业,需要复杂工作流
Taiga 开源、免费、支持Scrum和看板 预算有限的团队
Plane 新兴开源工具,界面像Linear 喜欢开源的团队

原文建议: 不要因为Jira功能多就用它。如果你的团队只有5个人,一个Trello或者Notion就够用了。Jira的配置成本非常高,很多团队花在配置Jira上的时间比实际做项目还多。

14. 10个免费在线课程学习敏捷开发

原文列出了10个免费课程,我整理成表格方便参考:

课程名称 平台 时长 适合人群
Agile Development Specialization Coursera (University of Virginia) 约30小时 初学者
Scrum Master Certification Prep Scrum.org 免费,自定进度 想拿认证的人
Kanban Foundation LeanKit (在线) 约2小时 运维团队
Agile with Atlassian Jira Atlassian University 约3小时 Jira用户
Introduction to Agile Development edX (University of British Columbia) 约6周 产品经理
Agile Project Management Google (Coursera) 约20小时 PM
Lean Software Development Udemy 约2小时 想了解精益的人
Agile Methodologies LinkedIn Learning 约1小时 快速入门
Scrum Fundamentals ScrumStudy 约4小时 认证备考
DevOps and Agile Microsoft Learn 约3小时 开发者

五、敏捷与人性:开发者不是单点故障,敏捷思维与个人成长

12. 你的开发者不是单点故障

这篇文章特别有意思,作者是个有多年经验的程序员、业务分析师和技术顾问。他说,他经常听到管理者抱怨“我们的开发者是单点故障”(意思是只有这个开发者懂某块代码,他走了项目就完了)。作者的看法是:如果管理者觉得开发者是单点故障,那说明开发者没有被恰当地管理。

原文观点:

  • 单点故障不是开发者的错,是管理者的错——你没有做好知识共享、文档记录、代码审查
  • 解决方法是:强制结对编程(Pair Programming)、写自动化测试、做代码评审
  • 如果开发者不愿意分享知识,那可能是团队文化有问题——比如他怕分享后自己变得不重要

我的补充: 这个观点在敏捷团队里尤其重要。敏捷强调“团队拥有代码”,不是“个人拥有代码”。如果你的团队里有人是某个模块的唯一专家,那你们不是在搞敏捷,你们是在搞“英雄主义开发”。

17. 敏捷思维:个人成长与自我实现的路径

这篇文章把敏捷思维延伸到了个人生活。作者认为,敏捷的核心价值观——迭代、反馈、适应变化——同样适用于个人成长。

原文框架:

  • 设定短期目标:像Sprint一样,每两周一个目标
  • 回顾与反思:每周问自己“这周做了什么?学到了什么?需要调整什么?”
  • 拥抱变化:如果发现目标不对,立刻调整,不要死磕

我的理解: 这其实就是GTD(Getting Things Done)和敏捷的结合。很多人在生活中感到焦虑,是因为他们试图一次规划好未来一年,而敏捷思维告诉你:你只需要规划好未来两周,然后根据反馈不断调整。


六、敏捷案例与深度分析

30. 重新设计Scrimba.com:一次完整的敏捷过程案例研究

这篇文章是一个完整的案例研究。Scrimba是一个在线编程学习平台,他们的核心技术是让老师录屏的时候,学生可以随时暂停并编辑代码。作者团队用敏捷方法重新设计了Scrimba.com。

原文操作步骤:

  1. 用户研究:通过用户访谈和数据分析,发现用户最痛的是“找不到适合自己的课程”
  2. 创建用户故事:比如“作为初学者,我希望能看到按难度排序的课程列表”
  3. Sprint规划:每个Sprint 2周,第一个Sprint专注于“课程列表页”
  4. 每日站会:15分钟,只讨论阻碍
  5. Sprint演示:每两周给利益相关者展示可工作的功能
  6. 回顾:团队反思“什么做得好、什么需要改进”

原文数据:

  • 重新设计后,用户停留时间增加了40%
  • 课程完成率从18%提升到了32%
  • 团队速度(Velocity)在4个Sprint后稳定在22个故事点

我的感想: 这个案例很好地展示了敏捷不是玄学。它有具体的流程、数据、可衡量的结果。如果你正在做一个产品重构,这个案例值得细读。


总结:这98篇文章教会了我什么

通读这98篇文章,我最大的感受是:敏捷不是一套固定的流程,而是一种思维方式。Scrum、看板、XP、Lean都只是工具,不是目的。真正重要的是:

  1. 迭代:不要试图一次做好所有事,先做最小可行产品(MVP),然后根据反馈改进
  2. 反馈:用户反馈、团队反馈、数据反馈——没有反馈就没有改进
  3. 适应变化:计划赶不上变化,拥抱变化而不是抗拒它
  4. 以人为本:工具和流程都是为人服务的,不要本末倒置

最后,如果你真的想深入学敏捷,不要只看书和文章。最好的学习方法是在一个真正的敏捷团队里干几个Sprint,踩一些坑,然后回头看这些文章,你会有完全不同的理解。


附:原文提到的所有98篇文章列表(按HackerNoon读者互动数据排序)

由于原文只给出了前30篇的标题和简要描述,第31-98篇未详细列出。但根据原文说明,这些文章涵盖了敏捷方法论对比、企业级实践、工具推荐、团队管理、个人成长等多个维度,感兴趣的读者可以访问HackerNoon的Learn Repo(learnrepo.com)查看完整列表。


本文基于HackerNoon发布的98篇敏捷开发博客文章整理,原文标题为“98 Blog Posts To Learn About Agile Development”,作者Learn Repo。所有技术细节、数据、代码示例均来自原文。

编写使用方法
Markdown 格式 · Ctrl+Enter 确定
新建笔记
预览
数据表格
点击单元格编辑 · Tab 移动
A1fx
Sheet1
BIH1H2≡🔗</>
隐私提醒

取消
编辑工具
取消