随着企业的规模越来越大、外部竞争越来越激烈,越来越多的企业关注软件研发效能,之前我也写了几篇有关软件效能的文章,例如:
-
软件研发效能的底层逻辑
-
直击灵魂:软件研发的第一性原理与10倍效能
今天从逆向思维来分析软件研发效能,看看有哪些主要因素会影响、降低研发效能或成为效能提升的阻力些负面影响因素中,究竟哪项是研发效能的最大的敌人、成为研发效能提升的最大阻力听听你们的意见,欢迎大家留言。
正如 软件研发效能的底层逻辑 一文所说,人是决定的因素,成也萧何、败也萧何,人是第一要素,也是研发效能负面清单上不会缺失的内容。当然,我们可以把“人”的因素分解为 组织的质量文化、组织领导力、团队协作能力、个人技能,还有工程素养或职业素质,最近我还在百度技术沙龙上分享了 “从质量视角聊聊软件工程师的职业素养”。组织上不作为、组织文化落后、团队或个人 糟糕的能力、素质等等都会成为研发效能负面清单中不可缺少的内容。
其次,当前缺乏有效的流程,或者虽然有流程,也是照搬过来的,东施效颦自然效果不好。有些流程的演化只做加法,不做减法,时间长了,流程会过于繁琐;如果流程过于苛刻、机械,把流程当圣旨,人成了流程的奴隶,这些都会严重影响交付效能;即使现在流程运转不错,但缺乏有效的机制不能持续改进流程,效能也很难提升。
再者,技术和工具的落后、不稳定等也会影响研发效能,比较容易理解;最后,软件自身带来的问题,如复杂性、可测试性、代码的可读性、缺乏必要的文档等等也会影响软件效能,也有人说,软件复杂性是软件效能的天敌,会杀死我们。
经过头脑风暴和整理,我们可以列出软件研发效能的负面清单:
-
缺乏质量意识
-
质量文化建设空白
-
组织缺乏领导力
-
团队之间矛盾重重
-
团队规模大
-
团队责任不清楚
-
缺乏有效的目标管理(OKR/KPI等)
-
人员招聘、培训流程混乱
-
个人职业素质普遍比较低
-
个人技术能力不强
-
个人软实力弱
-
照搬流程(机械、苛刻等)
-
流程不容易理解
-
繁琐的流程:只做加法
-
流程没有贯通(反敏捷、反DevOps)
-
流程至上
-
缺乏有效的流程改进机制
-
糟糕的研发效能度量
-
技术落后(保守)
-
技术不成熟(过于激进)
-
重复造轮子(开发市场/开源已有的工具)
-
研发平台(包括IDE)不好用
-
没有或低效的CI/CD流水线
-
研发环境不稳定
-
各平台(开发、测试、缺陷管理、项目管理等)没衔接好
-
需求描述不清楚
-
业务复杂没有优化(缺乏业务建模/架构设计)
-
需求经常变更(存在极大的浪费)
-
需求评审流于形式(导致需求遗留问题多)
-
需求管理混乱
-
糟糕的架构设计(系统复杂)
-
没有Design for Test
-
没有Domain driven design
-
缺乏必要的设计文档(如接口定义文档)
-
设计评审流于形式(导致设计遗留问题多)
-
代码质量差(bugly)
-
代码可读性差:不规范(命名、注释、风格)
-
代码不具有可测试性(含代码复杂)
-
糟糕的代码库管理(包括分支、合并等)
-
低效的版本构建、集成(如缺乏增量版本构建)
-
代码扫描(静态分析)很少做
-
代码人工评审流于形式(导致代码遗留问题多)
-
测试缺少方法(测试分析/设计能力差)
-
测试缺少策略(存在测试浪费)
-
测试环境不稳定
-
自动化测试程度很低
-
没有采用探索式测试
-
探索式测试和自动化测试没有有机地结合起来
-
部署或配置自动化程度不高
-
缺乏自动监控/人肉运维
-
缺乏可观测性
-
不自动收集用户反馈
你认为,哪项是头 敌人strong>
问卷系统
欢迎参加问卷调查,非常感谢
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!