在开发人员的职位描述中将“无错误”作为关键输出是否适当?[关闭]


10

作为对所有职位描述的审查的一部分,我公司决定将以下内容作为关键输出:

网站开发按时完成,符合规范且无错误

鉴于规范会定期更改,因此没有正式的更改控制流程,而且我们要说的环境有些不可预测,该KPI有多现实和合理?


20
完全不现实。那可能是由一个与太多不良开发人员一起工作的人写的。但这也可能是管理不善的错误。提供的信息不足。
Mark Canlas

11
在履历表上附带“可编写无错误代码”的开发人员会很荒谬,无法匹配职位。
P.Brian.Mackey 2011年

12
唯一可以证明没有任何错误并实现其目标的代码是一个空的代码库,声称什么也不做。
unholysampler 2011年

8
pfft ...看起来像是替罪羊条款,人们可以轻松实现。“抱歉,您没有遵守您的雇佣协议……我们将在不通知您或没有其他原因的情况下开除您。
史蒂文·埃弗斯

5
当然没有错误。编译器说:0错误,0警告。完全满足工作要求:-)
Ferruccio

Answers:


21

“无错误” 过于主观。一个人的“未完成功能请求”是另一个人的“错误”。诸如“应基本符合设计规范”之类的字词会更合适。我从未真正看到过您在职位描述中所描述的内容。我已经看到它是用于合同工作,但不是用于员工。


9

对于大多数答案,我将采取相反的立场,并说这是绝对合理和现实的。

所有开发都会按时完成吗?当然不会,并非总是如此。

所有开发都将在规格范围内完成吗?您希望如此,但有时根本不可能,并且您必须标记与不可能或自相矛盾的规范的偏差。

并且所有开发都会没有错误吗?从不

但这就是KPI的目的。这是可以衡量的,可以用来跟踪绩效和进度。

如果规范定期更改,没有正式的更改控制流程,并且环境是不可预测的,那么使该数字接近“无错误”将是一个挑战。但这挑战是您的工作,并且希望您会做得很好-明年更好,因为您将在管理公司自身特殊的混乱局面方面获得更多实践。

反问题:将为程序员建议哪些KPI ?这是一个艰难的过程。我们所做的许多事情很难衡量。


4
实际上,不可能保证任何重要大小的代码库都是“无错误的”,因为可能存在您根本没有发现的错误。还有,这是什么错误?有毛病吗 如何测量?
philosodad 2011年

1
@philosodad-这有点我的意思。它不会没有错误。但是,如果今年您编写的代码中发现了x个错误,而明年x-4被发现,则您的KPI已有所改善。至于错误是什么,对您的组织来说确实是一件大事,毫无疑问,这会引起一些争论,例如“错误”与“未记录的要求”,“变更的要求”与“意见分歧”。
Carson63000

3
@ Carson63000:但这就是我的意思!保证会引起多个争论,导致各方之间不可避免的分歧并模糊地定义关键指标的KPI至少是有问题的。以您的示例为例,如果“错误”是一种主观度量,可以预见的是,经理将定义错误以使自己看起来更好,因此对于完全相同的绩效,每个人的错误率都会降低。但是,新经理可能会先定义然后再定义,以显示他们如何“改进”相同的精确输出。
philosodad 2011年

3
最好是没有严重错误的目标(定义严重)。或提高错误率。甚至更好的是,这些东西应该成为年度绩效评估的目标,而不是职位描述的一部分。
quick_now 2011年

3
关键绩效指标(KPI)涉及的目标不仅不能完全实现,而且可以被超越。您可以用它来衡量您的工作状况是否比KPI目标更糟或更好。我看不出如何可以超过“无错误”。因此,即使将其用作KPI也存在缺陷。一个更好的KPI是衡量故障的数量,对提交的代码测试报告你写,导致实际的代码变化等
马里安Venema

4

如果是职位描述,那么我就不必担心,因为为实现无错误代码而进行的工作是典型程序员的工作(即使我们永远无法实现)。

但是,作为关键绩效指标,它影响范围太广,但是如果他们不是程序员,也不要怪罪建议它的人。只需解释一下,该声明设定的目标对于组织而言可能是不可取的。也就是说,“无错误”是软件的极高标准,需要花费大量金钱才能真正交付。说明一个运行良好的软件项目需要就每个缺陷是否值得花费宝贵的开发人员时间做出决策。

这是一个很好地说明这一点的示例。
程序员发现我们的软件存在“ 3000年”错误,并将在12月31,2999日停止运行。解决此问题将需要6到8个月。尽管对公司没有实际价值,但仍鼓励基于KPI的项目继续进行。

好的,这个例子有点极端,但是在任何软件项目中,实际上都会发现许多小缺陷,它们同样不会产生修复它们所需的投资回报率。如果相反,KPI的意图是暗示程序员永远不会引入缺陷,那么将任何员工坚持不犯错误的工作标准是否合理?


您似乎不太可能拥有涵盖“已被管理层认为不是问题且不需要修复的修复缺陷”的KPI。
Carson63000

@卡森-不是我所知道的一些大公司。愚蠢的目标是他们开展业务的一部分。
quick_now 2011年

3

没有

不仅不合适,而且很可笑

测试只能证明错误的存在,而不能证明错误的存在,因此在此约定下编写的每个程序都必须包括严格的正确性证明... 以及 100%的测试覆盖率

“当心上面代码中的错误;我只是证明了它是正确的,没有尝试过。” -D.克努斯

KPI是衡量目标成功与否的指标。它们不是二进制切换“无错代码=成功,一个错误=失败,您被解雇了!”
Carson63000

@Carson:“无错误”不是关键绩效指标,而是幻想。
Steven A. Lowe

1
在我看来,这听起来像是搭stitch。在JD中放一些愚蠢的东西,然后每当需要借口时就可以将其开除,因为他们的表现不符合JD的要求。
quick_now 2011年

3

当然,编写无错误的代码是每个程序员的工作和职责。这是一个完全合理的期望。如果发布不起作用的代码,如何成为专业程序员?如果您发布不知道有效的代码,您如何认为自己是一名专业程序员?

如果您雇用画家,您会期望他做得很好。您期望他的工作结果没有错误。如果有错误,您希望他对这些错误负责并免费修复。更重要的是,如果错误使您付出了金钱,那么您希望他偿还您的费用。为什么会有这些期望?因为画家是专业的。

程序员喜欢将错误归咎于其他所有人。“由于需求,日程安排或月球在第八宫,我的程序存在错误。”但实际上没有人要怪。如果您的程序有错误,把它们放在那里。

除非程序员意识到自己的责任不高,否则我们的职业永远不会成为职业。那他们是负责其方案的质量。

您知道为什么公司创建软件质量检查部门吗?因为程序员没有做他们的工作!程序员发布了很多废话,公司不得不组建全新的部门来对其进行检查。

错误列表多长时间?在错误数据库中包含数千个错误是专业的吗?显然不是。这反映了不良的行为,纪律不清以及坦率地说是不诚实的。

除非我们意识到确保质量检查没有发现是我们的工作,否则我们永远不会成为职业。


+1,但我想将无错误视为个人目标而非现实。我们都应该为此而努力,但是除非获得了无穷无尽的资源,否则我们将无法实现目标,至少没有鉴于我们现在如何开发软件。
rjnilsson 2011年

我完全不同意鲍勃叔叔的观点。这是一个非常专业的问题。
Johnsyweb 2011年

1
由于我的管理层绝对清楚他们希望我现在给他们有故障的软件,而不是以后再纠正软件,因此使这个职位有些复杂。在这种情况下,我并不孤单。
Tom Anderson

3

令人遗憾的是,这听起来像是他们“覆盖所有基础”的一种方式,显然不建议这样做,并且可能会使开发人员失望。

但是话虽如此,这仅在您查看其在审阅期间对文本的处理后才真正重要。因此,不要反应太快-隧道尽头可能还会保持理智。


考虑到我目前的工作环境,我会对他们如何使用该措辞感到非常怀疑。
Phil.Wheeler 2011年

2

“完美无缺”中的“无错误”?如“上帝和天使写的,不是人类?” (我们这里所说的是程序逻辑错误,也许是硬件逻辑错误)

我什至不能说出哪一行代码都没有错误。那是因为我们人类,好吧,我们不能证明没有负面假设!

我能说的最好的是,错误的可能性是介于0到1之间的数字。我通过定义明确或理解不充分,理解程度不高的软件开发和测试原理达到了这个数字。根据所讨论的源软件系列;通过了解我候选的杂种狗的好坏,在编写这些代码行时运用了这些原则;和更多。

我只能将这种理解表示为一种可能性。因此,术语“无逻辑错误”几乎没有意思。

如果我看到某广告的软件工程师产生了“无错误”的代码,那么我要么立即申请,要么马上就运行:该公司对开发,测试和交付软件的方式并没有考虑太多。因此,这将是一个巨大的机会,或者是一场无尽的噩梦。

但是,在所有软件中,我都可以轻松而且必须说出我期望的代码没有任何错误超出了那些笨拙,晦涩,符合逻辑的东西:可以编译且链接没有错误或警告的代码;那是“有效的HTML”或“有效的CSS”;无法产生无法解释的错误消息或浏览器错误的JavaScript(例如)。我可以直接测量该部分,并在图形上用黑白标记。

这部分很容易做。任何人都可以做那个

嘿,祝您好运:-)


1

我是愚蠢的,还是“错误”并不意味着“致命的编译器消息等于不可编译的代码”?

根据这个定义,这是一个非常合理的要求。


1
真正。页面页脚上的文本未对齐可能是一个错误,但它与导致页面无法加载并将运行时错误发回给用户的错误不在同一类。
FrustratedWithFormsDesigner

在Web开发中,“错误”可能意味着很多事情。对所有产品显示错误的价格可能被认为是一个重大错误,但不一定会阻止任何运行,并且可能不会在服务器日志中报告任何问题。
西蒙B

自发表此评论以来的四年中,我做了更多的Web开发工作,并完全同意-但是,不同寻常的是,我将坚持4年前的回答,并说我正在努力化妆是“错误”的定义是任意的,(非常)选择定义它一个合理的要求。
克里斯·布朗
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.