对于从事IT行业工作的人来说,每个人都熟悉“敏捷开发”一词。 但是对于那些不知道的人,可能是因为他们在书中已经看到或听说过它。实际上,敏捷开发不是一种技术或工具,而只是一种软件开发方法,也可以简单的理解为一种思想方法。那么什么是敏捷开发?敏捷开发和迭代开发是一回事么?
什么是敏捷开发?
敏捷开发是一种以人为核心、迭代、循序渐进的开发方法。在敏捷开发中,软件项目的构建被切分成多个子项目,各个子项目的成果都经过测试,具备集成和可运行的特征。换言之,就是把一个大项目分为多个相互联系,但也可独立运行的小项目,并分别完成,在此过程中软件一直处于可使用状态。
例如,开发某个系统,需求确定后,首先页面ui进行设计,同时针对某些功能模块进行开发,说白了就是不影响自己干活的情况下,执行项目其他工作。
敏捷开发和迭代开发是一回事么?
概括来讲,敏捷开发就是一种以用户的需求进化为核心,迅速迭代、循序渐进地进行软件开发的方法,核心是快速响应和持续迭代。要保证在迭代周期内,团队成员思想保持高度一致、以共同的节奏和共同的周期完成周期性运转,保证在每一个周期的同一时间点,团队中的每一个人做的事情是相对一致的。迭代也让团队内外有着共同的预期,知道什么时间点该做什么,该交付什么出来。
或许这样理解起来仍有些抽象,那么让我们来看传统的开发是怎样进行的。传统的开发有个专有名词叫“瀑布式开发”,分为5个阶段:需求分析、设计、编码、测试和维护。这套方法定义了很完备的过程规范、严格遵从这种方式会使得研发运作过程十分严谨。但是,在瞬息万变的互联网和移动互联网时代,市场环境、用户需求、竞争对手等因素都在时时发生着改变。传统的瀑布式开发要求针对客户需求写出详细的分析说明书,仅仅这一点就耗费了大量时间,严格遵循规范但不够灵活的流程管理的结果可能是研发人员在开发过程中按部就班,产品技术上没有太多瑕疵,但是正式推出市场时可能部分功能已经落伍。
和瀑布式开发相比,敏捷开发的特点就是“小步快跑、尽早交付”。在市场环境和客户需求变更非常迅速的情况下,为了让需求方尽早地看到结果,并给出反馈,以小步快跑进行开发并尽早地交付新的版本不失为一种好的解决方式。毕竟在互联网时代,可用的产品一定胜过完备的文档,并且及时的迭代可以不断修正问题。
而要做到“小步快跑、尽早交付”,对团队也提出了一定要求:
1.准确分析市场需求
这一点也是很多人对敏捷开发的误区。敏捷并不意味着不做项目计划,只是不一定拘泥于形式,一定要拿出完备规范的开发计划书,有时候敏捷开发的计划就是团队人员在白板上画出的原型和点、甚至是口头计划。这种计划不代表分析不严谨,事实上,敏捷开发比瀑布式开发更加注重需求的分析和计划的制定。因为敏捷开发的核心就是为了及时响应用户和市场的需求,所以并不会死守着计划不进行调整。一旦市场发生变化,即使到了开发后期,敏捷团队也应该对需求的改变持欢迎态度,对原先的计划进行调整,利用变化来为产品创造竞争优势。
2.迭代周期尽可能短,且周期固定
“小步快跑”意味着产品的交付时间间隔越短越好,通常是2-4周,频繁地迭代能保证不断修正BUG,而迭代周期固定则能和用户形成良好的合作关系,便于客户及时反馈,不断地完善和提高产品的用户体验。
3.团队规模最好也能敏捷
敏捷开发对团队的沟通要求很高,过多的人数会造成沟通成本的增高,信息在传达过程中很可能会有偏差,使团队难以保持步调一致。通常情况下,敏捷团队的人数少于20人,超过的话可以再进行团队分割。比如腾讯在管理200人或者更大规模团队时,就会按照产、研、运的组织结构进行复制,把大规模团队拆分为10个20人的团队,或20个10人的团队,分别负责产品的子模块。拆分时会保证子团队人员仍以产、研、运三驾马车组成,具备交付功能,可独立工作,再通过子团队之间的协作,完成整个大产品的研发和交付。
以上就是关于什么是敏捷开发以及敏捷开发和迭代开发是一回事么的全部内容,想了解更多关于敏捷开发的信息,请继续关注中培伟业。