京东业务增长10倍背后的敏捷开发秘籍【案例+分析】

2023-05-16

需求又要改?

项目上线时间又提前了?

老板还嫌增长不够?

团队都开始灰心丧气了?

来看看京东内部是如何解决这些让人焦头烂额的棘手问题。

1


两次失败之后成功支持双11活动

京东每年两次大的的促销活动中都会邀请第三方商家来加入京东的促销活动。在没有新系统之前,执行的方式简直是惨不忍睹啊。全部人工线下组织并手动要求第三方来报名,一个运营人员面对几百个商家通过电话确认商家是否参与本次促销,有怎样的商品参加促销,并要求对方商家发送一份Excel表格给京东再做统计。



于是就产生了一个很自然的需求,所有的商家如想要参加京东的活动,只需要在这套系统上提交一下自己的信息和商品就可完成——即活动管理系统。

你以为就这么一番风顺的投入研发,上线产品,成功支持双11活动了?

Too Young!Naive!‍

一波三折

为了配合促销活动,项目从开发到上线被要求在两个月内完成,于是研发们开始了疯狂的加班之旅。但运营人员在使用系统进行活动发布的时候,发现只能解决一半的问题,剩下的很多工作还是需要手动去完成,甚至根本没法使用(连续两次出现)。而研发团队也在反思为什么自己做的系统,无法达到运营人员的要求呢?这该怎么办?

盲人摸象的教训

团队第一步首先要做的就是分析一下这个系统——到底是谁在用。而解决这个问题的前提是:需要了解你的用户是怎样操作,怎么使用,怎么工作的。经过研究之后,会发现前两次的研发都是接到用户需求之后,就开始着手进行了。虽然辛苦工作,但是没有了解业务场景,没有了解用户怎么使用软件。

痛苦蜕变后的成长

得到了敏捷开发的指点之后,团队开始听痛点,分析谁在用,了解使用场景。并采用小版本迭代,边做边调整,提高和促成团队的高度合作,并且还想了一个对策:把具体操作人员(如运营人员,业务人员)聚在一起,并找了其中几个代表,让研发人员坐到他们旁边,看他们一天是如何进行手动操作的,如何收集第三方的活动,如何和第三方联系等等。

 

成功支持双11大促

为了杜绝类似的失败再次重演,我们又劝说运营人员派出一个代表来到研发部门,坐到研发人员当中去。这样的好处是能实时定位问题,比如,商家是需要提交这些字段或者数据的,并且研发刚一开发完的功能,马上就可以让运营部门的代表当即操作测试,检测看看是否是运营人员想要的。后来项目圆满完成,极大促进了促销活动的效率。

秀一张刘老板的邮件来证明一下哈哈。

2


90天内两个上市公司顺利融合,业务同步增长10倍

今年5月份,京东发布了一条重磅消息:战略入股途牛。因为途牛在OTA这块拿的代理折扣都很低并且服务完善,所以用户在购买这方面东西的时候,都愿意在他们的网站上进行。合作的结果就是大家在京东上搜索度假或者旅游产品,大部分都来自于途牛。

 

三步迭代,快速开发

因为开发时间只有两个月,团队开始尝试增量开发的方式。时间上划分成3个迭代加上1-2周的回归测试,我们将需求划分为三个等级,在第一个迭代阶段重点解决重要紧急的需求;第二迭代处理或优化一些功能上的需求;而其他需求摆放在第三迭代里。

 

具体来说第一个迭代我们只完成了商品详情,下单和支付功能,而第二个迭代里,我们加入了列表页功能,价格日历功能;而在第三个迭代里,我们加入了搜索功能。团队协作上引入了Scrum的模式:每天几个团队的leader或者项目负责人就当天出现的问题进行过滤,进行到什么阶段,该项目或内容谁应该跟进,出现的问题什么时候给出反馈等等。这使得团队的状态十分的透明化。


美剧《硅谷》中也提到了Scrum敏捷开发

上线时间被提前?当机立断砍需求

 

在第二次迭代进行的时候,出于配合大促销活动的考虑,上线日期被提前了,项目开发周期被缩短两周左右时间。因为第二阶段的迭代已经开始,且无法进行变更了,于是团队开始迅速调整,看第三个迭代的事情有哪些是可以拿掉的。最后砍掉了一些不太重要的需求(如一些优化、一些操作方便性的东西),从而保障了促销活动顺利进行。90天里完成了多项业务分支的融合,并且GMV(商品交易总额)同步增长超过10倍!

 

根据上面亲身经历的两个例子,我总结出一套转型模型来分享给大家:

3


转型模型:一个核心价值,四个基本点

讲模型之前需要提醒大家的是:不管做什么都会有一个模型,模型就是我们从实践中总结出来的,可能是有效的但也可能是无效的套路,且需要不断的去验证不同的场景下的可行性。


如何定位最关键最有价值的事情?

软件开发中最关键的地方在于【要解决最核心的问题】,而找对用户最核心的问题是什么就是最有价值的事情。这里提供给大家一个非常方便的方法——产品待办列表。

教你使用一份好的产品待办列表

唯一排序( Ordered

还在使用传统的方式(根据重要和紧急程度划分)搞需求的优先级?一旦出现异常情况,就会立马完蛋。分来分去其实仍旧不知道该【先】做哪个!因此记住一个重要的原则!即【唯一排序】,一定要排列出唯一的先后顺序。而遵循的排列准则第一个就是:价值。按照价值高低来排序,这样就会使得优先完成的一定是价值最高。

详略得当(Detailed Rightly

需求也要分详略。对于开发成本只有两三天的需求,应该拆分到比较小而详细,对于需要一个月或者更长时间的需求,则不需要那么详细。不要求把所有需求都写入需求文档中——这样的做法是无用的,快速迭代的当下,很多东西是在变化的,因此需要详略得当。

动态可变(Dynamic

突然又要加需求了怎么办?很简单,直接加入当前的代办列表中。由于后面的代办事宜还没开始制作,加入一个新需求并不会有任何影响,后续的需求排序是可以随时调整,哪个价值更高,可以调整前置。简而言之,内容方面发生的变化,要对其进行估算;验收条件发生变化,要对其进行更新。除了当前正在执行的需求是不能改变的之外,往后的需求都是可以改变的。

大小可估算(Estimated

需求怎么估算大小?根据实现成本和价值两个维度来估算,相同价值的需求当然先去消耗人月少的需求,如果很难估算的话就要考虑是不是需求没有想清楚,没有进行拆分,拿出你想清楚的部分,再将其拿到前置位置。 成本也很重要,如果没有将核心和需求处理好,后期的敏捷实践很可能仅仅是皮毛。

牢记四个基本点

透明——暴露团队的所有细节

软件开发很多东西不是透明的,举个例子:你问程序猿任务完成了多少?假设他自己计划这个任务需要2天时间。今天是第一天,当晚你问他这个任务完成的如何,他告诉你他现在完成了90%,你一定很兴奋,心想才两天时间,第一天就完成了90%,十分的不错。然而,第二天下班的时候,你再去问程序猿做完了么?他告诉你他完成了95%,这说明什么问题?完成的百分比根本不可靠!甚至毫无用处,很多细节藏于其中是你无法察觉和发现的。

所以,我们希望要透明。透明怎么去实践呢?很简单:任务板


用任务板把所有团队认为应该展现出来的信息都展示出来,都暴露出来。将所有需求及拆分出来的任务(开发的,测试的,待上线的等等),根据自己团队的实际情况,做一个任务板。

 

假如自己有一个便签贴在一个位置,三天都不动,那么团队其他人看见了,自然而然会来问你什么情况,你在做什么,三天你的任务都没有进展。用这种形式将团队进度都透明化。

迭代——盲目重复不可取

敏捷开发最重要的特点应该是:【迭代增量式软件开发】。迭代的字面意思就是重复,但同时要警惕盲目的重复,给大家提供一个盒子理论作为指导:

 一个是时间盒:重复一件事情,要在时间限定的范围内,比如建议为2周的迭代形式进行,2周后就结束,并进行回顾和反思,并要拿出潜在可交付的软件。

另一个就是资源盒,即限定资源,相当于不要把所有的鸡蛋都一次性全部放在一个篮子里,小成本试错,快速迭代。

反馈——三个实践方法教你如何正确的反馈

在案例1中我们为什么把运营人员放到开发团队当中去?就是要实时的反馈。 Scrum之父Ken Schwaber说:Scrum就像你的丈母娘,不断指出你的问题在哪,错在哪,Scrum只是不断的暴露你的问题。反馈在敏捷中可以有三个实践方法:

 

(1)每日站会——每日站会中,每个成员都应该回答三个问题:昨天我完成了什么,今天我打算完成什么,工作中是否遇到什么问题并且不超过15分钟。

 

(2)评审会议——评审会议最重要的是有人给你反馈而不是无聊的演示demo然后鼓掌散会。产品经理在观察和获取到用户在使用自己产品的过程中的反馈才是有意义的,才是值得评审的。

 

(3)回顾会议——要定期开回顾会议,且还要在会后产生一个行动计划。建议是每周二、每周四展开产品负责人和团队有30分钟的碰头会,这就是在解决问题和分歧的会议。

教练——团队里需要懂敏捷的成员

如果想做一个成功的敏捷开发转型,不管是内部教练还是外部教练,一定要有一个人需要知道:什么样叫真正的敏捷软件开发?什么样是形式的?什么样的算是对付对付?——要能够真正理解这些东西,需要有一个教练来理解。

欢迎大家到PMCAFF社区和我一起讨论交流关于Scrum敏捷开发的问题。

点击 阅读原文 与产品经理们探讨问题


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

京东业务增长10倍背后的敏捷开发秘籍【案例+分析】 的相关文章

  • 在线绘制函数图像和在线图标绘制网址

    经过寻找 xff0c 找到了几个在线绘制函数图像的网址 xff0c 可以不用matlab和geogebra软件绘制了 数学函数图像 xff1a 第一个 xff1a Desmos 首推 第二个 xff1a fooplot 可以绘制分段函数比如
  • geogebra中函数的定义域的输入

    ggb中函数的输入有如下几种方式 xff1a 一 如果if做法 1 区间函数 xff1a 做出函数在某区间上的图象 xff1a f x 61 if x gt 61 0 amp amp x lt 61 2 x 2 43 2x 1 2 分段函数
  • 升级Ubuntu内核

    自己下载deb或使用某些其他工具 xff0c 无脑dpkg deb会导致Depends libc6 gt 61 2 33 but 2 31 ubuntu9 2 is to be installed的错误 xff08 猜测该错误产生的原因是没
  • 在ROS的noetic版本中通过rosrun运行python文件

    xff08 1 xff09 不要将python文件放入scr目录中 xff0c 否则后续编译工作空间会报如图所示的错误 首先要在功能包文件夹 xff08 catkin ws src learnning topic xff09 中创建一个sc
  • linux音量调节

    转自 xff1a https www jianshu com p fc8c8cad67d6 一 alsa设置默认声卡 alsa设置默认声卡 理解和使用Alsa的配置文件 alsa的配置文件是alsa conf位于 usr share als
  • FutureTask实际应用案例

    GetResultTask java package com cwp data service service task import com cwp data intelligence common exception RRExcepti
  • 异常检测算法综述

    一 异常检测 随着人工智能的火热 xff0c 运维人员也开始考虑将算法引入运维领域 xff0c 对传统DevOps的核心功能进行优化改进 异常检测是运维不可或缺的重要要功能模块之一 xff0c 可以提升企业运维能力和效率 xff0c 释放运
  • 每日一书丨嵌入式C语言自我修养:从芯片、编译器到操作系统

    最近 xff0c 阅读了王工 xff08 王利涛 xff09 赠送的一本由他编著的书籍 嵌入式C语言自我修养 xff0c 感觉写的挺不错 今天分享一下这本书籍 嵌入式C语言自我修养 xff1a 从芯片 编译器到操作系统 从芯片 编译器到操作
  • JSP提交仍然停留在当前页面

    在C S结构中 xff0c 用户提交内容以后 xff0c 系统任停留在当前页面上 xff0c 直到服务返回处理成功或者失败的提示 而用户录入的信息 xff0c 除非程序清除 xff0c 否则不会自动消失 xff0c 方便用户修改 为了解决这
  • FreeRTOS Queue

    变量定义 span class token keyword typedef span span class token keyword void span span class token operator span QueueHandle
  • 专门讲解无人机航拍图像处理的书【包括图像拼接!!!】

    最近正式开始做课设啦 xff0c 博主在网上搜集到有专门的书讲解无人机航拍图像的处理 xff0c 包括图像拼接 xff01 xff01 xff01 更非常激动的是博主在图书馆把两本书都找到了 xff0c 俺滴学校i了i了 两本书如下所示 x
  • 1.2 向量与线性代数

    向量与线性代数 图形学基础向量向量点乘向量叉乘矩阵 图形学基础 基础数学 xff1a 线性代数 统计学 微积分基础物理 xff1a 其他课程 xff1a 信号处理 数学分析一点点 xff1a 美学课程 向量 方向长度单位向量向量加法 向量点
  • 2.1 变换

    矩阵变换 二维变换齐次坐标齐次坐标下的二维变换矩阵逆变换 xff08 逆矩阵 xff09 复合变换三维空间仿射变换 modeling and viewing 模型变换和视角变换 二维变换 尺度变换 Scale 镜像变换 切变变换 旋转变换
  • 2.2 变换(模型、视图、投影)

    变换 xff08 模型 视图 投影 xff09 三维变换观测变换 xff08 Viewing transformation xff09 视图 xff08 View xff09 定义相机如何将相机移动到约定俗成位置 投影 xff08 Proj
  • 四轴飞行器入门——基础知识

    引言 从2016年起 xff0c 细细数来入门无人机已经有两年时间 两年期间 xff0c 自己边学边摸索 xff0c 组装过机架四轴无人机 xff0c 也修改过开源飞控的代码 xff0c 但是因为种种原因 xff0c 始终没有写过相关博客记
  • Linux系统下搭建PX4/Pixhawk原生固件编译环境

    简介 PX4固件是Pixhawk飞行控制器的官方固件 xff0c Pixhawk官网也给出了Linux windows下搭建开发环境的方法 由于种种原因 xff0c 搭建开发环境时总会遇到各种各样的bug xff0c 致使PX4固件编译失败
  • main(int argc, char *argv[])

    这是UNIX和Linux中的标准主函数 argc 用来统计运行时发送给main函数的命令行参数的个数 argv 其中每个元素都是上述参数 以字符串形式存储 的首地址 argv 0 指向程序运行的全路径名 argv 1 指向程序名后的第一个参
  • 为PX4添加串口通讯模块(模块结构)

    主要讲模块的结构 不贴代码 从最外层开始 执行read uart main start dev ttyS1 read uart main int argc char argv 入口函数 判断任务进程read uart task是否存在 根据
  • C++抽象基类与虚基类(C++ primer)

    c 43 43 primer plus P508 xff0c 抽象基类 c 43 43 primer plus P556 xff0c 虚基类 抽象基类 xff08 abstract base class xff0c ABC xff09 抽象
  • MFC学习笔记(二)处理命令行选项

    目标 让应用程序处理这里所见的命令行标志 gt XXX exe c d 策略 一个MFC应用程序可以用CCommandLineInfo类的成员函数ParseParam 处理一些标准标 志 要添加我们自己的标志 xff0c 而仍然能够支持另外

随机推荐

  • C++ expection异常类、捕获所有异常(C++ primer,P639)

    expection类 头文件 lt expection gt stdexcept类 C 43 43 primer plus xff0c P632 包含以下异常 xff1a domain errorinvalid argumentlength
  • 5.1 运输层协议

    运输层协议 运输层的复用与常见端口常用端口 UDP协议特点UDP帧格式 TCP协议特点socket套接字可靠传输工作原理TCP帧首部重要字段 TCP可靠传输以字节为单位的滑动窗口选择超时重传时间选择确认SACK xff08 未经常使用P22
  • Linux上VScode + cmake + gcc开发环境搭建

    VScode 43 cmake 43 gcc 下载 安装vscode安装插件cmake文件结构vscode修改json文件编译 调试的过程 下载 安装 span class token comment cmake gcc 安装都很简单 sp
  • 软件测试面试04:实战项目介绍

    4 1 简单介绍下最近做过的项目 根据自己的项目整理完成 xff0c 要点 xff1a 1 xff09 项目背景 业务 需求 核心业务的流程 2 xff09 项目架构 xff0c B S还是C 5 xff0c 数据库用的什么 中间件用的什么
  • 一张图搞定SDF的概念

    本文仅代表个人理解 xff0c 谬误之处请指正 SDF Signed Distance Field 译为有向距离场 xff0c 有向 距离 场 这三个词非常精确的描述了 sdf 究竟是个什么东西 GPU Gems 3 中是这么描述 sdf
  • Ubuntu Windows双系统切换最简方法!!!

    安装完Ubuntu windows双系统后的第一个问题 xff1a 该怎么在两个系统间快速自由切换呢 xff1f 本文给出两种无需命令行的实用易上手方式 一 什么 xff0c 你要快快快快速切换 xff1f 这里直接给出答案 xff0c F
  • C++primer(第五版)习题答案

    前两章习题较简单 xff0c 这里就不作整理了 xff0c 直接从第三章开始 持续更新 xff1a Chapter 3 Strings Vectors and Arrays Exercise 3 1 part 1 include lt io
  • PX4源码地址和wiki

    源码 https github com 987419640 Firmware wiki https dev px4 io v1 9 0 zh concept architecture html
  • 视觉十四讲:第七讲_2D-2D:对极几何估计姿态

    1 对极几何 从2张图片中 得到若干个配对好的2d特征点 就可以运用对极几何来恢复出两帧之间的运动 设P的空间坐标为 P 61 X Y Z T 两个像素点 p 1 p 2 的像素坐标为 s 1 p 1 61 KP s 2 p 2 61 K
  • VINS_FUSION入门系列---GPS与VIO融合

    参考的博客 https blog csdn net subiluo article details 105429471 http www luyixian cn news show 313718 aspx state 状态量 位姿 速度 b
  • 几种常用加壳软件图文详解

    为了保护自己的软件不轻易被他人 借鉴 xff0c 有必要对软件进行一些加密保护 xff0c 而这方面目前己有成熟的专业加密软件可选择 但不要太依赖壳的保护 xff0c 大多数壳是可以被攻破的 xff0c 还是在自身保护上下些功夫 加密软件比
  • debian添加source源后update出现GPG错误

    错误如下 xff1a W GPG error http mirrors 163 com debian buster updates InRelease The following signatures couldn 39 t be veri
  • windows clang 编译Qt

    准备 xff1a qt everywhere src 5 15 0 zip jom 1 1 3 zip LLVM 10 0 0 win64 exe VS2019 xff1a 需要安装win10 SDK xff0c 也有自带的clang xf
  • docker 最新Dockerfile命令手册

    Dockerfile Reference Docker can build images automatically by reading the instructions from a Dockerfile A Dockerfile is
  • 单片机移植 - RTOS总结 -uC/OS-II ; FreeRTOS的区别

    RTOS总结 uC OS II FreeRTOS的区别 实时操作 xff08 RTOS xff09 系统有很多种 xff0c 分别为 Clinux C OS II eCos FreeRTOS mbed OS RTX Vxworks QNX
  • CentOs Stream脚本安装单机版Kubernetes并配置Calico和NFS

    随着Kubernetes和CentOs的不断升级 xff0c 在安装Kubernetes时 xff0c 网上其他的一些参考资料可能会遇到一些问题 本文以脚本方式列出了所有步骤 xff0c 这些步骤对于一台纯净的CentOs Stream服务
  • java基础必备丨阿里云kubernetes集群部署

    1 创建的前提 开通资源编排服务ROS 因为阿里云的k8s集群依赖于ROS的资源编排 xff0c 所以 xff0c 要先开通ROS才可以创建k8s集群开通弹性伸缩服务ESS开通访问控制服务RAM 2 创建说明 每个账号创建的云资源是由于配额
  • 从头开始写STM32F103C8T6驱动库(四)——编写延时函数,详解Systick

    系列文章目录 Github开源地址 从头开始写STM32F103C8T6驱动库 xff08 一 xff09 STM32CubeMX创建并调整工程结构 从头开始写STM32F103C8T6驱动库 xff08 二 xff09 编写系统初始化程序
  • 【ROS】在 Ubuntu 20.04 安装 ROS 的详细教程

    ROS安装指南 目录 ROS安装指南 前言 一 配置Linux清华镜像源1 1 介绍1 2 开始配置 二 安装ROS2 1 ROS的介绍2 1 开始安装 xff1a 配置公钥2 2 系统更新2 3 安装ROS 三 配置ROS3 1 初始化r
  • 京东业务增长10倍背后的敏捷开发秘籍【案例+分析】

    需求又要改 xff1f 项目上线时间又提前了 xff1f 老板还嫌增长不够 xff1f 团队都开始灰心丧气了 xff1f 来看看京东内部是如何解决这些让人焦头烂额的棘手问题 1 两次失败之后成功支持双11活动 京东每年两次大的的促销活动中都