一分钟读懂敏捷开发

什么是敏捷开发?

敏捷开发(Agile)是一种以人为核心、迭代、循序渐进的开发方法。

使用场景:

公司需要开发一个app,原来的过程是:

  • 市场确定需求,并让美工把Ui搞完给研发
  • 研发把app完整完成测试
  • 测试测完 给运营

一整个流程下来 这个app还没上线 就已经被同类产品竞争掉了。

所以敏捷开发就是:

  • 研发先把核心功能搞完,再根据市场的要求进行快速迭代。
目的是载客
敏捷开发模式的分类

敏捷开发的实现主要包括 SCRUM、XP(极限编程)、Crystal Methods、FDD(特性驱动开发)等等。其中SCRUM与XP最为流行。

同样是敏捷开发,XP 极限编程 更侧重于实践,并力求把实践做到极限。这一实践可以是测试先行,也可以是结对编程等,关键要看具体的应用场景。

SCRUM则是一种开发流程框架,也可以说是一种套路。SCRUM框架中包含三个角色,三个工件,四个会议,听起来很复杂,其目的是为了有效地完成每一次迭代周期的工作。在这里我们重点讨论的是SCRUM。

SCRUM的工作流程

学习Scrum之前,我们先要了解几个基本术语:

  • Sprint:冲刺周期,通俗的讲就是实现一个“小目标”的周期。一般需要2-6周时间。

  • User Story:用户的外在业务需求。拿银行系统来举例的话,一个Story可以是用户的存款行为,或者是查询余额等等。也就是所谓的小目标本身。

  • Task:由User Story 拆分成的具体开发任务。

  • Backlog:需求列表,可以看成是小目标的清单。分为Sprint Backlog和Product Backlog。

  • Daily meeting:每天的站会,用于监控项目进度。有些公司直接称其为Scrum。

  • Sprint Review meeting:冲刺评审会议,让团队成员们演示成果。

  • Sprint burn down:冲刺燃尽图,说白了就是记录当前周期的需求完成情况。

  • Rlease:开发周期完成,项目发布新的可用版本。

Paste_Image.png

如上图所示,在项目启动之前,会由团队的产品负责人(Product owner)按照需求优先级来明确出一份Product Backlog,为项目做出整体排期。

随后在每一个小的迭代周期里,团队会根据计划(Sprint Plan Meeting)确定本周期的Sprint Backlog,再细化成一个个Task,分配给团队成员,进行具体开发工作。每一天,团队成员都会进行Daily meeting,根据情况更新自己的Task状态,整个团队更新Sprint burn down chart。

当这一周期的Sprint backlog全部完成,团队会进行Spring review meeting,也就是评审会议。一切顺利的话,会发布出这一版本的Release,并且进行Sprint回顾会议(Sprint Retrospective Meeting)。

总结:现实中的Scrum就是每次迭代要完成的功能。

敏捷开发与Devops

Devops是Development和Operations的合成词,其目标是要加强开发人员、测试人员、运维人员之间的沟通协调。如何实现这一目标呢?需要我们的项目做到持续集成、持续交付、持续部署。

时下流行的Jenkins、Bamboo,就是两款优秀的持续集成工具。而Docker容器则为Devops提供了强大而有效的统一环境。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容