如何避免人们使用我的代码进行恶意攻击?

时间:2010-09-26 13:53:43

标签: performance statistics

我不确定这是不是一个合适的地方,但它似乎是一个不错的地方。

我目前的工作涉及对大型数据集进行人工分析(在多个级别,每个级别都由经验丰富的分析师完善和完成)。大约一年前,我开始开发一些实用程序,通过比较早期级别的结果和最终级别来跟踪分析师的表现。起初,这非常有效 - 我们在店内使用它作为一个简单的指标,以帮助集中培训工作,并在整体上做得更好。

最近,结果已脱离背景并以我从未想过的方式使用。似乎管理层(特别是一个人)已经开始使用这些工具的结果来直接影响EPR(入伍的绩效报告 - \它是一个空军的事情,但我假设在其他领域存在类似的东西)和类似的文书工作。问题不在于谁在使用这些结果,而是如何使用这些结果。我已经向大家明确表示,结果非常简单,容易出错。

生成这些数据有许多不可避免的障碍,我已经努力通过一些漂亮的启发式方法来减少这些数据。在适当的背景下,它们是一个有用的工具。然而,脱离背景,因为它们现在被使用,它们弊大于利。

有问题的经理将结果作为分析师表现良好或表现不佳的字面指标。结果被平均,并且个人得分被排列为上述(好)或低于(差)平均值。这是在不考虑固有的误差范围和样本偏差的情况下完成的,不考虑任何形式的正确解释。我知道至少有一个人的绩效评级被标记为“准确率百分比”低于平均值不到一个百分点(当计算方法的典型误差率仅为2%到3%时)。

我正在编写关于系统中存在的错误的正式报告(包括“有意义统计分析初学者指南”),但所有迹象都表明这没有效果。

如果没有故意破坏工具(我宁愿避开这条路线但在这种情况下正在考虑的话),我想知道这里是否有人曾经有效处理过类似情况?任何有关如何处理此问题的见解将不胜感激。

更新: 感谢您的回复 - 周围有很多好主意。

如果有人好奇,我正朝着'精炼,教育和控制解释'的方向前进。我已经开始重建我的工具,试图更好地否定或跟踪错误,并自动生成他们可能想要的任何数字和图形,包括整个文档(同时隐藏为模糊引用他们目前看起来非常渴望导入的原始数据'神奇的'excel表。)

特别是,我希望错误的可视化表示和正确创建的排名系统(考虑到错误,标准偏差等)将有助于这种情况。

8 个答案:

答案 0 :(得分:12)

修改输出以包含错误信息(如果错误为+/- 5%,则不输出22%,输出17% - 27%),或者教育那些正在使用此错误的人这样当他们被用来对付他们时,他们就可以为自己辩护。

答案 1 :(得分:7)

嗯,您似乎与Law of Unintended Consequences中的context of human behavior发生了冲突。

不幸的是,一旦猫被淘汰出局,就很难重新投入。你有几个选择(顺便说一下,这些选项并不相互排斥),包括:

  1. 更改报告,以便他们的数据不再以您描述的方式被滥用。
  2. 与管理层合作,帮助他们了解为何使用您的数据不当或误导。
  3. 与那些在压力管理中衡量绩效的人合作,重新考虑他们的政策。
  4. 与管理层/分析师合作,提出一种可行的方法,以对每个人都公平的方式衡量绩效。
  5. 以某种方式打破报告,使其无法用于任何目的。
  6. 很明显,管理层希望对分析师的表现进行分析。可能真的需要这样做......而且您的报告恰好填补了空白信息。每个人的最佳选择是找到一种有效和公平地满足这种需求的方法。有许多可能的方法可以实现这一目标 - 从有利于性能层的密集排名到使用时间差异方法来优化性能测量。

    现在,您提供的现有报告完全有可能无法以公平和准确的方式应用以解决此问题。在这种情况下,您应该与您的管理团队合作,以确保他们理解为什么会这样 - 并重新定义绩效的衡量方式或花时间制定适当和公平的方法。

    说服管理层他们(ab)使用报告中的数据是不明智的最有力手段之一是提醒他们perverse incentives的概念。完全有可能随着时间的推移,分析师将以一种方式修改他们的行为,从而导致绩效报告中以实际绩效或结果质量的成本获得更高的排名,而这些成本并未被捕获或表达。您似乎对您的域名有了很好的理解 - 所以我希望您能提供具体和戏剧性的例子来说明这些后果,以帮助您解决问题。

答案 2 :(得分:4)

您所能做的就是尝试教育经理,了解他们为什么做的不正确。

除此之外,你无法阻止白痴愚蠢,你只会疯狂地尝试。

我绝对不会“破坏”人们依赖的代码,即使它不是特定的可交付成果。这只会让他们抱怨你,这可能会影响你的自己的 EPR: - )

答案 3 :(得分:4)

我真的认为这里的关键是与经理的良好沟通。

此外,我喜欢PatrickV的想法。您还可以尝试其他一些方法来围绕问题设计工具,这样看起来很愚蠢/很难将其用作性能测量 - 将统计信息的名称更改为“程序员X有多好”之外的其他内容,难以获得每人的数据,显示错误统计信息。

您还可以尝试以其他方式显示数据(这实际上可能会让您的经理认为您正在尝试帮助他们)。显示一个图表 - 位置上的几个像素差异可能比数字结果更难识别(我的猜测 - 您的经理使用excel并将红色着色低于平均水平)。绘制误差范围,因此对于超过百分比的百分比没有意义。 将结果作为比例 - 低和高保证金考虑到你的错误信息,比较难。

编辑哦,是的,并阅读“社交界面”。你可以从Spolsky的Not Just UsabilityBuilding Communities with Software开始。

答案 4 :(得分:3)

我会回应@ paxdiablo的建议,作为第一步:

  1. 处理有关固有错误的报告。事实上,让它成为每个副本的介绍。
  2. 当您参考测量错误时,请指出它们是错误的下限(除非实际上没有)。
  3. 尝试教育经理他/她的方式错误。
  4. 如果可能,请与您的经理讨论此问题。 或许与违规管理者的管理,取决于你对他们的熟悉程度,你可能会将其限制为“表达一些担忧”并提出一个单挑。
  5. 咨询您的人力资源部门,或任何负责绩效评估公平性的人员。
  6. 祝你好运。

答案 5 :(得分:2)

问题是代码不是你的,它属于你的公司。他们真的可以用它做任何他们想做的事。

我不想这样说,但是如果你的公司道德问题存在问题,你将不得不离开那家公司。

答案 6 :(得分:2)

您可以做的一件事就是自己实施比较。如果他真的想检查某人的表现是否明显低于其他人,那么它也应该正式进行测试。

现在选择正确的测试在不了解数据和结构的情况下有点棘手,所以我无法真正建议你。只要考虑到如果你进行成对比较,或者将多个分数与平均值进行比较,就会遇到multitesting problem。一种经典的纠正方法是使用Bonferroni。如果你实现了那个,你可以确定在某个时刻,没有人会再跳出来。 Bonferroni修正非常保守。另一种选择是使用Dunn-Sidak,它应该不那么保守。

正确的实施将是ANOVA-如果满足假设并且数据适合于当然 - 使用诸如Tukey Honest显着性差异测试的事后比较。这样至少考虑了结果的不确定性。

如果您不知道要使用哪种测试,请在stats.stackexchange.com上详细描述您的数据,并寻求有关使用哪种测试的帮助。

干杯

答案 7 :(得分:2)

我只是想详细说明LBushkin的Perverse Incentives答案。我很容易看到你的问题延伸到分析师避免困难主题的地方,因为害怕降低他们的分数。或者也许他们会提供与早期阶段相同的答案,以避免伤害朋友的分数,即使这是不正确的。一个有趣的问题是如果后面的答案不正确会发生什么 - 你没有真相,只有连续的分析意见 - 在这种情况下我假设第一个答案被标记为“不正确”,对吗?

也许向经理提供一些这些扩展会有所帮助。