关于代码质量:研发效能度量指标是否可以和个人KPI捆绑

46次阅读

共计 2147 个字符,预计需要花费 6 分钟才能阅读完成。

C++ 之父说过:You cant´t measure software efficiency——软件效力无奈度量

管理学之父又说过:You can´t manage what you can´t measure——你无奈治理无奈度量的货色

两个大佬说的是不是有抵触?没有。

为啥?两个起因:

1. 软件开发是一系列在长期最优解和短期最优解动静衡量的过程,且一直变动的,部分指标反馈不了全面,甚至会呈现重大的价值误判。

2. 霍桑效应,被观察者会刻意扭转行为。
指标导致价值误判问题,举“千行 bug 缺点”例子,这个指标的目标是让 bug 更少,但 bug 更少代表代码品质好?能代表效力高?一个专家写代码,可能会从可维护性角度,架构角度,做各种优化,各种激进的代码改善。但某次改善,可能引发很多 bug(通过大型底层重构的老司机都能感触到),而另外一个老手,战战兢兢,如履薄冰,每次需要都在 shi 山代码上沉积新的 shi 山,但在 bug 数量上能够管制很少(这就是 shi 山代码不要动的起源)。另外一个高级工程师用精炼的代码写完大量需要,而另外一个用大量冗余的代码写某个需要,在 bug 数量相等的状况下。这两种工程师千行 bug 指标齐全不一样。任何指标数据都是能够通过“代码层面的无心 / 歹意行为”被影响。所以,c++ 之父说得没错,指标不能度量软件的品质,指标是只是部分信息。如果有了指标 kip,工程师就会往这个方向靠,而漠视了真正的改良。

霍桑效应,简略说,当你晓得本人被察看,就会做出反馈。开发,测试,产品等都会潜意识里刻意追求数据更好看的数据,这也是 kpi 的通病。但软件研发采纳 kpi 十分危险,下面说过,指标和软件品质的关系十分软弱,最初导致形式化,没有人敢提出问题,改良问题。

那没有方法度量软件,怎么治理呢

软件品质不同于产品销量,后者通过直观数据能够表白,而软件介于工业品和艺术品之间,外在的品质通过真正的用户体验和反馈取得,比方用户吐槽、生产问题等;而外在的品质依赖同行审查每行代码,比方可维护性、健壮性、优雅性等。

你的代码写得好不好,架构稳不稳,够不够 shi 山,有没有影响团队开发效率,拉进去让同行(最好比写的人更权威)看看就晓得了。

这也是 Linux 高超之处,全世界的开发者都在盯着你的代码。

回到软件研发效力指标和 kpi 绑定问题,如果谁这样做,我敢说要么不懂代码,要么只是懂一点点。

那咱们总是要管理软件的吧?所以回到度量自身,指标能够是辅助工具之一,管理者最好是让大家不晓得,最大水平升高被察看的效应,背地再依据理论状况去剖析和改良。咱们度量的目标是什么?是维持指标吗,no,是改良软件。

比方生产缺点数,目标是理解指标背地的数据,并升高它,这次生产缺点是因为大量需要集中上线导致?是代码外部某个无关大雅小失误?还是长期积攒的技术债引起的?这些都要具体问题具体分析、能力改良。比方缺点均匀解决工夫,咱们的目标是让开发尽早解决问题,不要迁延,那缺点解决工夫过长,是因为开发需要太多?没有工夫改 bug?还是代码可维护性差,导致每个小缺点解决起来辣手? 每个指标代表一种价值方向,要深刻现场,剖析每个指标背地的数据能力找到起因。这是古代软件治理的形式之一,但不能强行绑定 kpi。否则人人都在保护指标数据,而不敢改良代码,漠视长期利益。

另外,有些以软件技术主导的公司,比方 Google 不仅排挤 kpi,连宽松 ork 都在改革了(据说更器重软件工程师的内外影响力?~这种形式利弊不表态)。想简略的从部分数据去发现工程师之间软件研发效力的差异,真的很难,这是管理者不懂技术,想要走捷径的形式。

不过我始终同意用黑客界的模式去思考软件的品质,同行 / 专家评审是最精确的。在有些公司,降职不仅仅要问难,还有专家集中评审你写的代码,打分,作为间接的参考。我感觉团队外部的研发效力度量也一样,专家团背地观测(前提不影响团队),深刻软件外部,能力精确评估团队效力。但没有公司这样做,因为老本太高。另外外部专家观测,在客观性、还有权威性也不容易失去认同。

度量是被动的,自上而下的。而团队最重要的是外部信赖,最好的治理是没有治理,自我驱动治理(当然这很难)。所以,指标度量切实是一种无奈、且低成本的下下策管理手段而已。

另外忽然想多聊点《大教堂与集市》外面作者讲过的,有些公司为了进步代码品质,就让它开源,比方火狐浏览器,是最早开源的大型 c++ 软件。过后团队的目标之一就是让其余开发者监督这些代码,毕竟,shi 山代码会升高火狐工程师的社区信用。其余一些出名软件 vscode、Linux 同理。这么多人盯着你的研发流程,代码提交记录,不想好好提高质量都难,你敢说本人代码写得好,流程高效标准,那要接管来自社区同行 pk 探讨。但这种做法,只有在我的项目十分出名的状况下,才有较大收益,很小众的软件,大家都不 care,同行审核的价值也更低。

以上仅限于软件研发过程的度量探讨,而产品业务价值的判断不在同一个维度。

——————
文档信息
题目:研发效力度量指标,是否能够和集体 KPI 捆绑?
发表工夫:2022 年 8 月 10 日
笔名:混沌福王
原链接:https://imwangfu.com/2022/08/…
版权申明:如需转载,请邮件知会 imwangfu@gmail.com,并保留此文档信息申明
——————

正文完
 0