在互联网行业里经常可以看到“敏捷开发”这个词。那么“敏捷开发”究竟是什么?“敏捷”在哪里?应该如何实现呢?今天我们来聊聊这个话题。
什么是敏捷开发?
以人为核心、迭代、循序渐进的开发方法。在敏捷开发中,软件项目的构建被切分成多个子项目,各个子项目的成果都经过测试,具备集成和可运行的特征。
换言之,就是把一个大项目分为多个相互联系,但也可独立运行的小项目,并分别完成,在此过程中软件一直处于可使用状态。
敏捷的核心思想
小步快跑、快速迭代、拥抱变化:不追求一开始就尽善尽美,而是把最核心的东西先交付MVP,根据市场反馈来对需求进行验证和矫正,以灵活敏捷的改变调整去适应变化,在一次次持续迭代中达到最终目标。
敏捷的优势
敏捷开发属于增量式开发,对于需求范围不明确,需求变更较多的项目而言,可以很大程度上响应及拥抱变化。
对于互联网产品而言,市场风向转变很快,需要一种及时快速的交付形式,而敏捷开发则能更好地适用于此。
敏捷开发可最大程度体现80/20法则的价值,通过增量迭代,每次都优先交付那能产生80%价值效益的20%功能。能最大化单位成本收益。
可能的误区
敏捷就是越快越好❌
仅仅把“敏捷”理解为速度快是错误的。我们不应该只追求速度,这往往会带来很多问题。要记住,效率是高于速度的,解决问题才是第一位的。
主要原则
拥抱变化
对于局势或一切事物的变化做到积极的适应。可持续性
敏捷开发的方法应该是可持续的,而不是短期的或是对后续开发有不良影响的。ROI最大化
ROI(投资回报率)简单来说就是收入和投资的比值。小步迭代,快速试错
减小迭代步幅,加快迭代的步频,根据反馈不断调整。
小案例
- 客人到餐馆来点菜(新项目)
- 不确定客户想吃什么的时候,通常选好餐厅后会先看看餐厅的菜单(客户往往提不出具体的需求)
- 根据图文菜单,客人点了个菜(根据原型和设计稿,基本确定了需求)
- 后厨开始准备(项目启动)
- 配菜、炒菜,先上了两盘,让客人尝了尝味道(先提供可用实例给客户用)
- 客人说还不错,后厨继续准备后面的菜,陆续上菜(不断迭代,不断测试)
- 上菜过程中,客人突然发现有个菜的味道太淡了,让后厨加了点盐又端上来了(敏捷的好处,可以不断测试和需求变更)
- 又上了两盘,不够辣,又拿到后厨加了辣(敏捷的坏处,需求没有提前明确,反复迭代,增加了工作量)
- 到最后两盘时,客人要求换两个菜,还好没炒(迭代的好处,随时接受需求变更)
- 客人吃完,很满意(基本满足了全部的要求)