敏捷看板的递进

青龙是京东物流配送的核心支撑系统,也是京东订单时效的重要保障之一。你是否曾有这样的疑问,配送系统业务流程繁杂、战略项目层出不穷、与日俱增的访问量与背后技术体系需要不断优化……今天我们就来分享京东青龙研发部,是如何运用敏捷精益化的管理方法,实现了产品的快速交付。

传统的瀑布模式之所以被诟病,其核心是交付周期长,上线效果弱,用户差评高。而所有问题的根源,就在于无法实现产品的快速,持续交付和快速反馈。我们今天要看到的是敏捷精益管理中的看板部分,就像这样,一个普通的任务在看板里,被拆成了N个状态。把所有的项目和产品拆分为一个一个落地的产品需求,然后根据这些需求进行迭代跟进,一个迭代往往由两周构成。

从业务需求转化为可以落地开发的任务,再到可以交付使用的产品,都要一丝不苟地经历这样的成长与蜕变:

从需求到产品,往往经历这四个阶段:IDEA-AGAIN-BACKLOG-NEXT。
a)倘若霎时间萌生一个想法:“我们要把挪威冰鲜三文鱼送到千家万户”,那么千万不要错过,且把思绪融于笔端,记录在IDEA列里。

b)当IDEA逐渐孵化,开始滋生萌芽时,我们再次细化,“是否热带水果也可以送?是否查干湖冻鱼也可以?…不仅仅京东自营平台要支持,物流开放平台也要支持…”,需求得以再次升华,体现在AGAIN一栏里。

c)怎么结合现有的配送模式使得效益最大化,怎么全方位支持,网站下单后,经过订单流转的各个系统,如何有效的识别与控制……,这些问题逐一解决后,业务的一个想法便形成了初步的需求,有板有眼,列入Backlog栏里。

d)当Backlog逐渐成熟,可以进入迭代中时,则正是挪入Next栏中。Next中的需求一般以用户故事的形式来体现,“作为….我想要…以便于达成….的目的”这样格式化的用户故事并不是形式主义,而是强迫我们去思考需求背后的目的,促使对需求本身的深度挖掘。

e)再辅以Acceptance,以及Deadline。在主要方向的验证点和交付日期明确后,我们就可以正是进入开发了。

2.开发阶段也被拆分为“TODO-DOING-DONE”三个阶段。
a)TODO阶段,我们要对进入迭代内的任务,即Next栏中的每项内容进行拆分。头脑风暴实现方式,架构设计、数据库建模设计、交互设计,统统体现在这里。根据细致的讨论,我们把需求任务拆分为一个一个可以安心开发的子任务。每个子任务的周期建议为1-2天,这样,风险就可以被我们控制在2天以内。

b)DOING阶段中,把TODO阶段拆分细化后的战利品拖动过来,进行开发。开发中有任何问题由开发人员主动召集大家讨论,若存在较大的风险或者需求有变化则及时变更航道,把影响控制在最小的范围内。

c)DOING完成后,就可以进入DONE阶段了。我们的每一个需求点都被拆解为落地的任务,并细化到天,每天晨会拖动看板的满足感和成就感是不言而喻的。任务拖入DONE就代表着已经开发完成,junit自测完成,可以交付测试了。

3.测试阶段,同样也细分为“TODO-DOING-DONE”三个阶段。
a)TODO阶段,对任务需求的用例进行评估,并整理出测试用例。需要性能测试的部分,也在这个阶段尽可能的体现出,以便在以后的测试阶段可以考虑的周全。

b)从每一个子任务的测试DOING到DONE,标志着该User Story测试通过,可以进入上线的准备了。

4.最后还要介绍DEPLOY、PENDING、WASTE三个阶段,这三个阶段分别代表着上线完成,挂起,垃圾站三种状态。
a)由于外部资源的以来或者其他外部资源的介入而引起的搁置,故而PENDING必不可少,经过产品的推敲,和架构的升级,PENDING的任务可以重回DEVELOP或者TEST,同时也能从另外一个维度来审视任务制定的合理性。

b)任务若被丢弃,则列入到WASTE一栏中。若是由于法务、合同等因素引起的,在情理之中;若是由于业务分析不够透彻,接口性能设计不合理,那么在Sprint Retrospective时就要被列入需要重点Review的对象了,当然,小伙伴们一起决策。

纸质看板的方式在青龙研发部经过了不断的实践和优化,目前还增加了一种电子大屏的看板,作为解决纸质看板一些局限性的补充。比如想对一个User Story增加检查项时,可以直接标示每项的完成结果;当User Story的截止日期临近,可以进行主动提醒;异地开站立早会时,不再受地域限制信息不同步;迭代中被归档任务检索时的内容及时同步等。电子大屏看板和纸质看板的核心都是敏捷精益的管理方法,两种方式互相补充,缺一不可。

电子看板可以详细的记录checklist,以及对逐条内容进行状态进度跟踪。并且方便设置每一个任务的Deadline,到期以及做旧的实时提醒,帮助每一个团队成员更好的开展工作。每一项任务可以根据重要紧急程度,分为四种不同的颜色,根据优先级从上至下的排序,都是很好的敏捷体验。

敏捷强调的是以用户为中心,主推的是大系统小做,小系统大为的观念。我们通过持续交付,不断堆积收获的喜悦,而在每个很小的跌代里不断发起冲刺,团队里的每个人都关心所负责任务从IDEA萌芽到上线完成,到运营及用户的反馈,让我们真正成为产品的主人。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Go语言(也称为Golang)是由Google开发的一种静态强类型、编译型的编程语言。它旨在成为一门简单、高效、安全和并发的编程语言,特别适用于构建高性能的服务器和分布式系统。以下是Go语言的一些主要特点和优势: 简洁性:Go语言的语法简单直观,易于学习和使用。它避免了复杂的语法特性,如继承、重载等,转而采用组合和接口来实现代码的复用和扩展。 高性能:Go语言具有出色的性能,可以媲美C和C++。它使用静态类型系统和编译型语言的优势,能够生成高效的机器码。 并发性:Go语言内置了对并发的支持,通过轻量级的goroutine和channel机制,可以轻松实现并发编程。这使得Go语言在构建高性能的服务器和分布式系统时具有天然的优势。 安全性:Go语言具有强大的类型系统和内存管理机制,能够减少运行时错误和内存泄漏等问题。它还支持编译时检查,可以在编译阶段就发现潜在的问题。 标准库:Go语言的标准库非常丰富,包含了大量的实用功能和工具,如网络编程、文件操作、加密解密等。这使得开发者可以更加专注于业务逻辑的实现,而无需花费太多时间在底层功能的实现上。 跨平台:Go语言支持多种操作系统和平台,包括Windows、Linux、macOS等。它使用统一的构建系统(如Go Modules),可以轻松地跨平台编译和运行代码。 开源和社区支持:Go语言是开源的,具有庞大的社区支持和丰富的资源。开发者可以通过社区获取帮助、分享经验和学习资料。 总之,Go语言是一种简单、高效、安全、并发的编程语言,特别适用于构建高性能的服务器和分布式系统。如果你正在寻找一种易于学习和使用的编程语言,并且需要处理大量的并发请求和数据,那么Go语言可能是一个不错的选择。
Go语言(也称为Golang)是由Google开发的一种静态强类型、编译型的编程语言。它旨在成为一门简单、高效、安全和并发的编程语言,特别适用于构建高性能的服务器和分布式系统。以下是Go语言的一些主要特点和优势: 简洁性:Go语言的语法简单直观,易于学习和使用。它避免了复杂的语法特性,如继承、重载等,转而采用组合和接口来实现代码的复用和扩展。 高性能:Go语言具有出色的性能,可以媲美C和C++。它使用静态类型系统和编译型语言的优势,能够生成高效的机器码。 并发性:Go语言内置了对并发的支持,通过轻量级的goroutine和channel机制,可以轻松实现并发编程。这使得Go语言在构建高性能的服务器和分布式系统时具有天然的优势。 安全性:Go语言具有强大的类型系统和内存管理机制,能够减少运行时错误和内存泄漏等问题。它还支持编译时检查,可以在编译阶段就发现潜在的问题。 标准库:Go语言的标准库非常丰富,包含了大量的实用功能和工具,如网络编程、文件操作、加密解密等。这使得开发者可以更加专注于业务逻辑的实现,而无需花费太多时间在底层功能的实现上。 跨平台:Go语言支持多种操作系统和平台,包括Windows、Linux、macOS等。它使用统一的构建系统(如Go Modules),可以轻松地跨平台编译和运行代码。 开源和社区支持:Go语言是开源的,具有庞大的社区支持和丰富的资源。开发者可以通过社区获取帮助、分享经验和学习资料。 总之,Go语言是一种简单、高效、安全、并发的编程语言,特别适用于构建高性能的服务器和分布式系统。如果你正在寻找一种易于学习和使用的编程语言,并且需要处理大量的并发请求和数据,那么Go语言可能是一个不错的选择。
Go语言(也称为Golang)是由Google开发的一种静态强类型、编译型的编程语言。它旨在成为一门简单、高效、安全和并发的编程语言,特别适用于构建高性能的服务器和分布式系统。以下是Go语言的一些主要特点和优势: 简洁性:Go语言的语法简单直观,易于学习和使用。它避免了复杂的语法特性,如继承、重载等,转而采用组合和接口来实现代码的复用和扩展。 高性能:Go语言具有出色的性能,可以媲美C和C++。它使用静态类型系统和编译型语言的优势,能够生成高效的机器码。 并发性:Go语言内置了对并发的支持,通过轻量级的goroutine和channel机制,可以轻松实现并发编程。这使得Go语言在构建高性能的服务器和分布式系统时具有天然的优势。 安全性:Go语言具有强大的类型系统和内存管理机制,能够减少运行时错误和内存泄漏等问题。它还支持编译时检查,可以在编译阶段就发现潜在的问题。 标准库:Go语言的标准库非常丰富,包含了大量的实用功能和工具,如网络编程、文件操作、加密解密等。这使得开发者可以更加专注于业务逻辑的实现,而无需花费太多时间在底层功能的实现上。 跨平台:Go语言支持多种操作系统和平台,包括Windows、Linux、macOS等。它使用统一的构建系统(如Go Modules),可以轻松地跨平台编译和运行代码。 开源和社区支持:Go语言是开源的,具有庞大的社区支持和丰富的资源。开发者可以通过社区获取帮助、分享经验和学习资料。 总之,Go语言是一种简单、高效、安全、并发的编程语言,特别适用于构建高性能的服务器和分布式系统。如果你正在寻找一种易于学习和使用的编程语言,并且需要处理大量的并发请求和数据,那么Go语言可能是一个不错的选择。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值