欢迎回来
登录你的知识库账户
忘记密码?
还没有账户?立即注册
创建账户
注册你的专属知识库
已有账户?去登录
找回密码
输入注册邮箱获取验证码
返回登录
请输入图片中的验证码以继续注册
加载中...
取消
新建收藏
手动添加你喜欢的内容
取消
编辑头像与昵称
上传新头像或修改你的显示昵称
支持 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上闲逛,发现了一个叫“Learn Repo”的东西——他们把所有关于敏捷开发的文章按阅读热度排了个序,整整98篇,而且全部免费。作为一个踩过不少坑、也写过不少屎山的开发者,我觉得这个话题值得好好聊一聊。毕竟,敏捷开发这个概念已经被各种咨询公司和PPT专家玩坏了,但真正能讲清楚它是什么、为什么有用、怎么落地的好文章,其实并不多。

这篇文章不是要给你列一个干巴巴的书单,而是我自己把这98篇文章过了一遍之后,挑出那些真正有料、有细节、能让你看完之后能动手试试的。我会把每篇文章的核心观点、技术细节、甚至代码片段(如果有的话)都拆开来讲,尽量让你感受到“哦,原来这个点是这样来的”。准备好了吗?我们开始。


一、敏捷开发到底是什么?——先别急着背定义

先来点背景。敏捷开发(Agile Development)本质上是一种迭代式、增量式的软件开发方法。它的核心不是“快”,而是“灵活”。传统瀑布模型要求你一开始就把所有需求定死,然后按部就班地开发、测试、上线。但现实是,需求天天变,用户今天说想要A,明天说其实B更好。敏捷就是针对这种不确定性设计的。

它的几个关键原则(来自《敏捷宣言》):

  • 个体和互动胜过流程和工具
  • 可工作的软件胜过详尽的文档
  • 客户合作胜过合同谈判
  • 响应变化胜过遵循计划

注意,不是说要完全抛弃文档和计划,而是说当两者冲突时,优先选左边。

好,背景铺垫够了。下面进入正题,我按文章的热度和内容深度,把它们分成几个主题来展开。


二、敏捷的“死亡”与“重生”——一些尖锐的观点

1. McKinsey的“敏捷转型办公室”是棺材上的最后一颗钉子

这篇文章(第1篇)的观点非常激进:敏捷运动已经死了,而压死骆驼的最后一根稻草是麦肯锡最近推广的“敏捷转型办公室”(Agile Transformation Office)。为什么?因为麦肯锡这种顶级咨询公司介入,意味着敏捷从一种草根开发者的自组织实践,变成了被大企业官僚化的“流程模板”。一旦被标准化、被审计、被KPI化,敏捷就失去了它最宝贵的“适应性”。

我的理解:这就像你本来想搞个自由市场,结果政府来了,说“我们成立一个‘自由市场管理办公室’,你们所有交易都要填表报备”。那还是自由市场吗?所以,这篇文章提醒我们:别把敏捷当成一个可以外包给咨询公司的项目。真正的敏捷是团队文化,不是流程文档。

2. 敏捷的“稻草人”谬误

第5篇文章《The Strawmen of Agile》直接开怼:很多人批评敏捷时,攻击的其实是自己臆想出来的“稻草人”。比如有人会说“敏捷就是没有计划”,但敏捷宣言原文写的是“响应变化胜过遵循计划”,不是“不要计划”。又比如有人说“敏捷就是每天站会”,但站会只是Scrum的一个实践,不是敏捷的全部。

作者还提到,从瀑布模型到丰田生产系统,很多所谓的“敏捷理论”其实缺乏科学证据支持。这让我想起一个老段子:敏捷就像健身,大家都知道要练,但很少有人真正懂怎么练。所以,别被概念绑架,多关注实际效果。


三、实战技巧:从计划到交付的每一个坑

3. 为什么“可预测性”比“速度”更重要

第3篇文章《Why Predictability Trumps Velocity in Software Engineering》是那种你读完会拍大腿的文章。很多团队盲目追求“速度”(Velocity),也就是每个Sprint能完成多少故事点。但作者指出,速度高不代表交付价值高。如果你这周跑得飞快但下周突然掉到零,那对业务方来说就是灾难。

真正的关键是可预测性——让业务方知道“下个版本什么时候能上线,能上线什么”。作者建议用累积流图(Cumulative Flow Diagram) 来监控工作项在各个环节的停留时间,而不是单纯看故事点。具体做法:

  • 在Jira或Trello里给每个任务打上时间戳
  • 每周统计从“待办”到“完成”的平均周期时间
  • 如果周期时间突然变长,说明有瓶颈(比如测试排队)

数据说话:一个团队如果能把周期时间从10天降到5天,同时保持稳定,那比把速度从20点提高到30点但波动大要强得多。

4. 用户反馈:直接和间接两手抓

第4篇文章讲怎么在开发全生命周期里收集用户反馈。很多人以为用户反馈就是发问卷或者看App Store评论,但作者给出了更细致的分类:

  • 直接反馈:用户访谈、可用性测试、NPS调查。这些适合在早期(需求阶段)和后期(发布后)做。
  • 间接反馈:点击热力图、会话录制、A/B测试数据。这些适合在开发过程中持续监控。

一个具体的例子:作者团队在开发一个新功能时,先用原型做5场用户访谈(直接),发现用户对某个按钮的理解有偏差。然后他们修改了设计,上线后用Hotjar录制了100个用户的会话(间接),发现点击率提升了30%。这种“先定性再定量”的组合拳,比单靠一种方法靠谱得多。

5. 文档驱动开发:别让文档变成废纸

第7篇文章《What Do You Know About Document-Driven Development?》听起来有点反直觉——敏捷不是强调“可工作的软件高于详尽文档”吗?但作者的意思是:文档不是不要,而是要“有用”。

什么是有用的文档?

  • 架构决策记录(ADR):每次做重大技术选型时,写一个简短的文档,记录“为什么选A不选B”。这样半年后回来不会骂自己。
  • API文档:自动生成(比如Swagger),而不是手写Word文档。
  • 用户故事地图:用大纸和便利贴画出整个用户旅程,比任何PRD都直观。

作者还分享了一个反面案例:某团队花了两周写了一份50页的PRD,结果开发到一半需求变了,文档直接作废。后来他们改成“一张图+3个用户故事”的格式,每次迭代只更新那3个故事,效率反而更高。

6. 一周项目计划:好到你想裱起来

第6篇文章提供了一个非常实用的模板——每周项目计划。作者说,很多团队做Sprint Planning时喜欢把整个Sprint的21天都排满,但现实是计划赶不上变化。他的做法是:

  • 周一上午:团队花30分钟,把本周最重要的3-5个任务列出来(不是全部,是重点)。
  • 每天站会:只回答三个问题——昨天做了什么、今天打算做什么、有什么阻碍。
  • 周五下午:花15分钟回顾,问自己“本周最大的收获是什么?最大的坑是什么?”

关键点:这个计划不是用来约束团队的,而是用来推理未来的。比如,如果周三发现某个任务比预期多花了两天,那就主动调整周五的目标,而不是硬撑到周五再告诉业务方“延期了”。这种“主动暴露风险”的做法,才是敏捷的精华。


四、框架对比:Scrum vs Kanban,别选错了

7. Kanban vs Scrum:你的团队到底需要哪个?

第9篇文章《Kanban Vs. Scrum》是那种你看完就能直接拿去跟老板汇报的。数据先摆出来:56%的敏捷团队在用Scrum,但Kanban的增长速度很快。怎么选?作者给出了三个判断维度:

维度 Scrum Kanban
迭代周期 固定(比如2周) 无固定周期,持续交付
角色 Product Owner, Scrum Master, Dev Team 无强制角色,通常保留PO
变更容忍度 迭代内尽量不改需求 随时可以加/减任务
适合场景 需求相对明确,团队需要节奏感 需求频繁变化,运维类工作多

一个真实的例子:作者之前带的一个团队做内部工具(IT运维),需求每天都变,用Scrum每次Sprint Planning都像在猜谜。后来切到Kanban,把WIP(在制品)限制为3个任务,团队反而觉得轻松了,交付速度也提升了20%。

8. 五大必开会议:站会、演示、计划、回顾、全员会

第22篇文章《There Are Only 5 Meetings》的作者非常直接:别搞那么多会,你需要的只有这5种:

  1. 每日站会(15分钟)——同步状态,暴露阻碍
  2. Sprint演示(30分钟)——给业务方看成果,收集反馈
  3. Sprint计划(1-2小时)——确定下个迭代做什么
  4. Sprint回顾(1小时)——团队内部复盘,改进流程
  5. 全员会(每月一次)——全公司对齐大方向

作者特别强调:不要开“状态更新会”,那是站会该做的事。也不要有“评审会”和“回顾会”之外的额外会议。如果一个会议没有明确的产出(比如一个决策、一个任务列表),那就砍掉。

9. 站会是不是浪费时间?两个技巧让它值回票价

第25篇文章《Is The Daily Standup A Waste Of Time?》是那种你读完会立刻想试试的。作者承认,大多数站会确实很无聊——大家轮流说“昨天干了啥,今天要干啥”,然后散会。但问题在于,如果没人真正听,那就是浪费时间。

他给了两个技巧:

  • “停车标志”法:在站会结束时,每个人用一句话说“我今天需要谁的帮助”。如果没人需要帮助,那站会就提前结束。这样能避免无意义的闲聊。
  • “三分钟规则”:如果某个问题需要深入讨论,不在站会上解决,而是会后拉一个“会后会”(3个人,15分钟)。这样站会就不会变成技术讨论会。

我自己试过“停车标志”法,效果很好——团队里有人发现自己卡在测试环境配置上,另一个同事立刻说“我昨天刚搞定,会后我教你”。这种即时互助,就是站会最大的价值。


五、技术深度:从12-Factor App到MVC模式

10. 12-Factor App:云原生敏捷的基石

第13篇文章《The 12 Factor App》是每个做微服务的人必读的。作者说,从单体架构转向敏捷微服务,12-Factor原则是必不可少的指南。我挑几个最关键的展开:

  • 代码库:一份代码库,多份部署。也就是说,开发、测试、生产环境应该用同一份代码,只是配置不同。
  • 依赖:显式声明依赖。比如用requirements.txt或package.json,而不是靠服务器上“恰好装了某个库”。
  • 配置:把配置(数据库URL、API密钥等)存到环境变量里,而不是写死在代码里。这样同一个Docker镜像可以部署到不同环境。
  • 后端服务:把数据库、缓存、消息队列等视为“附加资源”,可以随时替换。比如从MySQL换成PostgreSQL,代码不应该改一行。
  • 构建、发布、运行:严格分离这三个阶段。构建阶段编译代码,发布阶段把构建产物和配置绑定,运行阶段启动进程。这样你随时可以回滚到上一个发布版本。

一个实际案例:作者团队之前用Spring Boot做微服务,部署时经常因为环境变量没配好而出问题。后来他们把所有配置移到Kubernetes的ConfigMap里,配合12-Factor原则,部署失败率从30%降到了5%。

11. MVC模式在JavaScript中的实践

第27篇文章讲的是作者如何在JavaScript项目里用MVC(Model-View-Controller)模式来分离代码。虽然现在前端框架(React、Vue)已经内置了类似的模式,但理解底层原理还是很有价值的。

作者给出了一个简单的Todo应用示例:

// Model: 负责数据
class TodoModel {
  constructor() {
    this.todos = [];
  }
  addTodo(text) {
    this.todos.push({ text, completed: false });
  }
  toggleComplete(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('change', (e) => {
      if (e.target.type === 'checkbox') {
        const index = e.target.dataset.index;
        this.model.toggleComplete(index);
        this.view.render(this.model.todos);
      }
    });
  }
}

这个例子的价值在于:即使不用框架,你也能写出可维护的代码。MVC让数据、UI、逻辑各司其职,修改一个功能时不会牵连到其他部分。这在敏捷开发中尤其重要——因为需求经常变,代码必须容易改。


六、优先级与估算:别让故事点变成玄学

12. 10种优先级排序技术

第24篇文章《10 Prioritization Techniques for Agile Product Development》列出了10种方法,我挑3个最实用的:

  • MoSCoW法:Must have(必须有)、Should have(应该有)、Could have(可以有)、Won't have(这次没有)。简单粗暴,适合快速决策。
  • Kano模型:把功能分为“基本型”(没有会骂)、“期望型”(有会开心)和“兴奋型”(没有想不到,有会惊喜)。比如,一个电商App的“搜索”是基本型,“一键下单”是期望型,“AR试穿”是兴奋型。
  • 价值-复杂度矩阵:画一个2x2矩阵,横轴是复杂度(低到高),纵轴是价值(低到高)。优先做“高价值低复杂度”的功能,砍掉“低价值高复杂度”的。

一个真实案例:作者团队在做支付功能时,用MoSCoW法把“支持信用卡”定为Must,把“支持比特币”定为Won't have。结果开发周期缩短了40%,因为团队没在次要功能上浪费时间。

13. 任务估算:一个初级开发者的深度剖析

第15篇文章《A Junior Developer Explains Task Estimation》是那种“新人视角但老手也能学到东西”的文章。作者说,估算不准的根源不是“不努力”,而是信息不足。他给出了一个改进方法:

  • 分解任务:把一个大任务(比如“实现用户登录”)拆成子任务(前端表单、后端API、数据库表、测试)。每个子任务的估算误差会小很多。
  • 使用历史数据:如果团队之前花3天完成了类似的“重置密码”功能,那“登录”功能也差不多。
  • 加入缓冲:估算时间乘以1.5,因为总有意外(比如第三方API挂了、需求临时变了)。

作者还分享了一个小技巧:用“T恤尺码”(S/M/L/XL)代替具体天数。因为人天生不擅长估算绝对时间,但擅长比较相对大小。比如,一个任务如果是“L”,另一个是“S”,那L肯定比S大,但具体大多少,团队讨论一下就能达成共识。


七、敏捷在非敏捷环境里的生存指南

14. 如何在非敏捷世界里保持敏捷

第23篇文章《How to be Agile in a Non-Agile World》是给那些在大公司、传统行业里做开发的工程师的。作者说,很多时候你的老板、业务方、甚至测试团队都还在用瀑布模型,你一个人搞敏捷就像在沙漠里游泳。

他的建议是:

  • 不要公开喊“我们要敏捷”,而是默默做事。比如,你可以在你负责的模块里用迭代式开发,每周给业务方看一个可工作的版本。他们看到效果后,自然会问“你们怎么做到的?”
  • 用数据说话。如果你能证明“两周交付一个版本”比“三个月交付一个版本”的缺陷率低30%,老板就会支持你。
  • 找到盟友。在测试团队里找一个愿意尝试自动化测试的人,在运维团队里找一个愿意搞CI/CD的人。你们几个小团队先跑起来,再慢慢影响其他人。

一个真实案例:作者在一家银行工作,整个IT部门都用瀑布。他偷偷在自己的项目里用GitLab CI做了自动化测试和部署,把发布周期从3个月缩短到了2周。3个月后,其他团队开始主动问他“你们用的什么工具”。


八、总结与资源

好了,上面这些就是我在这98篇文章里挖出来的干货。从敏捷的哲学争议,到具体的站会技巧,再到12-Factor App和MVC模式,每个点我都尽量用自己的理解和实践经验做了展开。

如果你想深入阅读,可以直接去HackerNoon搜索这些文章,或者访问LearnRepo.com,那里有按热度排名的完整列表。记住,敏捷不是银弹,但如果你理解它的原理并灵活应用,它绝对能帮你和团队少走很多弯路。

最后,分享一个我自己的体会:敏捷最核心的其实不是流程,而是反馈循环——你做得越快,反馈来得越快,你就能学得越快。所以,别纠结于“我们是不是在搞Scrum”,多问问自己“我们有没有在持续改进”。这才是真敏捷。

祝你编码愉快,少踩坑。

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

取消
编辑工具
取消