15年的时候我所在的团队开始使用敏捷开发。现在新公司也在逐渐向敏捷开发倾斜。所以写篇文件记录下。
首先,先介绍下什么是敏捷开发
百度来的:是一种从1990年代开始逐渐引起广泛关注的新型
软件开发
方法,是一种能应对快速变化需求的软件开发能力。它们的具体名称、理念、过程、术语都不尽相同,相对于“非敏捷”,更强调程序员团队与业务专家之间的紧密协作、面对面的沟通(认为比书面的文档更有效)、频繁交付新的软件版本、紧凑而自我组织型的团队、能够很好地适应需求变化的代码编写和团队组织方法,也更注重软件开发过程中人的作用。
我的感知,敏捷开发比较适用于需要快速迭代的项目;
敏捷开发是分小组开发的,每个小组的每个平台配备2到3名开发人员。比如我们原公司做敏捷的时候,每个小组有三名安卓,三名IOS,三名服务端,三名测试。
敏捷开发周期一般为两周,这两周可以发一个迭代版本,也可以不发。但是开发周期,是以开发提交代码,测试全部验证通过为目标的。
其次,介绍下敏捷开发的流程:
一/澄清会,
时间点是第一周的周五
产品经理那边会有一个需求池,这里面装载了所有的需求。产品经理需要对这些需求列一个优先级,然后在澄清会上按照优先级逐条讲需求。开发/测试可以对些需求提出自己的疑惑,甚至可以质疑这条需求做的价值,产品经理必须回答,如果需求不明确或者依赖方没有完成,则需求会被当场砍掉,挪到下一次。
每次澄清会,开发都会评估出略超工作量的需求。工作量内的作为承诺是要完成的,非承诺的则是完成顺利的情况下可以完成的(比如承诺的需求临时被砍掉,或者实际工作量要比估点小等等)。完成这些需求,就是一个开发周期的目标。
二/需求调研
时间点是澄清会结束到第二周的周三
开发针对产品列出来的需求,根据优先级去挨个的需求调研,调研要求精确到改哪个类。并规划好时间,开发需要列出来什么时间点提测什么?同样的话,测试也需要列出来大体的测试用例,冒烟测试case等等。这时候如果发现需求有问题,会主动和产品经理沟通。
需要注意的时,这段时间周期上仍属于上一个开发周期,这期间开发测试的主要工作仍然是解决上一个周期内发生的bug。开发只是利用空余时间进行方案调研。
三/计划会
时间点是第二周的周三
计划会上,演讲的主角变成了开发和测试。这时候,开发需要讲方案,产品来听。如果开发在调研过程中发现需求依赖不满足等问题,可以在计划会上将该需求砍掉。同样,如果优先级发生变化,产品经理也可以在计划会上调低某个需求的优先级。
计划会后,正式进入新的一个开发周期,一般是持续两周。
四/需求开发
开始时间是计划会后,一直持续到第四周的周三,也就是下一个计划会。
这期间,开发测试需要完成所承诺的所有的需求的交付,交付的条件是完成开发和测试,并具备上线发布的所有必要条件。承诺外的需求则是属于加分项。
另外,开发测试每交付一个需求,产品经理都需要及时过来验收。
五/回顾会
时间点一般是第四周的周五
这个时候上一个sprint开发周期已完成,新一期的任务才刚开始,还不着急。大家坐在一起,回顾下上一个周期的问题
Scrum
本指橄榄球运动中的“争球”的动作——团队通力合作,在场地内传球。这个过程需要认真配合、信念一致、目标明确。这个过程完美体现了对一个团队的所有要求。
用
Scrum
命名一种开发过程,比喻开发团队在开发一个项目时,像打橄榄球一样迅速、激情,人人你争我抢地完成它。
Scrum
方法——简单说,就是以 交付 与 迭代 为核心的方法。「每过一小段时间就停一停手头的工作,检查一下已经完成了哪些任务,看看这些任务是不是自己应该做的,看看有没有更好的方法」
Scrum
中三个角色
Product Own
回顾开发阶段遇到的问题每人发放小卡片,给出3-5分钟列举出本次开发中个人觉得好的和不好的点每人宣读卡片,并说明为什么这样觉得,项目经理负责记录总结大家一起进行总结,讨论哪写优点可以复用,哪写缺点可以避免和优化项目经理进行记录。
任何人力
流程
都离不开人来执行,所以在讲解
Scrum
流程
之前,有必要先把
Scrum
中的角色讲一下。一天,一头猪和一只鸡在路上散步,鸡看了一下猪说,“嗨,我们合伙开一家餐馆怎么样?”,猪回头看了一下鸡说,“好主意,那你准备给餐馆起什么名字呢?”,鸡想了想说“餐馆名字叫火腿和鸡蛋怎么样?”,“我不这么认为”,猪说,“我全身投入,而你只是参与而已”猪是全身投入项目和
Scrum
过程的人,有三种角色:产品负责人(ProductOwner)、
Scrum
Master、团队(Team)。鸡角色并不是实际
Scrum
流程
的一部分,但是必须考虑他们。
敏捷
方法的一个重要方面是使用户和利益相关者参与到过程中的实践。参与每
Scrum
是一个
敏捷开发
框架,是一个增量的、迭代的开发过程。在这个框架中,整个开发周期包括若干个小的迭代周期,每个小的迭代周期称为一个Sprint,每个Sprint的建议长度2到4周。在
Scrum
中,使用产品Backlog来管理产品或项目的需求,产品backlog是一个按照商业价值排序的需求列表,列表条目的体现形式通常为用户故事。
Scrum
的开发团队总是先开发的是对客户具有较高价值的需求。在每个Sprint中,
Scrum
开发团队从产品Backlog中挑选最有价值的需求进行开发。
private volatile static BasicTextEncryptor textEncryptor = null;
private final byte[] tmp_lock = new byte[1];
private BasicTextEncryptor getEncryptor(String seed) {
if (textEncrypto
最小可行化产品
硅谷创业家 Eric Rise 在其著作 《精益创业》 一书中提出了 “精益创业”(Lean Startup)的理念,其核心思想是,开发产品时先做出一个简单的原型——最小化可行产品,然后通过测试并收集用户的反馈,快速迭代,不断修正产品,最终适应市场的需求。
假如时光倒流,来到了2007 年,你要从零打造一个类似如今新浪微博的产品,有一系列需求摆在面前:
用户注册、登录
发布...
最近在整理
敏捷开发
项目的
流程
和管理制度,其整理的项目管理规程如下,这份规程也不完全算是
敏捷
专属的项目管理规程,主要是在结合我们公司实际的情况下编写出来的,因此名字都叫成互联网软件产品开发项目管理规程,大家在实际嵌入到公司的过程中可以参考下,不能照搬。
1. 目的
规范互联网软件产品开发项目管理过程,指导开展项目研发、管理等活动。
2. 适用范围
本章程的作用范围为互联网软件产品开发立项...
敏捷
是项目管理里的一种方法论,适用于“”的项目,采用小步快跑的方式,每1–4周就完成一次迭代并投入使用、收集反馈,然后再次迭代,从而不断逼近真实需求的一种方法论!
Scrum
是
敏捷
里最具代表性的方法论!这个方法论里由。