【分享】You get what you ask for(by Naresh Jain)
Naresh Jain Malad, Mumbai, India
It is a well-known fact that if you measure the wrong things, you encourage wrong behavior. Software teams suffer daily because their managers are tracking and measuring them against the wrong parameters.
For example, measuring how many hours someone works encourages team members to clock in longer hours. Studies have show that working longer hours does not necessarily produce better results. In most cases, it actually results in poorer work quality.
Similarly, measuring and focusing on the team's velocity (amount of functionality completed by the team in a time span) encourages more work to be done faster, but does not necessarily ensure the most important/critical work is being chosen. Therefore, this approach does not solve the real business problem of completing software development both quickly and bug-free.
Focusing on how many bugs the testers report encourages the testers to report more bugs, but not necessarily to report issues with maximum business impact. If developers are measured based on how many bugs were filed against them, testers can become their enemy. This leads to unnecessary team tensions.
In my experience, more software, done faster, does not mean successful software. Rapid software development is good for getting feedback quickly, but building real products needs a lot more than just development speed.
Often when I visit dysfunctional teams, it turns out that the teams were measured using the wrong parameters. Hence the team adapted and optimized itself for those poorly chosen parameters. Lacking the understanding of the project's purpose or vision led to team members defining their own success criteria and measuring themselves against their own respective, disconnected, dysfunctional parameters. Incorrect measurement does more harm than good.
Good project managers ensure everyone on the team really understands what success means. They help build a common vision and shared understanding within the team. They encourage team collaboration by building win-win situations, so that each team member has the same focus and is working toward the common goals. They help the team identify what really needs to be measured. The secret sauce of successful projects is in using metrics as a means to an end and not as a deliverable in their own right.
I find if I try to measure 10 different things at once, it gets very confusing and distracting for the team. Limiting myself to measuring two or three parameters at a time, however, is very effective. These two to three parameters should be unanimously decided by the team based on current issues hurting the team or on risks that the team feels will impact them in near future.
Once the issue is resolved or the risk is mitigated, the team should remove the old checks and replace them with new items added to their metrics. A team which does not periodically change its metrics is symptomatic of a bigger problem.
Be sure what you are measuring is of value, and that may change during the project. You get what you measure, so be sure you are measuring the right things.
原文地址:http://pm.97things.oreilly.com/wiki/index.php/You_get_what_you_ask_for
相关推荐
软件测试中单元测试VS私有方法
软件测试中单元测试VS私有方法软件测试前几天,NareshJain在ManagedChaos上发了篇博客,总结了一些测试中的badsmell。例如:●一个方法中有太多testcase——被测试的方法做了太多事情。●太多的setup/teardown——表示被测试类的耦合性太高。● 软件测试中单元测试VS私有方法 软件测试 前几天,NareshJain在ManagedChaos上发了篇博客,总结了一些测试中的badsmell。例如: ●一个方法中有太多testcase——被测试的方法做了太多事情。 ●太多的setup/teardown——表示被测试类的耦合性太高。 ●改变一
双闭环PWM整流器VOC控制 +SVPWM调制仿真(Simulink仿真实现)
内容概要:本文围绕城市空中交通环境下多无人机协同路径规划问题展开深入研究,重点探讨了在包含建筑物、禁飞区、动态威胁等复杂约束条件下,如何利用仿生优化算法(如布谷鲶鱼优化算法CCO、灰雁优化算法GGO、田忌赛马优化算法THRO)实现安全、高效的多无人机路径规划。文章提出了一种分层规划策略,融合全局路径规划与局部动态避障机制,构建了综合考虑路径长度、威胁暴露度、高度变化及地形碰撞风险的多目标优化模型。通过Matlab仿真平台对多种算法进行对比实验,系统评估了各算法在路径安全性、收敛速度、优化性能和鲁棒性方面的表现,并深入分析了现有方法的局限性,对未来研究方向如动态环境适应、通信受限下的分布式协同等进行了展望。; 适合人群:具备一定编程基础,熟悉Matlab/Simulink仿真环境,从事无人机系统设计、智能交通、自动化控制、路径规划算法研究等相关领域的科研人员及高校研究生。; 使用场景及目标:①应用于城市空中交通系统中多无人机的协同任务执行与动态避障;②为复杂威胁环境下多智能体系统的路径规划提供先进算法支持与仿真验证框架;③辅助研究人员深入理解并复现仿生优化算法在高维、多约束路径规划问题中的具体实现与性能差异。; 阅读建议:此资源以Matlab代码实现为核心,紧密结合理论建模与仿真实验,建议读者在学习过程中重点关注算法的设计原理、参数调优策略及仿真结果的可视化分析,结合文中提供的实验数据进行横向对比,以深刻把握不同仿生算法的搜索机制、适用场景及其在实际工程应用中的潜力与挑战。
仿真+课设Multisim直流可调稳压电源(0-15V)仿真设计基于LM317+LM337【仿真+课程报告】
内容概要:本文详细介绍了一种基于LM317(正压调节)和LM337(负压调节)芯片的Multisim直流可调稳压电源仿真设计方案,输出电压范围为0-15V,具备完整的电路仿真模型与课程设计报告。设计涵盖线性稳压电源的核心原理,包括电压调节机制、元件参数配置、双极性电源构建及仿真测试流程,突出理论与实践结合。文档还附带丰富的扩展资源,如三相PWM整流器、函数信号发生器等仿真项目,并提供百度网盘链接用于获取全套资料,适用于电子类课程设计与自主学习。整体内容系统性强,注重仿真操作指导与工程实践能力培养。; 适合人群:电子信息工程、自动化、电气工程及其相关专业的本科生、专科生,以及正在进行模拟电子技术课程设计或毕业设计的学生。; 使用场景及目标:①深入理解线性稳压电源的工作原理与设计方法;②掌握Multisim软件在电路仿真中的实际应用;③完成基于LM317/LM337的可调稳压电源课程设计任务;④提升模拟电路系统的设计、仿真与分析综合能力; 阅读建议:建议结合Multisim软件同步实践,按照文档电路图逐步搭建仿真模型,重点关注电压调节电路的实现细节与参数设置,并参考所提供的其他仿真资源拓展知识广度,强化工程思维训练。
阻尼器磁流变阻尼器MR Damper非线性(阻尼、滞回)特性研究(Matlab代码实现)
内容概要:本文围绕磁流变阻尼器(MR Damper)的非线性特性开展深入研究,重点剖析其在动态载荷作用下的阻尼力响应与滞回行为所表现出的强非线性特征,并基于Matlab平台进行系统建模与数值仿真。通过建立能够准确描述MR阻尼器非线性力学行为的数学模型,模拟其在不同激励条件、电流强度和运动频率下的动态响应过程,进而对系统的非线性特性进行定性与定量分析。研究涵盖了模型构建、参数设定、仿真执行与结果可视化等全过程,突出了Matlab在处理复杂非线性系统仿真中的强大功能与工程实用性,为智能材料器件在振动控制领域的应用提供了坚实的理论支撑与技术路径。; 适合人群:具备一定控制理论、机械动力学或智能材料基础知识,熟悉Matlab编程环境的研究生、科研人员及从事振动控制、结构工程等相关领域的工程技术人员。; 使用场景及目标:①用于智能材料与结构领域的科研与教学,帮助深入理解磁流变阻尼器的工作机理与非线性动力学特性;②为车辆半主动悬架系统、建筑结构抗震减震、桥梁风振抑制等实际工程中的振动控制系统设计、仿真验证与参数优化提供技术支持;③作为非线性系统建模、动力学仿真与Matlab编程实践的经典案例,有效提升使用者的系统分析能力和工程软件应用水平。; 阅读建议:建议读者结合文中提供的Matlab代码进行动手实践,通过调整模型参数(如电流、激励幅值与频率)观察系统响应的变化规律,深入探究非线性特性的形成原因与影响因素,并可尝试将该建模方法迁移至其他智能阻尼器件(如压电、电流变阻尼器)的研究中,以拓展应用视野。
全桥LLC谐振(变频+移相混合控制)变换器闭环仿真模型(Simulink仿真实现)
内容概要:本文档详细介绍了一种基于Simulink实现的全桥LLC谐振变换器闭环仿真模型,采用变频与移相混合控制策略,重点研究系统的动态响应、稳态性能及高效软开关特性。内容涵盖系统建模、PI控制器设计、闭环反馈机制构建以及谐振参数的优化配置,全面展示了从理论分析到仿真验证的全过程。通过在不同输入电压与负载条件下进行仿真测试,验证了该模型在提升转换效率、实现零电压开通(ZVS)和精确调控输出电压方面的优越性能。同时,配套提供参数设计报告、仿真说明文档及参考文献,有助于深入理解与复现实验结果。; 适合人群:具备电力电子与电力系统基础知识,熟悉Simulink/Matlab仿真环境,从事高频DC-DC变换器、新能源电源、车载充电机或相关领域研发工作的工程师及高校研究生。; 使用场景及目标:① 掌握全桥LLC谐振变换器的建模方法与闭环控制系统设计流程;② 深入理解变频+移相混合控制在高效率电源变换中的协同作用机制;③ 用于科研项目复现、教学案例演示或工业级电源产品的前期仿真预研;④ 为实际硬件原型开发提供可靠的理论支撑与关键参数设计依据。; 阅读建议:建议结合所提供的仿真文件与设计报告同步操作,重点关注控制环路搭建、谐振腔参数选取及其对系统性能的影响,推荐通过调整负载与输入条件进行多工况仿真分析,有条件者可进一步推进至样机实验验证。



