最新发布《数智时代的AI人才粮仓模型解读白皮书(2024版)》,立即领取! 了解详情
写点什么

反思:别被敏捷忽悠

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

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

关注

评论

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

Linux下Shell脚本基础语法

DS小龙哥

10月月更

如何使用华为云IoT平台实现远程控制无人机,资深物联网从业者手把书一步一步教你!

wljslmz

物联网 IoT 无人机 华为云 10月月更

企业集成方案

久歌

企业架构 企业集成

你从未见过如此详细的 TCP 八股文!

C++后台开发

TCP 网络编程 网络协议 八股文 C++开发

数据库故障处理优质文章汇总(含Oracle、MySQL、MogDB等)

墨天轮

MySQL 数据库 oracle 故障定位 国产数据库

别按部就班的背面试题了!吃透这份Java面试核心知识手册,大环境不好Offer也能拿到手软!

Java全栈架构师

程序员 面试 程序人生 架构师 Java后端

向量数据库是如何检索的?基于 Feder 的 IVF_FLAT 可视化实现

Zilliz

人工智能 可视化 向量检索 anns 以图搜图

什么是深度学习?人工智能能影响未来的特点之一

Finovy Cloud

人工智能 深度学习

阿里云块存储团队卓越工程实践

阿里技术

经验分享 语言 & 开发

什么是数字体验平台(DXP)?

Baklib

客户体验 数字体验

数字化转型案例解读:德意志银行数字化转型背后的故事

雨果

数字化转型

IT人士必须警惕这9个信号:说明你的IT架构很糟糕

雨果

数据管理工具 数据服务平台

用了这个API协作调试工具,忘记了postman

Liam

Postman 接口调试 开放api API接口 API调试

SchedulX V1.7.0更新,规格压测、成本洞察等重磅功能发布!

星汉未来

云原生 降本增效 星汉未来

String、StringBuffer、StringBuilder的区别

zarmnosaj

10月月更

Bug改不完,迭代总延期,咋办?

华为云开发者联盟

开发流程 bug 迭代 瀑布开发 企业号十月 PK 榜

十大 CI/CD 安全风险(二)

SEAL安全

DevOps CI/CD DevSecOps CI/CD管道 软件供应链安全

有人想用开源工具DBT取代 SQL,你同意吗?

雨果

sql

5分钟,带你创建一个智能电梯检测器模型

华为云开发者联盟

物联网 华为云 iotda 智慧电梯 企业号十月 PK 榜

JFrog Xray 与 Amazon Security Hub 集成

亚马逊云科技 (Amazon Web Services)

安全 DevSecOps

Python进阶(十二)浅谈python中的方法

No Silver Bullet

Python 方法 10月月更

Flowable 任务如何认领,回退?

江南一点雨

Java springboot workflow flowable JavaEE

爆火的RPA尚在初期阶段,拥挤的赛道厂商如何突围?

ToB行业头条

网易数帆数据治理2.0实践分享

网易数帆

大数据 数据中台 数据治理 数据质量 企业号十月 PK 榜

阿里高工携18位架构师耗时两个月整合1000页的Java岗面试八股文

程序知音

Java 架构 java面试 后端技术 Java面试八股文

挑战海量数据:基于Apache DolphinScheduler对千亿级数据应用实践

Apache DolphinScheduler

大数据任务调度 任务调度 dophinscheduler 大数据调度

驱动企业数字化转型 低代码平台需要具备哪些能力?

力软低代码开发平台

阿里内部手写的Spring Security,真的香啊

小二,上酒上酒

spring spring security

融云实践:主流叙事之外,科技如何助力民生改善

融云 RongCloud

数据 服务 科技

Gartner:被CIO们忽略的7个颠覆性趋势

雨果

CIO

专利解析|混合缓存技术在元年多维库中的应用

元年技术洞察

数据分析 多维数据库

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