我最近在SO上看到过一些与"代码指标"相关的问题,不得不想知道这些魅力是什么?以下是一些最近的例子:
在我看来,没有指标可以替代代码审查,但是:
但我想不出一个单独的指标本身总是表示"好"或"坏"代码 - 测量无法看到的东西总是有例外和原因.
从我忽略的代码指标中获得了一些神奇的洞察力吗?懒惰的程序员/经理是否在寻找不读代码的借口?人们是否提供了巨大的遗留代码库并寻找起点?这是怎么回事?
注意:我已经在答案和评论中询问了一些关于特定线程的问题并且没有得到回复,所以我认为我应该问整个社区,因为我可能错过了一些东西.运行一个指标批处理作业并不是真的必须再次阅读其他人的代码(或我自己的代码)会很好,我只是觉得它不实用!
编辑:我很熟悉大多数(如果不是所有)正在讨论的指标,我只是没有看到它们孤立或作为任意质量标准.
人们普遍认为,为软件开发人员设定可衡量的目标是行不通的,因为过分关注目标会导致行为与组织目标相反(所谓的" 测量功能障碍 ").
但是,在我的公司,我们需要为所有员工设定目标,并受到人力资源部门的鼓励,使其成为SMART.在过去,我的一级经理(团队领导)和我尝试了很多方法:
这些都不是理想的.如果您遇到类似的情况,即尽管有证据表明其有效性,软件开发人员必须创建有意义的,可衡量的目标,哪种方法最适合您?
我发现相关问题并没有完全解决同一问题:
更新(2009年11月18日):我的问题有10个upvotes,评分最高的答案只有4个upvotes(包括我的一个).我认为这告诉我们一些事情:或许Joel和其他人都是正确的,而且stackoverflow的综合智慧无法为开发人员提出任何令人信服的,可衡量的目标,这些目标无法在不对其真实(不可测量)价值产生负面影响的情况下进行游戏.工作.谢谢你的尝试!
我想跟踪可用于改进团队软件开发过程,改进时间估算以及检测项目执行期间需要解决的特殊情况变化的指标.
请将每个答案限制为一个指标,描述如何使用它,并投票给好的答案.
一些上下文:
想象一下,200多家开发公司最终建立了一个或多或少独立的架构团队/部门.由20多个"项目"/生产中不同规模的应用程序组成的软件组合由团队负责人/技术负责人负责,他们负责并负责项目"架构".
由于必须整合和控制架构并在整个系统上实现某些必要的大型返工,除了所有需要的知识交换之外,公司还决定建立一个架构部门.
什么是DO和DO不是这样的事业?
组成这样一个建筑团队的人是谁?
他们应该承担什么责任?
什么超出了他们的范围?
公司有哪些有用的过渡战略?
每当有人提到"建筑团队"时,如何防止那些歪歪扭扭的样子?
贵公司是否已成功进行此类更改?
为什么会失败?
为什么成功?
这不应该是关于"什么是建筑师?"(这是非常密切相关的)的讨论.
真正有趣的观点是可接受的/现实的,甚至是无摩擦的方式来安装这样一个团队,当然除了一些关于战斗的警告,最好不要开始.
是否可以将六西格玛质量管理与软件开发流程结合使用?
你的经历是什么?
如果您使用像Scrum或XP这样的敏捷方法,那么六西格玛是不是太官僚了?
我在谈论软件开发的整体质量管理,因为需求收集直到部署和运营,而不仅仅是构建阶段(TDD和单元测试等工具或多或少已经建立为最佳实践).