敏捷开发是一种软件开发思想,目标是:快速交付高质量软件,并能灵活应对需求变化。

它来自2001年的《敏捷宣言》,重视:个体互动、可工作的软件、客户合作、响应变化。特点:灵活、沟通、反馈、持续改进。

敏捷开发主要采用迭代式开发(Iteration)或冲刺开发(Sprint),每个Sprint通常为2~4周。

流程:需求收集->计划会议->迭代开发->每日站会->测试与评审->迭代回顾

  • 需求收集:由产品经理或客户提出的功能需求,每个需求写成用户故事
  • 计划会议:团队从产品代办列表中选择本次迭代要做的任务,明确每个任务的负责人和完成标准
  • 迭代开发:团队在固定周期内实现功能,每日站立开会,每人回答昨天做了什么、今天准备做什么、有什么问题或障碍
  • 测评与评审:展示完成的功能,让客户或产品负责人进行评审并给出反馈
  • 回顾会议:团队思考本次迭代中,哪些做的好,如何改进,如何更高效

常见框架

  1. Scrum(最常见)
    事件:Sprint、每日站会、评审会、回顾会
  2. Kanban(看板方法)
    永可视化“任务流”管理开发状态
    to do->doing->done
  3. XP(Extreme Programming,极限编程)
    偏重技术实践:测试驱动开发(TDD)、持续集成(CI)、结对编程、重构与代码质量

优点

灵活性高、快速响应变化;客户反馈及时、风险可控;提高质量与透明度

缺点

不适合需求非常固定的大型项目;团队沟通成本高;缺乏经验的团队容易混乱