京东PMO | 为你深入解读“敏捷开发”

Posted 京东零售技术

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了京东PMO | 为你深入解读“敏捷开发”相关的知识,希望对你有一定的参考价值。

互联网行业的业务需求变化快,交付周期成为企业核心竞争力之一,轻量级的,更能适应变化的敏捷软件开发方法,开始被认可并迅速流行。


在京东,越来越多的项目也已经或计划采用敏捷开发模式了。那么,什么是敏捷开发?为什么需要敏捷开发?以及敏捷试点项目开始前需要做哪些准备工作?本文将对此做个简单的介绍。


为什么需要敏捷开发?

敏捷开发的出现很好的解决了传统瀑布式开发的痛点:

传统的瀑布式开发是预定义式的阶段性开发模式,需求->设计->开发->测试->部署上线。

它的主要痛点是:


1、对需求变化的响应差,业务方或用户在早期见不到实际的产品,没法及时给出反馈。如果在后期需求变化,因为设计和编码已经部分完成,软件变更的成本非常高。

2、早期的问题可能到后期的测试才能发现,而研发如果对需求理解有偏差,会引起及其严重的资源浪费和项目延期。

3、不利于人员的协作。各阶段有专门的人负责,工作未完成,进入下一阶段前,其他资源在等待阶段。


而敏捷不断的进行迭代增量开发,小批量,早交付,及时获得用户反馈。敏捷本质是一个实验性的过程,不断的根据实际情况,做出适应性的调整,最终交付符合业务价值的产品。同时敏捷非常强调团队合作,鼓励业务,产品,研发的紧密配合。

京东PMO | 为你深入解读“敏捷开发”

在京东,已经通过了把大项目拆解成小项目,分为项目一期,二期等上线,减少了瀑布模型带来的弊端。但有些项目工期还是要几个月,这种情况可以尝试敏捷开发。

 

有人对瀑布和敏捷的比较做了个造车的形象比喻:瀑布式方法造汽车,客户只有到最后才能看到产品。而敏捷方法每个迭代结束,都会产出测试过的交付物,让客户试用,根据反馈不断调整,客户的满意度不断提高。

京东PMO | 为你深入解读“敏捷开发”

此图片来源自Henrik Kniberg的博客


以上是敏捷带来的很多好处,但不是说传统的瀑布方式就是一无是处了。如果项目的需求很稳定,确定性高,比如平台改造,组件化等,用瀑布方法也很好。瀑布和敏捷都有自己的适用场景,可以并存。


什么是敏捷

敏捷是指有能力对业务需求的变化做出快速响应,同时控制风险。能够灵活的,快速的高效的根据实际情况做出适应性调整。


敏捷开发是以人为核心,业务价值驱动的,采用迭代、增量的方法的一种轻量级的开发模式,能够很好地适应需求变化,快速交付高质量的软件。


敏捷也有自己的价值观,体现在下面的敏捷宣言里(2001年发表) 敏捷宣言本质是揭示一种更好的软件开发方式,启迪人们重新思考软件开发中的价值和如何更好的工作。

京东PMO | 为你深入解读“敏捷开发”


如何开始敏捷项目?

部门内初次试用敏捷方式,一般会先运行个试点项目,积累经验,并根据实际情况做持续的改进。

京东PMO | 为你深入解读“敏捷开发”

1、充分沟通,达成一致

在敏捷实施开始前,需要和业务方,团队充分的沟通,让大家理解为什么需要敏捷开发,以及需要达到哪些目标等。

如能得到领导层面的支持认可,将会更顺畅的实施。

 

2、做好敏捷的培训辅导工作

如果团队从未实践过敏捷,初期需要一些培训和辅导工作。同时多和已经应用敏捷的团队做交流,借鉴经验。如有培训需求,也可以联系笔者或企业信息化部的技术学院。

 

3、工具的准备

工具的支持在敏捷实践中起着很大的作用。理想的情况下,如业务需要,从代码检入source,到部署到生产环境可以实现自动化,做持续的集成,测试和部署。

 

同时工具需支持需求管理,任务分配跟踪,报告生成等功能。每一个需求,可以链接到对应的任务,代码,测试用例,BUG。(例如:JIRA提供的敏捷功能)

 

各种工具很多,京东也正在投入精力做工具的建设,如在开发的行云系统。和已经使用的一些自动化测试工具,sonar,乐哦等。开始敏捷前,可以选用合适的工具做支持。


下面是业内常见的DevOps工具链:

京东PMO | 为你深入解读“敏捷开发”


4、后勤的准备

理想的情况,团队成员座位要比较靠近,方便沟通交流,有团队独立的工作区。同时需要一些大白板,玻璃墙,便事帖等工具,以方便大家讨论问题,应尽量准备好所需的环境。


京东PMO | 为你深入解读“敏捷开发”


5、因地制宜的选择合适的敏捷实践

每一个项目,团队和产品都不一样,需要根据项目/产品具体情况,灵活选择最适合自己的敏捷实践,避免教条化。


京东PMO | 为你深入解读“敏捷开发”

常见的敏捷方法有Scrum,看板和XP极限编程几种。其中scrum和看板注重于开发的管理,XP注重于编程实践。实际应用中可以将几种方式结合。

 

另外,还有一些敏捷框架方法,是适用于规模化的,大型的,需要多个团队,几十人或上百人以上合作开发同一个产品的应用场景的(例如:SAFe,LeSS),本文不再赘述。


下面是常见的敏捷方法的简单介绍,大家根据实际情况采用适合的方法:


京东PMO | 为你深入解读“敏捷开发”


SCRUM

Scrum采用固定的迭代周期,由一些标准的事件组成,包括需求梳理会议,迭代计划会,每日站会,演示会和回顾会。这些会构成了完整的PDCA反馈环,形成稳定的软件交付节奏。

京东PMO | 为你深入解读“敏捷开发”

看板

SCRUM强调专注,在一个迭代周期里,不鼓励需求经常的变化,并且实施起来成本比较高。(需要一定的培训和角色分配)


如果项目的需求变化更加的频繁,计划比较难做,或者需要快速启动敏捷方式。看板可以是一个很好的选择。


看板的规则包括可视化整个需求交付的过程,限制并发任务数,收集度量数据持续的优化等。

京东PMO | 为你深入解读“敏捷开发”

极限编程

极限编程的一些实践方法,包括TDD,结对编程等,实施起来成本比较高,需要根据实际情况做出选择。

上面介绍了开始敏捷项目前,要做的一些准备工作。

战术有千条,首条要肯打。只停留在理论阶段,永远也无法实践落地,所以我们的准备工作不要求尽善尽美,尽快开始实施敏捷,在实践中才能不断的学习和提高。

结束语

本文介绍了敏捷开发带来的好处和实施敏捷前要做的一些准备工作。但是需要提到,敏捷不是万能的,它不是能快速解决一切问题的‘银弹’。但敏捷能很好的暴露问题,促进问题的解决。

希望大家在实践中不断总结经验,沉淀成有京东特色的敏捷方法论,实践集。

以上是关于京东PMO | 为你深入解读“敏捷开发”的主要内容,如果未能解决你的问题,请参考以下文章

京东拍卖团队 | 敏捷开发初体验

521让小质用敏捷开发之Scrum为你扫盲

敏捷开发流程

深度解读 | 微信教父张小龙所说的「敏捷开发」

Scrum团队和 PMO协作配合提高项目成功率

深入核心的敏捷开发