我的“伪敏捷开发”:重视期限与核心点、监控质量与频率

以前有看过敏捷开发相关的内容,被说不懂敏捷开发被人带着做敏捷开发,到后来我自己结合瀑布流与敏捷开发建立出一套比较能提高项目效率的“伪敏捷”模式。

一、敏捷开发是什么

敏捷开发以用户的需求进化为核心,采用迭代、循序渐进的方法进行软件开发。在敏捷开发中,软件项目在构建初期被切分成多个子项目,各个子项目的成果都经过测试,具备可视、可集成和可运行使用的特征。换言之,就是把一个大项目分为多个相互联系,但也可独立运行的小项目,并分别完成,在此过程中软件一直处于可使用状态。——来源百度百科

其实从上面的描述里面,敏捷开发的核心理念是“以用户需求进化”、“迭代、循序渐进”、“持续可用”,相比起瀑布式开发,敏捷开发更加强调团队合作、快速响应、持续产出。两种模式各有优缺,其实现在很少纯粹的敏捷,也很少纯粹的瀑布式开发,更多是将两者结合。

二、我的“伪敏捷开发”

纯粹的敏捷开发,是基于用户需求,然后团队分析团队建模,快速开发,快速上线。但是这种做法非常考验团队及对工作的把控,因为大部分公司一个产品都不是纯粹的产品,除了负责某个产品线外,还需要很大量的其他工作,而且团队素质能力也未必很高。所以纯粹的敏捷开发比较少见到。

大部分的公司团队都是用瀑布式,我做了一堆需求,然后批量一个团队开发,批量上线,每次上线都是生死大关一样,通宵是常态化的情况。我一开始也是这种做法,但是后来发现太累了,将需求拆解得更细,将功能点之间的耦合降低到最低,逐步搭建,持续产出,这样随时可以叫停项目,又可以持续满足用户需求,同时也不会出现对实施团队高要求的问题。

这就是上面说的,以瀑布式为核心,但是附以敏捷开发的设计理念,结合产生的“伪敏捷开发”。这种追求的是在明确大部分的需求情况下,发挥团队的能力去推动完善,做完即上线不需等大版本更新,降低团队压力。

我的一些做法:

1、产品深度参与功能测试,把控每个细节质量

后来我带的团队,都要求产品人员亲自去测试每一个功能、细节,细致到按钮文案是否容易理解,这个交互是否容易理解。因为发现很多产品人员只是设计,然后丢给交互设计师去设计,然后实施,最后直接给用户,让用户来体验反馈问题。但是过程里面,产品对质量的要求很低,导致产品不知道自己设计多渣,用户体验了渣设计更反感这个产品。

2、过程中监控实施质量的频率与周期

A、前期:周一五各一次周例会,周一为本周工作及需求讨论,周五为进度更新,下周计划。在这阶段让开发专心设计底层架构,让测试专心研究需求,产品还得做其他项目,只要大功能方向没有偏离就好(这里只是说整个团队集中沟通的会议,常规、日常讨论还是会每天进行);

B、中期:周一三五各一次晨会,目的是营造进度压力推进项目,在中期最容易出现问题就是团队感觉时间很多,可以慢慢磨设计、需求。加强产品对实施过程、细节的参与。很多时候开发遇到问题,卡在某个环节,不会懂得寻求帮助,在这时候需要产品去推动;

C、后期:每天晨会更新进度,共同测试快速修复问题,提高产品完成的质量。单纯依靠开发、测试人员去把控质量其实是很有问题,大部分的开发、测试人员,只是对功能测试,而不会站在用户的角度“测试”(如果遇到在乎用户体验的团队,那就好好把握住,别放手)。

3、需求会议及回顾会

A、需求讨论会议:这种会议其实不是开一次就足够,基本第一次开,全世界懵逼只有产品自己爽。一般我第一次需求会议,只是告知各位,我们要干这个事情,大概目的,虽然也会说下需求细节,但是不深。然后每周一左右,会对当前准备做的需求,进行深入讨论。每天会鼓励开发、测试聊需求,细节处调整需求,保持需求文档更新。

这种做法好处是持续灌输需求,并且推动整个团队一起参与到需求的设计里面。每次我都很直白,我的设计是垃圾,你们做的时候要注意,别被我坑了,觉得设计有问题,请找我一起聊聊,改完通知全员。这样开发、测试会相对更愿意去分析业务设计是否合理,团队参与感才会强烈。

B、回顾会:每周回顾会的时候,我都会先赞扬谁对需求有疑问,让我们的设计更完善。谁做完功能,好牛逼、有质量。就是在平时观察、留意团队人员的工作,挑有价值出来赞扬下,让各位融入到团队里面,为这个产品或者项目贡献自己全部能力。

在做完一次迭代之后,会举行一次小小的回顾会,先是说下做了什么,结果是如何,赞扬下过程的一些好的做法。然后每个人自己写做的好,做的不好,可以改善。最后一起聊聊。但是发现有更高一级人员在的时候很流于形式,各位还不如平时放得开的态度。

4、将目标、用户画像放在看板上

会将项目目标、用户的一些画像、流程图等放在看板上,看板上不仅仅只是需求卡片,这样聊起来某个需求的时候,也比较容易有针对性聊。我们是要为这些用户提供服务,这流程有问题,那看下怎么搞搞,是不?

我的一些经验:

1、重视期限与核心点,而不是追求所有都要满足

虽然用的是瀑布流的核心,在事前有立项有需求文档,要做这么一堆功能点,但是在实施过程中,我更加关注核心功能点的完成情况、整个项目的期限问题,而细节、伴生需求,或者那些优先级低、与核心流程无关的需求点,我有可能直接放弃掉

每个版本都有目的,围绕目的会有一些核心需求和非核心需求,只需要核心需求的质量、完成度可以,那这个版本,这个项目就完成,而不是追求所有写的,所有细节,都要百分百完美。因为这种百分百的完美需要付出很大的成本代价,而资源并不是可以随便挥霍。

2、敏捷开发不是晨会、看板这些东西

当时那上级带着我们团队开始敏捷开发,组织需求评审会议,组织工作量评估(卡片、需求规模大小评估)、项目看板(便利贴、需求流动)、晨会/周回顾会、需求过程讨论/变更等等这些东西。第一次接触的时候,感觉很新奇,但是接触第一天就心里面有疑惑,这些就是敏捷莫?跟看到的文章的敏捷开发的核心不一样。

经历了一次完整开发之后,发现更多事情,然后反思得出一个结论:这些晨会、看板,只是手段、方法、工具,这些的目的是促进沟通,这些根本不是敏捷开发的核心!讨论脱离用户、最后产出还是以大版本产出、过程中软件一直不可用。

3、团队不参与,等于不敏捷

说个当时常见的场景:晨会的时候每个人说一下昨日做了什么、今日计划、有什么问题/协助,然后大部分人都说没问题!这场景是不是在晨会或者周例会里面很常见,然后一般主持人也不觉得有问题,然后就结束。然而一转身,开发第一口就说:“傻逼,浪费时间”。

敏捷开发是要求整个团队一起建模发挥各自领域的能力去共同完成这项任务,让产品或者功能尽可能满足用户需求。而一般情况下,都是做好需求,然后开发、测试过来听,听完之后就干。而且一般情况下实施团队不是没问题,而是问题都是技术上的问题,就没有拿出来聊。最后就会演变成上面场景,流于形式的晨会及团队每个人都没真正参与到产品设计里面。

怎么引导团队多沟通并融入团队里面,这个才是敏捷开发的核心点之一。敏捷开发在我看来,更多是利用团队的力量在短的时间内,产出高质量的服务,满足用户的需求。

4、不要用“拥抱变化”来不停折腾“皮肤”

再说一个很常见的场景:当时产品拿需求跟交互设计师聊,然后讨论出A方案,我就屁颠屁颠写画原型写需求(当时我就是做小的~~后面戏肉来了)。第二天交互设计师找产品,聊那设计,感觉不是很好,然后沟通后,改成B方案,好,我再改文档。然后第三天产品找交互设计师,聊那设计好像还是很满足情况,不是很好,沟通后改回A方案!!!这时候我就内心一万个草泥马,于是我开始介入讨论过程,我提出,先做出来再看用户使用反馈,其实两个方案从根本上,没有什么差异。

为什么我会说这个,因为我从一开始就发现他们讨论的,都是一些“皮肤”交互问题,两套方案从本质上都没有影响用户的需求,而且这个需求点并不是这个功能的核心需求,只是一个伴生需求而已。而且更加重要的是,他们两个只是在那臆想用户,但是我发现两个交互设计水平都不强,所以就在那不断折腾。

为什么说上面这个场景很常见,就是因为很多时候产品自身水平或者性格问题导致设计犹豫不决,不断在这种没涉及到核心需求改变的点上面折腾“皮肤”,然后还美名为敏捷开发就是要拥抱变化,敏捷开发就是不冻结需求。

这里不是说需求不可变更,但是要分析到,这个变更是否对用户的核心业务、是否对整个功能的核心有正面还是负面的影响?这个才是真正判断变化的标准。

最后,虽然几乎全是项目管理的内容,但是作为一个产品经理,还是需要能够发挥团队的能力,调配响应的资源。而且方法只是“术”而已,核心是改善工作、提高效率、解决问题,这些是产品经理核心的“道”。模式没有好坏,而且在不断实践中不断完善升级,每个人都可以去思考一下,怎样才能让这事做得更好?相信很快,就会找到属于你自己的“术”与“道”。

有兴趣可以继续查看我的其他文章:

1、从需求到实施整流程及相关文档模板(附一个案例)

2、我的产品分析锻炼记录:分析产品核心与发展

原文地址:https://www.cnblogs.com/summersolstice/p/11375234.html

时间: 2024-10-01 11:58:55

我的“伪敏捷开发”:重视期限与核心点、监控质量与频率的相关文章

用户故事驱动的敏捷开发 – 1. 规划篇

敏捷开发现在已经不是新鲜事物了,我们都从各种渠道听到过不同的团队实施敏捷的胜果,听的时候觉得很美,回到家就发现那都是别人家的团队,结合自己的情况一看就发现问题一大堆.就算是最终打算一试,也经常会不知如何开始.这就是我希望编写这份文档的原因,能够找到一个遵循的敏捷项目管理模型,虽然我们都知道没有一个放之四海而皆准的方法,但在更高的层面上我觉得这仍然是可行的.也就是说,管理模型是一致的,但是其中采用的方法可能各有不同,最终目标是唯一的:打造一支可以快速适应变化的高质量团队,并输出高质量的产品! 今天

每个人都懂得敏捷开发 (软件工程), 为何产品开发的效率与质量还是这么的烂?

敏捷开发(软件工程)是 "设计" 出来的,不是 "学" 来的-- 许多人都一直在质疑敏捷开发是否能提高效率与质量? 更有不少人以嘲讽,不屑的口吻看待软件工程. 其实,敏捷开发或者软件工程, 无法提升团队开发的效率与质量,唯一且真正的问题在于-- "每个人都懂得敏捷开发(软件工程),但却没有人懂得如何 "设计" 可提升团队效率与质量的敏捷(软件工程)的实践." 为何没有人懂得? 因为,没有人知道该如何能看明白,团队所面临且真正该

杨学明老师推出全新课程--《敏捷开发&IPD和敏捷开发结合的实践》

课时:13小时(2天) 敏捷开发&IPD和敏捷开发结合的实践 讲  师:杨学明 [课程背景] 集成产品开发(IPD).集成能力成熟度模型(CMMI).敏捷开发(Agile Development)是当前国内外企业产品研发管理的最常用的3种模式.随着创新环境的快速发展,许多企业都会面临这样的问题:如何快速响应市场的变化?如何推出更有竞争力的产品?如何在竞争中脱颖而出?……是大部分研发型企业普遍面临的核心问题.另外,软件项目在产品开发中位置越来越重要,逐渐占领主导地位,这时传统的IPD流程和CMMI

[读书笔记—程序员]《高效程序员的45个习惯:敏捷开发修炼之道》- 苏帕拉马尼亚姆,亨特

虽然不记得阅读本书用了多久,但是整理本书的读书笔记用了两个小时的时间,因为本书的大部分内容对于笔者来说都是新知识,很难进行归纳总结 本书所讲的是程序员应具有的工作态度和在团队中作为开发者和领导者具备的各种"敏捷的"习惯.虽然本书对于程序员的硬实力(本书讲解的编程语言是面向对象类语言,但是讲解的代码非常少)帮助不大,但是对于程序员应该具备的软实力的培养和提高有极大的帮助,是每位程序员都应该反复阅读的书籍. 第一章 敏捷-高效软件开发之道 什么是敏捷开发方法? 2001年2月,17位志愿者

内修敏捷开发心法 + 外炼持续整合招式

说好的软件质量 提升软件质量是我们一直追求的理想,但软件开发唯一不变的真理就是变,为了应付变化多端的软件开发过程,敏捷开发提倡了一种拥抱变化的软件开发理念,少说也替软件开发人员带来了不少小确幸. 这些软件开发模型与方法论,最终的目的在于软件开发管理与质量的提升,与其说质量提升倒不如说是维持一定的水平.虽然敏捷开发有很多不同的方法论 (例如 Scrum, XP 等等),但我们注意到这些方法论都一定会提到「持续整合 (Continuous Integration)」这个概念.持续整合到底是何方神圣?

瀑布式开发、迭代开发、敏捷开发、XP与SCRUM的区别

瀑布式开发.迭代开发,区别[都属于,生命周期模型]         两者都是一种开发模式,就像设计模式一样,考虑的角度不一样,个人感觉谈不到取代一说. 传统的瀑布式开发,也就是从需求到设计,从设计到编码,从编码到测试,从测试到提交大概这样的流程,要求每一个开发阶段都要做到最好.特别是前期阶段,设计的越完美,提交后的成本损失就越少.我现在从事的外包项目就是这样的流程. 迭代式开发,不要求每一个阶段的任务做的都是最完美的,而是明明知道还有很多不足的地方,却偏偏不去完善它,而是把主要功能先搭建起来为目

关于敏捷开发的26个心得

关于敏捷开发的26个心得 我收集各式各样的至理名言.最近我一直在研究敏捷软件开发:有收获吗?下面就是能够指导敏捷软件开发团队的26条核心原则. 用例一完全能够运行后再开发用例二.厨房里有一种说法正好可以印证这个问题:"做好一盘菜后你再做下一盘". 对于软件开发来说一个最大的问题就是人们喜欢并行开发多个任务.因为不可避免的,我们设计的功能中总会有一部分会被放弃砍掉,如果提前开发,很可能做无用功. 一次只开发一个用例(或很少几个用例,这根据你的开发团队的大小而定): 让这个用例功能完整:

一步步学敏捷开发:1. Scrum概述

Scrum概述 Scrum概述无非就是敏捷宣言.敏捷原则.Scrum框架和价值观.在之前先看段比较专业的Scrum介绍. Scrum是跨职能团队以迭代.增量的方式开发产品或项目的一种开发框架.它把开发组织成被称为Sprint的工作周期.这些迭代每个都不超过4周(最常见的是两周),并且无间歇地相继进行.Sprint是受时间箱限制的,无论工作完成与否它们都会在特定日期结束,并且从不延长.通常由Scrum团队来选定一个Sprint的时长,并且对于他们所有的Sprint都使用这一时长,直到这个团队能力提

软件工程到敏捷开发的一点小感想

通过查阅资料和在暑期实习的经历,我了解到敏捷开发中有些实践方式是很好的,值得吸收.例如在敏捷开发的圣经"敏捷软件开发-原则.模式于实现"一书中,很多设计原则,如"单一职责"."开放封闭"."依赖到转"等,它们只是一般.通用的设计原则,应该应用在任何的开发方法中,这些原则并也不是只有敏捷开发方法才能用,在任何的开发方法中都可以.应该使用. 简单介绍一下:敏捷软件开发又称敏捷开发,是一种从1990年代开始逐渐引起广泛关注的一些新型