【AICon】AI 基础设施、LLM运维、大模型训练与推理,一场会议,全方位涵盖! >>> 了解详情
写点什么

反思:别被敏捷忽悠

  • 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:494995
用户头像

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

关注

评论

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

自媒体团队会面临哪些瓶颈和困境

石头IT视角

百度吴甜:首席AI架构师培养计划持续为行业输送高端复合型AI人才

百度大脑

人工智能 百度

保姆级带你深入阅读NAS-BERT

华为云开发者联盟

推理 预训练模型 BERT NAS论文 NAS搜索

Sentinel-Go 源码系列(一)|开篇

捉虫大师

sentinel Go 语言

C2C交易软件系统开发(源码)

现成C2C场外交易源码系统开发

常州一家等保测评公司在哪里?联系电话多少?

行云管家

网络安全 堡垒机 等级保护 等保测评 过等保

SQL实现连续登陆人数天数统计

大象灵感

sql 大数据 hive 数据仓库 数据分析

语聊房 SDK,下一代场景化解决方案新范式

融云 RongCloud

华为云GaussDB深耕数字化下半场,持续打造数据库根技术

华为云数据库小助手

GaussDB 大会 GaussDB(for openGauss) 华为云数据库

揭开“视频超分”黑科技的神秘面纱

拍乐云Pano

音视频 RTC 视频算法 视频超分

Android技术分享| 超简单,给 Android WebRTC增加美颜滤镜功能

anyRTC开发者

android 音视频 WebRTC 移动开发 美颜滤镜

2021云栖大会 | 传统行业如何上链?旺链科技与你面对面畅聊!

旺链科技

区块链 云栖大会

现成交易所系统软件开发案例

官方线索|CCF CED中国工程师文化日

轻口味

1024我在现场

运营型CRM系统(运营型客户关系管理)只是针对于运营的吗?

低代码小观

企业 企业管理 CRM 管理系统 运营型CRM

优化技术专题-性能优化系列-针对Java对象压缩及序列化技术的探索之路

洛神灬殇

序列化协议 序列化机制 10月月更

iOS 布道者龙神:永远挑战难度值增加 30% 的事情

融云 RongCloud

Kubernetes Service Proxy 无秘密

绅鱼片

Kubernetes 网络 iptables k8s网络 kube-proxy

高效动画实现原理-Jetpack Compose 初探索

vivo互联网技术

动画 Google 框架 移动开发 Andriod

AI 在视频领域运用—弹幕穿人

百度Geek说

AI 后端 弹幕 视频

021云原生之Kubernetes 部署

穿过生命散发芬芳

云原生 10月月更

如何选购四屏或多屏炒股电脑主板?

双赞工控

主板定制

【高热FAQ】关于智慧康养物联网加速器 ,你想知道的都在这

华为云开发者联盟

物联网 硬件开发 智慧康养 华为云物联网平台 SaaS应用

mysql binlog日志信息查看

梁小航航

MySQL Binlog

NB!阿里首次公布Java10W字面经,Github访问量破百万

Java 程序员 架构 面试 计算机

/var/lib/docker目录磁盘满了,更换默认目录

阿呆

RPAaaS是什么?为何能够推进RPA人人可用?

王吉伟频道

云计算 RPA SaaS 机器人流程自动化 RPAaaS

虚拟币钱包软件系统开发(搭建)

字节跳动技术官珍藏版:MySQL王者进阶手册!面面俱到,太全面了

Java MySQL 数据库 面试 后端

【服务器】服务器租用后如何高效管理,不出纰漏?

行云管家

服务器 IT运维 运维管理 服务器租用

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