哪个更重要:正确编写代码,还是编写正确的代码?

时间:2010-12-10 02:26:48

标签: agile

当我们编写有助于业务的代码时,我们会为它们创造价值,通常以利润,市场份额等形式创造。

如果我们写错了代码,我们就不会生成这个值。我们可能会产生一些,但我们会错过那些大赢。

A recent survey建议编写正确的代码 - 与业务需求一致 - 可能没有比正确编写代码更有用了;加油IT以生产任何东西,即使它没有很好地对齐,也能达到更高的质量。

我经历过技术上令人惊叹但从未投入生产的项目,这些项目在发布时都有错误,但帮助企业重新定义了他们的战略,以及之间的一切,反之亦然。你有什么经历,你会推荐什么平衡以及为什么?

5 个答案:

答案 0 :(得分:2)

  

哪个更重要:正确编写代码,还是编写正确的代码?

乍一看,这看起来像是“先来的,鸡肉还是鸡蛋?”问题,但事实并非如此。如果我绝对要比较这两个,那么我认为“编写正确的代码”更为重要。但比这两个更重要的是: “正确编写代码,以便编写正确的代码”

为什么我认为编写正确的代码更重要?这是因为“编写正确的代码”决定必须先行,然后你可以“为此编写正确的代码”。这两个逻辑上都不应该在同一时间内发生。真实的例子是:在Sprint规划中,PO决定“需要做什么” - 这是“正确的代码编写”,在Sprint期间,团队“正确编写代码”以便“编写正确的代码” “,按正确的顺序排列。

  

您有什么经验,您会推荐什么平衡以及为什么?

我也巧合地看到了正确的用户故事以糟糕的方式进行,但幸运的是,它为业务带来了巨大的收益。而且我也看到真正高质量的代码产品被废弃了。这一切都可能是巧合,但有一些概念可能会使这种观察更频繁地被看到。例如。一个名为“镀金”的概念/实践,其中开发团队花费太多时间来完善代码,甚至高级开发人员认为这是不必要的,当团队真正应该做的是,接下来的用户故事优先。另一方面,花费很少时间进行重构的团队可能会快速生成有缺陷的软件,甚至可能为企业带来利润,但“技术债务”最终会杀死他们,如果不是现在那么几年之后,那么由于这可能是他们最初可能获得的利润的两倍!

答案 1 :(得分:1)

调查不是关于软件本身,而是关于IT运营。因此,很难从中得出关于我们开发的软件的结论 - 或许,在确定何时在内部生产软件与购买外部解决方案时更有用。显然,在编写代码时,最好生成正确的代码。简而言之,这就是敏捷软件运动的全部内容。及早交付并获得反馈以生成正确的代码;使用单元测试,结对编程,持续集成和持续重构,或者各种敏捷实践之间的一些子集来生成正确的代码。

答案 2 :(得分:0)

如果我需要选择,我会选择Writing the right code(你知道你想要什么,你想要正确地构建它 - 否则你正在构建别的东西)。

但是,我也会说Writing the right code in the right way是要走的路。

答案 3 :(得分:0)

显然,没有一个正确的答案 - 但我作为工程师的偏好是尝试生成内部“正确”的系统,这证明了良好的软件特性(强大,分离,连贯,如果我没有做他们需要的事情,商界人士会纠正我,并通过发送备忘录和Jira条目来纠正我;质量差,以更微妙的方式出现。

答案 4 :(得分:0)

如果你问的是你提出的问题,那么在此过程中就会出现故障。如果您正确地完成了需求工程的工作并且能够正确访问适当的客户和利益相关者,那么您不必担心是否正在编写正确的代码。

每位医生最终都会将症状错误诊断为实际问题,而不是将其作为潜在问题症状的适当位置。这应该不是常态。

但是,如果您的业务客户阻止您联系客户或以其他方式妨碍需求工程流程,那么您编写正确代码的能力将清楚地表明开发流程的问题不是在你的最后。

此外,如果您正在编写正确的代码,并为已指定的需求编写正确的代码,那么迭代开发方法应该在流程的早期阶段指出其他内容不正确。

我认为这不算回答这个问题,是吗?编写代码是程序员工作中最小的部分,所以如果我们正在完成另外60-80%的工作,那么我们应该总是编写正确的代码,这样我们就有更多的时间来编写正确的代码。 / p>