[{"data":1,"prerenderedAt":459},["ShallowReactive",2],{"blog-zh-2026-03-31-agile":3},{"id":4,"title":5,"body":6,"category":439,"date":440,"description":441,"draft":442,"extension":443,"lang":444,"meta":445,"navigation":452,"path":453,"seo":454,"sitemap":455,"slug":456,"stem":457,"updated":440,"__hash__":458},"blog/blog/zh/2026-03-31-agile.md","什么是敏捷开发？新手也能理解的基本概念与四大价值",{"type":7,"value":8,"toc":414},"minimark",[9,14,18,22,25,38,41,44,55,61,65,68,73,79,90,93,97,103,111,117,121,124,132,138,142,145,156,165,169,173,179,187,192,196,199,202,213,217,228,232,288,294,298,301,309,312,320,324,380,384,390,393,401,407,411],[10,11,13],"h2",{"id":12},"什么是敏捷开发","🚀 什么是敏捷开发？",[15,16,17],"p",{},"敏捷开发（Agile Development）是一种通过短周期不断开发与改进，并灵活应对变化的软件开发方法。\n它不同于传统开发方式，不会一开始就确定所有需求，而是在构建可运行的软件过程中不断调整方向。",[10,19,21],{"id":20},"为什么需要敏捷开发","🤔 为什么需要敏捷开发？",[15,23,24],{},"在传统的瀑布开发中，常常会遇到以下问题：",[26,27,28,32,35],"ul",{},[29,30,31],"li",{},"一开始确定的需求在过程中发生变化",[29,33,34],{},"临近上线才发现重大问题",[29,36,37],{},"修改成本非常高",[15,39,40],{},"例如： 如果一个项目开发了一年，最后才发现“方向错了”，损失会非常大。",[15,42,43],{},"因此，敏捷开发采用的是：",[26,45,46,49,52],{},[29,47,48],{},"小步快跑",[29,50,51],{},"快速验证",[29,53,54],{},"持续改进",[15,56,57],{},[58,59,60],"strong",{},"最大的优势是：可以在早期分散和降低风险。",[10,62,64],{"id":63},"敏捷开发的四大价值","⭐ 敏捷开发的四大价值",[15,66,67],{},"敏捷开发基于《敏捷软件开发宣言》，其中最核心的是以下四大价值：",[69,70,72],"h3",{"id":71},"_1-个体与互动-流程与工具individuals-and-interactions","1. 个体与互动 > 流程与工具（Individuals and interactions）",[15,74,75,76],{},"流程和工具很重要，但更重要的是： ",[58,77,78],{},"人与人之间的沟通",[26,80,81,84,87],{},[29,82,83],{},"团队内部沟通",[29,85,86],{},"与客户的交流",[29,88,89],{},"持续反馈",[15,91,92],{},"这些都会直接影响开发质量。",[69,94,96],{"id":95},"_2-可运行的软件-完整的文档working-software","2. 可运行的软件 > 完整的文档（Working software）",[15,98,99,100],{},"在敏捷开发中：",[58,101,102],{},"最重要的是“可以运行的软件”",[26,104,105,108],{},[29,106,107],{},"文档是手段，而不是目的",[29,109,110],{},"真正有价值的是能够运行并产生价值的软件",[15,112,113,114],{},"⚠️ 但这并不意味着不写文档，而是： ",[58,115,116],{},"只写必要的文档",[69,118,120],{"id":119},"_3-客户协作-合同谈判customer-collaboration","3. 客户协作 > 合同谈判（Customer collaboration）",[15,122,123],{},"传统开发往往通过合同固定需求，但现实情况是：",[26,125,126,129],{},[29,127,128],{},"需求会变化",[29,130,131],{},"一开始无法完全定义清楚",[15,133,134,135],{},"因此敏捷强调： ",[58,136,137],{},"与客户持续协作，共同推进开发",[69,139,141],{"id":140},"_4-响应变化-遵循计划responding-to-change","4. 响应变化 > 遵循计划（Responding to change）",[15,143,144],{},"在软件开发中：",[26,146,147,150,153],{},[29,148,149],{},"技术在变化",[29,151,152],{},"市场在变化",[29,154,155],{},"用户需求在变化",[15,157,158,161,162],{},[58,159,160],{},"变化是常态","，因此，比起死守计划，更重要的是： ",[58,163,164],{},"根据情况灵活调整",[10,166,168],{"id":167},"️-常见误解","⚠️ 常见误解",[69,170,172],{"id":171},"敏捷开发是不写文档","敏捷开发是不写文档？",[15,174,175,176],{},"这是一个常见误解。正确理解是：",[58,177,178],{},"写必要的文档，但不过度",[26,180,181,184],{},[29,182,183],{},"文档过多 → 浪费",[29,185,186],{},"文档不足 → 混乱",[15,188,189],{},[58,190,191],{},"关键在于平衡",[10,193,195],{"id":194},"与cowboy-coding的区别","🤠 与Cowboy Coding的区别",[15,197,198],{},"Cowboy Programming是一种依赖个人能力的开发方式。",[15,200,201],{},"特点：",[26,203,204,207,210],{},[29,205,206],{},"可以在没有明确规范的情况下开发",[29,208,209],{},"开发速度可能很快",[29,211,212],{},"但难以维护和复用",[69,214,216],{"id":215},"️-存在的问题","⚠️ 存在的问题",[26,218,219,222,225],{},[29,220,221],{},"代码他人难以理解",[29,223,224],{},"无法顺利交接",[29,226,227],{},"不适合团队开发",[69,229,231],{"id":230},"与敏捷开发的对比","📊 与敏捷开发的对比",[233,234,235,251],"table",{},[236,237,238],"thead",{},[239,240,241,245,248],"tr",{},[242,243,244],"th",{},"项目",[242,246,247],{},"敏捷开发",[242,249,250],{},"Cowboy Coding",[252,253,254,266,277],"tbody",{},[239,255,256,260,263],{},[257,258,259],"td",{},"开发方式",[257,261,262],{},"团队协作",[257,264,265],{},"个人主导",[239,267,268,271,274],{},[257,269,270],{},"代码",[257,272,273],{},"可维护、可继承",[257,275,276],{},"强依赖个人",[239,278,279,282,285],{},[257,280,281],{},"可维护性",[257,283,284],{},"高",[257,286,287],{},"低",[15,289,290,291],{},"敏捷开发强调的是：",[58,292,293],{},"团队可持续开发能力",[10,295,297],{"id":296},"️-与瀑布开发的区别","🏗️ 与瀑布开发的区别",[15,299,300],{},"瀑布开发是一种以计划为中心的开发方式：",[26,302,303,306],{},[29,304,305],{},"需求定义 → 设计 → 实现 → 测试",[29,307,308],{},"单向推进",[15,310,311],{},"而敏捷开发是以应对变化为核心：",[26,313,314,317],{},[29,315,316],{},"短周期迭代",[29,318,319],{},"重视反馈",[69,321,323],{"id":322},"对比总结","📊 对比总结",[233,325,326,337],{},[236,327,328],{},[239,329,330,332,334],{},[242,331,244],{},[242,333,247],{},[242,335,336],{},"瀑布开发",[252,338,339,349,360,371],{},[239,340,341,343,346],{},[257,342,259],{},[257,344,345],{},"迭代（反复改进）",[257,347,348],{},"单向流程",[239,350,351,354,357],{},[257,352,353],{},"需求",[257,355,356],{},"可变化",[257,358,359],{},"固定",[239,361,362,365,368],{},[257,363,364],{},"风险",[257,366,367],{},"分散",[257,369,370],{},"集中",[239,372,373,376,378],{},[257,374,375],{},"客户参与",[257,377,284],{},[257,379,287],{},[10,381,383],{"id":382},"总结","📝 总结",[15,385,386,387],{},"敏捷开发的本质是： ",[58,388,389],{},"在变化中持续交付价值",[15,391,392],{},"核心思想：",[26,394,395,398],{},[29,396,397],{},"不存在完美的计划",[29,399,400],{},"最重要的是“可运行的软件”和“持续反馈”",[15,402,403,404],{},"一句话总结： ",[58,405,406],{},"“先做出来 → 用起来 → 再优化”",[10,408,410],{"id":409},"下一篇","👉 下一篇",[15,412,413],{},"什么是 Scrum？（敬请期待）",{"title":415,"searchDepth":416,"depth":416,"links":417},"",2,[418,419,420,427,430,434,437,438],{"id":12,"depth":416,"text":13},{"id":20,"depth":416,"text":21},{"id":63,"depth":416,"text":64,"children":421},[422,424,425,426],{"id":71,"depth":423,"text":72},3,{"id":95,"depth":423,"text":96},{"id":119,"depth":423,"text":120},{"id":140,"depth":423,"text":141},{"id":167,"depth":416,"text":168,"children":428},[429],{"id":171,"depth":423,"text":172},{"id":194,"depth":416,"text":195,"children":431},[432,433],{"id":215,"depth":423,"text":216},{"id":230,"depth":423,"text":231},{"id":296,"depth":416,"text":297,"children":435},[436],{"id":322,"depth":423,"text":323},{"id":382,"depth":416,"text":383},{"id":409,"depth":416,"text":410},"Software Engineering","2026-03-31T00:00:00.000Z","面向初学者讲解什么是敏捷开发。\n通过实例清晰说明其与瀑布开发的区别，以及四大核心价值（Individuals、Working software 等）。",false,"md","zh",{"tags":446,"series":451},[247,447,448,449,450],"Agile","Scrum","开发方法","软件开发","Agile Guide",true,"/blog/zh/2026-03-31-agile",{"title":5,"description":441},{"loc":453},"agile-what-is","blog/zh/2026-03-31-agile","XkIrFi8a1MdQ7hApH7m8TBYPXCXGwmrIuw1c9fyEnBw",1784966032090]