技术眼里的敏捷开发

正文

我们是否遇到过这样的问题:
1、需求评审时有些疑问,不知道从何问起;又或者好像听着明白,开始做的时候就有些困惑?
2、技术方案设计时无从下手,感觉整个需求比较杂乱,就是一些逻辑堆叠而成;
3、在需求开发过程中,记不清楚具体的需求过程,需要频繁回顾产品需求文档;
4、需求提测之后,自己感觉问题不多,结果QA测试出来很多Bug;在bugfix的时候解了BugA,又漏出来BugB;

如何来减少这种问题的出现?下面分享一些敏捷开发的经验。

需求开发流程

产品经理分析、调研用户需求以及整体市场环境情况,对于某些功能产生预期收益,就计划如何去做来拿到收益,把具体事情整理成方案之后就形成了需求文档。
需求到了研发这边,当我们接触需求之后,可能就会开启一系列流程:需求细评、工作量评估、技术方案评审、需求排期、需求开发、需求自测、需求提测、问题修复、版本灰度、线上发布、数据跟进。

将上述流程整理、简化成开发视角下的过程:


《一个需求的上线流程》

PM是产品经理,RD是研发,UI/UE是设计,DA是数据,QA是测试。

1、需求评审

这是PM主导的评审,对齐需求目标和预期收益,较为复杂需求会有UE同学讲解交互;负责开发的需求会先参与需求细评,中间会涉及的具体细节;可以提前做好功课,先看文档以理解产品逻辑,因为会议时间往往不长,最好是用来确定核心述求和讨论一些疑惑点,避免去对需求细节的解释
在会议结束之后,研发将需求进行拆解,可以按照客户端同学最熟悉的页面维度去拆分,大致描述每个界面的核心要素;也可以按照产品需求文档,从业务逻辑的角度去拆分,描述该需求的产品逻辑要素;也可以从数据流的角度去拆分,从数据产生(用户操作,后台产出)、数据接收(接口请求)、数据消费(界面展示、用户交互)、数据上报(埋点上报)等,来描述该数据层面上的变化。
核心点就是有一个思路来贯穿整个需求,将一个需求拆解成树形的结构,以便于我们去评估需求复杂度和完整了解整个需求。

2、方案设计

由需求开发RD主导,输出整个需求的技术方案。这时候前面的需求拆解就非常重要,因为方案设计的前提就是需求的整体理解,将复杂的需求进行拆解,再借由一些通用的程序设计思想进行组合,将前面拆解出来的需求整理成一个方案
方案设计出来之后,会有相关的RD同学一起进行review,针对方案的扩展性、稳定性等进行讨论,也会根据已有业务评估方案的影响点,尽可能在方案设计时暴露出来风险点。

3、逻辑开发

现在对需求有全面的了解,同时也有完备的技术方案,接下来就是按图索骥把方案实现出来;一个稍复杂的需求在实现过程中,RD既需要专注在代码实现,还要记住需求细节,保证最终实现出来与之前设计一致,这并不是很简单的事情。
此时,前面两个环节沉淀出来的需求拆解文档和技术方案文档就非常重要。我们先按照技术方案的设计,从某些模块入手;实现过程中,按照需求拆解文档进行一步步实现;在实现完部分模块之后,再回顾技术方案,开始下一步的模块;如果实现过程中,发现方案设计有些欠缺考虑点,则先停下来代码实现,优先考虑如何修改方案设计,再继续按照方案去实现

4、五方验收

需求开发完成之后就需要自测:回顾需求文档看看是否遗漏的实现点,对着设计稿看看界面实现是否偏差,检查交互文档特别注意里面的小字说明,跑一遍测试给出的case,保证埋点验收能看到所有的埋点
自测完成之后,就可以进入验收环节。PM会检查功能实现是否符合预期,UI会进行像素级别对比,UE会体验产品细节交互,DA会验收所有埋点细节并记录,QA则会用各种无法预期的操作去测试。
经过多方锤炼之后,需求终于可以合入。

5、灰度上线

在正式上线之前,会进行多次灰度。RD会打开AB实验、下发settings配置,灰度期间再看看功能的问题反馈。如果灰度发现问题则要追本溯源,确定问题出现的真正原因,修复完成跟下一次灰度。
直到整体质量稳定之后(达到准出标准),才会进行正式版本的发布。

开发过程的建议

一些提高工作效率的注意点:

  • 1、信息传递的及时性,尽量少用IM工具消息去确认紧急的事情,当面沟通更加高效,也可以减少文字的信息传递误差,语音会议也是很好的选择

  • 2、阶段性做事,在前面提到的各个环节中处理对应的事情,特别是前期的流程,确保自己在需求评审完之后理解需求,方案设计之后清楚怎么实现

  • 3、合理安排时间,在安排时间的时候要特别注意几个节点:
    埋点就绪时间,现阶段在需求评估工作人日的时候,往往没有具体的埋点,需要关注埋点什么时候出来,并且出来之后看一遍是否有较难实现的埋点;
    UI就绪时间,由于目前设计人力短缺,往往排期时同样没有UI稿,在UI搞产出之后,需要和之前方案进行对比,考察后续实现是否存在难点;
    需求自定义里程碑节点,一个较为复杂的需求(我们可以定义为排期超过3天的需求),可以自行分配时间,并按照1~2天定一个里程碑节点,自己关注在对应节点的时候是否能够如期完成;(如果没有,是否应该和其他人沟通)
    自测时间点,自测是为了提高需求的完成度,避免验收的时候爆发非常多的问题,这需要预留一点时间;
    验收时间点,有时候验收时间会和开发时间重叠,及时留意trello和bug单,集中性解决验收问题;这也是为什么要进行自测的原因之一,如果验收过程中出现非常多的问题,会压缩下一个需求的开发时间;
    合码时间点,注意版本的合入截止时间,但是不要卡在最后时间点才合入;代码越早合入,则会越少出现冲突;
    版本deadline带来的压力是硬性压力,延期造成的影响比较大;而我们定义的节点属于软性压力,很重要但是有时会被大家忽视,带来的结果就是一个压力不断积累和风险不断扩大,最终在版本末期集中爆发。

技术如何参与团队决策

1、需求可行性的判断

这是从技术的角度,来分析需求的可行性。产品的思维非常发散,有时候会提出一些天马行空的想法,比如说根据手机壳颜色调整手机主题色。这些也有可能不是奇思妙想,如果手机具有识别颜色的传感器,这需求也可以实现;或者说采用降级方案,通过手机先对手机壳照相,提取手机壳颜色,再根据提取出来的颜色进行主题色适配。
先尝试从技术的角度去评估可行性,有实现的可能,才能讨论具体收益和实际投入。

2、丰满理想下的骨感现实抉择

PM/UI/UE在考虑功能设计的时候,往往希望产品功能完善、体验极致,但是每个双月的时间又是那么短暂,技术可以对需求进行理性评估,拆分出来需求各个模块的投入人力,进行后面的一些决策:在保证核心收益的前提下,如何快速完成该需求并上线进行验证,如果预期收益合理再进行下一步改进,如果和预期不符,则快速调整需求,或者及时放弃以止损。

3、数据化的重要性

有时候功能上线之后,用户反馈和产品直觉不一定相符合,此时用数据来量化收益就非常重要。技术会帮助产品将这个过程量化,除了关注需求的具体内容,也可以关注需求的前因后果。数据化能帮助团队优先做一些有收益的事情,而不是一些看起来应该做,但是目前拿不到太大收益的事情。

4、趋之若鹜的AB

PM为了更好量化需求收益,往往都会在需求中添加实验,甚至一些文案、toast的修改都想加一些实验来衡量收益,是否实验就是需求上线的保障?数据化是非常重要的,但是万物皆AB明显是存在不合理的地方。AB并不是万能的,有些需求甚至有可能因为正向收益不大,受到实验随机波动导致实验组负向。
合理AB应该是将收益数据化,看到要做事情的价值,辅助进行决策。

思考🤔

经常到一种言论:技术决定业务门槛,产品决定业务发展,真的是这样吗?
这句话其实忽略了技术的很多价值,也是一种不完整的认识。
在一个团队中,每个人都是构成项目的一部分。我们可以觉得自己只是一个打工者,不去太操心项目的走向;也可以只关注自己的工作内容,自扫门前雪。但是还有一种可能:尝试去理解自己负责的内容在整个产品的作用,还有未来发展方向以及原因,尽自己的努力去完成目标和提出改进的建议。或许会徒增一些烦恼,但是会多一些影响团队、项目、产品走向的机会,也会多一些主人翁精神带回来的成就感。

以上内容来源于日常版本迭代的简化,实际情况会比更加复杂。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,509评论 6 504
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,806评论 3 394
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,875评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,441评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,488评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,365评论 1 302
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,190评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,062评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,500评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,706评论 3 335
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,834评论 1 347
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,559评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,167评论 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,779评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,912评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,958评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,779评论 2 354

推荐阅读更多精彩内容