我国最大的IT项目管理门户网站,国内IT项目管理培训与咨询服务提供商

当前位置:首页 > 敏捷开发 > 正文

为你深入解读“敏捷开发”

2018-11-16 来源:京东商城研发 李志凌
      互联网行业的业务需求变化快,交付周期成为企业核心竞争力之一,轻量级的,更能适应变化的敏捷软件开发方法,开始被认可并迅速流行。
 
      在京东,越来越多的项目也已经或计划采用敏捷开发模式了。那么,什么是敏捷开发?为什么需要敏捷开发?以及敏捷试点项目开始前需要做哪些准备工作?本文将对此做个简单的介绍。
 
为什么需要敏捷开发?
 
      敏捷开发的出现很好的解决了传统瀑布式开发的痛点:
传统的瀑布式开发是预定义式的阶段性开发模式,需求->设计->开发->测试->部署上线。
 
它的主要痛点是:
 
      1、对需求变化的响应差,业务方或用户在早期见不到实际的产品,没法及时给出反馈。如果在后期需求变化,因为设计和编码已经部分完成,软件变更的成本非常高。
      2、早期的问题可能到后期的测试才能发现,而研发如果对需求理解有偏差,会引起及其严重的资源浪费和项目延期。
      3、不利于人员的协作。各阶段有专门的人负责,工作未完成,进入下一阶段前,其他资源在等待阶段。
 
      而敏捷不断的进行迭代增量开发,小批量,早交付,及时获得用户反馈。敏捷本质是一个实验性的过程,不断的根据实际情况,做出适应性的调整,最终交付符合业务价值的产品。同时敏捷非常强调团队合作,鼓励业务,产品,研发的紧密配合。
 
 
      在京东,已经通过了把大项目拆解成小项目,分为项目一期,二期等上线,减少了瀑布模型带来的弊端。但有些项目工期还是要几个月,这种情况可以尝试敏捷开发。
 
      有人对瀑布和敏捷的比较做了个造车的形象比喻:瀑布式方法造汽车,客户只有到最后才能看到产品。而敏捷方法每个迭代结束,都会产出测试过的交付物,让客户试用,根据反馈不断调整,客户的满意度不断提高。
 
此图片来源自Henrik Kniberg的博客
 
      以上是敏捷带来的很多好处,但不是说传统的瀑布方式就是一无是处了。如果项目的需求很稳定,确定性高,比如平台改造,组件化等,用瀑布方法也很好。瀑布和敏捷都有自己的适用场景,可以并存。
 
什么是敏捷?
 
      敏捷是指有能力对业务需求的变化做出快速响应,同时控制风险。能够灵活的,快速的高效的根据实际情况做出适应性调整。
 
      敏捷开发是以人为核心,业务价值驱动的,采用迭代、增量的方法的一种轻量级的开发模式,能够很好地适应需求变化,快速交付高质量的软件。
 
      敏捷也有自己的价值观,体现在下面的敏捷宣言里(2001年发表) 敏捷宣言本质是揭示一种更好的软件开发方式,启迪人们重新思考软件开发中的价值和如何更好的工作。
 
 
如何开始敏捷项目?
 
      部门内初次试用敏捷方式,一般会先运行个试点项目,积累经验,并根据实际情况做持续的改进。
 
1、充分沟通,达成一致
      在敏捷实施开始前,需要和业务方,团队充分的沟通,让大家理解为什么需要敏捷开发,以及需要达到哪些目标等。
如能得到领导层面的支持认可,将会更顺畅的实施。
 
2、做好敏捷的培训辅导工作
      如果团队从未实践过敏捷,初期需要一些培训和辅导工作。同时多和已经应用敏捷的团队做交流,借鉴经验。如有培训需求,也可以联系笔者或企业信息化部的技术学院。
 
3、工具的准备
      工具的支持在敏捷实践中起着很大的作用。理想的情况下,如业务需要,从代码检入source,到部署到生产环境可以实现自动化,做持续的集成,测试和部署。
 
      同时工具需支持需求管理,任务分配跟踪,报告生成等功能。每一个需求,可以链接到对应的任务,代码,测试用例,BUG。(例如:JIRA提供的敏捷功能)
 
      各种工具很多,京东也正在投入精力做工具的建设,如在开发的行云系统。和已经使用的一些自动化测试工具,sonar,乐哦等。开始敏捷前,可以选用合适的工具做支持。
 
下面是业内常见的DevOps工具链:
 
 
4、后勤的准备
      理想的情况,团队成员座位要比较靠近,方便沟通交流,有团队独立的工作区。同时需要一些大白板,玻璃墙,便事帖等工具,以方便大家讨论问题,应尽量准备好所需的环境。
 
5、因地制宜的选择合适的敏捷实践
      每一个项目,团队和产品都不一样,需要根据项目/产品具体情况,灵活选择最适合自己的敏捷实践,避免教条化。
 
 
      常见的敏捷方法有Scrum,看板和XP极限编程几种。其中scrum和看板注重于开发的管理,XP注重于编程实践。实际应用中可以将几种方式结合。
 
      另外,还有一些敏捷框架方法,是适用于规模化的,大型的,需要多个团队,几十人或上百人以上合作开发同一个产品的应用场景的(例如:SAFe,LeSS),本文不再赘述。
 
下面是常见的敏捷方法的简单介绍,大家根据实际情况采用适合的方法:
 
 
SCRUM
      Scrum采用固定的迭代周期,由一些标准的事件组成,包括需求梳理会议,迭代计划会,每日站会,演示会和回顾会。这些会构成了完整的PDCA反馈环,形成稳定的软件交付节奏。
 
 
看板
      SCRUM强调专注,在一个迭代周期里,不鼓励需求经常的变化,并且实施起来成本比较高。(需要一定的培训和角色分配)
 
      如果项目的需求变化更加的频繁,计划比较难做,或者需要快速启动敏捷方式。看板可以是一个很好的选择。
 
      看板的规则包括可视化整个需求交付的过程,限制并发任务数,收集度量数据持续的优化等。
 
 
极限编程
      极限编程的一些实践方法,包括TDD,结对编程等,实施起来成本比较高,需要根据实际情况做出选择。
 
 
      上面介绍了开始敏捷项目前,要做的一些准备工作。
战术有千条,首条要肯打。只停留在理论阶段,永远也无法实践落地,所以我们的准备工作不要求尽善尽美,尽快开始实施敏捷,在实践中才能不断的学习和提高。
 
结束语
      本文介绍了敏捷开发带来的好处和实施敏捷前要做的一些准备工作。但是需要提到,敏捷不是万能的,它不是能快速解决一切问题的‘银弹’。但敏捷能很好的暴露问题,促进问题的解决。
      希望大家在实践中不断总结经验,沉淀成有京东特色的敏捷方法论,实践集。
分享到:

免责声明:
  1、IT项目管理界发布的所有资讯与文章是出于为业界传递更多信息之目的,并不意味着赞同其观点或证实其描述。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请浏览者仅作参考,并请自行核实相关内容。
  2、本站部分内容转载于其他网站和媒体,版权归原作者或原发布媒体所有。如文章涉及版权等问题,请联系本站,我们将在两个工作日内进行删除或修改处理。敬请谅解!

延伸阅读:

more

会议活动

more

公开课

more

PMO

Copyright © 2021 IT项目管理界 版权所有 京ICP备17062359号-4 如转载本站文章,请注明原作者和原发布媒体

本着互联网分享精神,本站部分内容转载于其他网站和媒体,如稿件涉及版权等问题,请联系本站进行删除或修改处理

客服电话:010-89506650 89504891 非工作时间可联系:18701278071(微信) QQ在线:511524637

新闻与原创文章投稿:tougao#cpmta.com 客服邮箱:info#cpmta.com(请将#换成@)

IT项目管理界——我国最大的IT项目管理门户网站,隶属卓橡公司

IT项目管理界官方微信

IT项目管理界官方微信

PMO大会官方微信

PMO大会官方微信