写点什么

反思:别被敏捷忽悠

  • 2014-02-13
  • 本文字数:2394 字

    阅读完需:约 8 分钟

张鼎 (dylan) 目前担任腾讯无线研发部副总监,加入腾讯前在北电公司工作,曾参与制定通讯测试国际规范,十多年测试行业经验。他最近撰文以“别被敏捷忽悠——关于敏捷研发的跨界反思”为题谈到了对于敏捷研发的一些看法,结合自己的经验对“敏捷研发理论是否被神化了”这个问题进行了深入的分析。

dylan 认为随着 IT 热潮从传统软件业转移到移动互联网领域,质量标准正在被弱化。

传统大型软件公司,开发节奏慢周期长,QA 和测试环节受重视程度高,测试结论有权威性,越在后期发现的 Bug 让开发人员如临大敌。转型来到移动互联网部门,咱开始学习敏捷研发理论了,接受起来蛮顺利,随着参与项目的增多,越来越感受到自己的职业价值观不断受到挤压,各种混乱事件让测试人员及团队挺纠结。

质量标准很难成为严格遵守的权威,表现在以下几个方面:

  • 开发自测不足——新功能都开发不过来,自测随便意思一下就好了。
  • 迭代发现的一堆 Bug 不改——产品还是过渡期,说不定集成测试前 BUG 就消失了。
  • Bug 不需要改——我刚和产品沟通过了,需求变更一下就好了。
  • Bug 无效——我代码就是这么实现的嘛,这么处理也没什么不好。
  • Bug 挂起太多——你看看市场竞争这么激烈,每个 Bug 都深入判断我们哪有时间。
  • 发布产品已知 Bug 不少—— 迭代发布产品有些遗留 Bug 很正常,慢慢优化嘛。

据 dylan 所说,其领导的团队采用了旁敲侧击的方法提升研发质量,比如帮忙开发便利的自测工具、合作分析代码覆盖率、冒充用户上论坛投诉、拿竞争对手的结果来刺激团队等等,但始终是治标不治本。

回头再看看,所有掩盖在敏捷研发过程中的漏洞,日积月累,最终还是会由整个业务团队来承担苦果。所以时常在想,敏捷研发理论是否被神化了,是否常被错误理解而让不职业的现象层出不穷?敏捷不是新的研发理论,只是项目管理的一种形式。

他认为,瀑布研发和敏捷研发没有本质不同,理由如下:

  • 是迭代发布的周期不同?某些互联网产品的版本发布周期一点都不短。入口级的移动 APP 动辄上百人的团队,规模比多数 PC 软件团队还大。
  • 是有云和没云的不同?很多行业的后台(云架构)比一般互联网公司复杂多了。
  • 是收费和免费导致的不同?传统行业也有很多免费软件。互联网的有些免费软件比传统软件质量要求更高。
  • 是对产品迭代发布的质量要求不同?
  • 是对文档的要求不同?

结论就是,没有一个要素能真正把互联网和其他软件领域区别开来,所以 dylan 认为:

瀑布研发和敏捷研发没有本质不同,,更别说谁好谁坏了,只是因为行业竞争的不同,看起来交付节奏不一样而已。节奏和软件研发的传统精髓没有关系。

除此之外,dylan 还批判了常见的几个敏捷误区。刚毕业的学生进入公司要怎么培养?dylan 建议 2-3 年的职场新人不要学习任何敏捷流程的理论:

  • 测试岗位的就好好的把一个功能设计出 N 种场景,使用各种工具反复测试找敏锐感。
  • 开发岗位的不是要尽快实现一堆功能,而是先充分理解架构,然后对提交的每一行代码负责。
  • 产品岗位的多体验产品多接触用户,头几年最好脱离 QQ 的关系链,锻炼发布独立产品的能力。

总之,dylan 认为,入行新人要学四个字——职业操守,刻在心里,打好基本功,未来不管在什么项目都会受用。

另一个误区,dylan 认为是“沟通比文档更重要”:

这句话看起来有道理,如果你是几个人的小团队,如果人员稳定,功能模块比较聚焦,生命周期也不太长,也没客户找你要什么手册,确实不需要写什么文档。

但是如果你是以下情况的团队,dylan 认为文档可能真的比沟通更重要:

  • 团队人数数十人甚至上百。
  • 项目生命力长,每个版本都有新功能,模块越来越多,越来越复杂。
  • 异地团队,合作研发。
  • 有外包,合作方团队协同工作。
  • 团队职业化水平高低不齐。
  • 团队不太稳定,或业务归属部门不太稳定。

dylan 特意列举了几种缺乏文档的糟糕情况:

  • 某产品经理忘了半年前的某个功能的具体逻辑,寻求测试同学的帮助。
  • 某开发参加高职级晋升,手上没有一个像样的软件架构图,拿着测试同事梳理的逻辑架构图去评审。
  • 一个严重 Bug 的坑在 N 个项目组被踩了 N 次,修复每个 Bug 后的注释只有几个字。
  • 跨地域的团队,或者前后台的团队之间,发生 Bug 时互相争执半天,讨论谁该负责修复 Bug,彼此不熟悉对方的内部逻辑。
  • 至于没有参考文档导致测试投入浪费的事就太常见了
  • 公司业务调整,跨部门和跨地域的业务交接不太愉快,交接效率低。

第三,dylan 认为不要“边重构,边生活”:

以前公司的开发,30-40% 的时间花在概念设计和架构设计,30% 在细节设计,10% 在编码, 20-30% 在代码自测。编码本身只占很少一点时间。技术总监这样教育新人:你不是 coder,你是 designer!coder 是比较低级的工作,软件设计才是高端活。

任何时候的思考,对于架构的投入怎么充分都不为过。微信发布那么多版本,这两年重构可能几乎没有。这需要有人尽早思考清楚未来做朋友圈,做开放接口,做插件化等等,开发知道了未来要演进的形态,在一开始就有所规划,预留接口。否则,今天决定要做 SNS,重构一次,明天要做插件化,再重构一次,后天作开放平台和公共帐号,再重构……对公司来说就是个噩梦了。

最后,dylan 强调,不要存在“迭代版本的 BUG 多一点是正常的”的误区:

每个交付到测试团队的产品,必须是可测的,自测过的。不可测的版本就不叫交付。对于可测内容追求在一段时间周期内,尽可能高质量的发布,是修炼职业操守的目标,更是精品团队的目标。每一个挂起的有效 Bug 都需要确认:为什么改不了?什么时候改?对发布影响如何?

如果因市场形势必须要尽快发布,至少遵守一个底线:严重 Bug 必须整改而且优先整改。所谓严重就是可能让用户抛弃你的问题:速度慢,卖点明显不如对手,卖点无法正常使用,不稳定,可能给用户带来额外损失(手机系统,安全,账号,费用等等)。这样的发布还不如不发。

随着敏捷开发在 IT 行业的深入推广,敏捷的优点不再被业界无限放大,而更多的社区声音开始讨论敏捷的正反两方面,dylan 的观点可以给读者朋友一些不同的启示和借鉴。

2014-02-13 01:495343
用户头像

发布了 501 篇内容, 共 271.0 次阅读, 收获喜欢 62 次。

关注

评论

发布
暂无评论
发现更多内容

四年Java开发,面试核心知识点(腾讯+阿里+快手面经)附答案

Java架构之路

Java 程序员 架构 面试 编程语言

滚雪球学 Python 之内置函数:filter、map、reduce、zip、enumerate

梦想橡皮擦

28天写作 3月日更

【20万大奖】参加APICloud3.0案例与AVM组件大赛,赢现金大奖

YonBuilder低代码开发平台

开发者 大前端 APP开发 APICloud

大作业(一)

cc

Redis 如何存储上亿级别的用户状态?

薇薇

数据库 redis 存储

一个三本生的Java进阶之路:6年时间,从菜鸟到阿里P7!

Java架构之路

Java 程序员 架构 面试 编程语言

Linux 查询 OS、CPU、内存、硬盘信息

薇薇

Linux cpu 内存

“看得见 摸不着”的数字货币 助推数字经济强国建设

CECBC

数字经济

Yarn日志聚合优化—摆脱HDFS依赖

kwang

大数据 YARN

守护网络安全不是问题,iptables的四表五链为你开启“八卦阵”

华为云开发者联盟

网络安全 iptables 虚拟私有云 安全组 网络ACL

Mysql是怎么运行的-读书笔记1

一个大红包

3月日更

如何破解区块链人才的结构性问题?

CECBC

区块链

Nacos配置安全最佳实践

Robert Lu

nacos 配置中心

项目截图

赝品

大作业(二)

cc

开课啦 dubbo-go 微服务升级实战

阿里巴巴云原生

容器 微服务 云原生 k8s dubbo

【动态规划/路径问题】强化 DP 分析方法练习题 ...

宫水三叶的刷题日记

面试 LeetCode 数据结构与算法

数字货币持币生息钱包系统开发搭建

薇電13242772558

区块链 数字货币

HashData携手中国移动 共筑通信技术数字化之路

酷克数据HashData

数据库 解决方案

世纪联华的 Serverless 之路

Serverless Devs

Java Serverless 架构 运维 云原生

#开工新姿势#开启一年新征程,云社区叫你来充电啦!

华为云开发者联盟

内容 技术人 华为云 文章 云社区

震荡的比特币:区块链的“照妖镜”

CECBC

数字货币

android开发教程!写给安卓软件工程师的3条建议,一线互联网公司面经总结

欢喜学安卓

android 程序员 面试 移动开发

身份和访问管理(IAM)

龙归科技

iam 身份和访问管理

音乐api接入HIFIVE音乐开放平台,获取百万正版音乐,最快30分钟集成上线!

曲多多(嗨翻屋)版权音乐

API sdk 音乐 物联网,API,sdk

终于有人把 "高可用" 说清楚了

架构精进之路

3月日更

华为云PB级数据库GaussDB(for Redis)介绍第四期:高斯 Geo的介绍与应用

华为云开发者联盟

数据库 redis 华为云 geo Gauss DB

大厂社招Java面经:蚂蚁金服、拼多多、字节跳动(现已入职蚂蚁)

Java架构之路

Java 程序员 架构 面试 编程语言

Linux C/C++ 学习路线(已拿腾讯、百度等)

赖猫

c++ Linux服务器开发 LinuxC/C++

android开发板!Android开发你需要了解的那些事,大牛最佳总结

欢喜学安卓

android 程序员 面试 移动开发

2021年爆锤39K月薪Offer!阿里巴巴Java面试(知识点)整理

Java架构追梦

Java 阿里巴巴 架构 面试 全栈知识点

反思:别被敏捷忽悠_DevOps & 平台工程_崔康_InfoQ精选文章