您在压力下会写不好的代码吗?[关闭]


14

当您承受压力时,临近最后期限,经理正在喘不过气来,您是否发现自己开始编写不良代码?为了完成任务,TDD和最佳做法会顺道溜走吗?在这种情况下您会怎么做?您的经历是什么?


让我以一种大的方式挑战您:我提出的一些最大,最好的创新是迫在眉睫的紧迫需求的产物。有时,战斗的激烈性会带来锐利的关注点,而这种天日夜夜的思索和手工艺并不会激发人们的兴趣。
user1172763 '19

Answers:


31

一言以蔽之。否则,任何告诉您的人充其量都是错误的。

但是,关键是建立在您的经验上,以编写较差的代码。抵制诱惑,要尽可能使它“正常工作”,因为它不会。您仍然需要遵循某种流程(无论是您自己的流程,公司的流程还是二者的结合)。

经验告诉我,它的要好得多(喘气)滑时间表几天来防止一周的修复,尤其是在“压力下”是指加急产品发布。如果您急于发布代码,测试人员可能也会急于对其加盖章。


我会给帖子加10,很好的说
maz3tt 2010年

16

如果团队处于紧要关头,那说明做错了什么。

缺少截止日期表示规划和估算不佳。确认将错过最后期限并解决问题。有时您无法控制计划估算。识别谁做,并确保他们知道这样做是错误的。

在无法更改截止日期的情况下,您要分解含咖啡因含量高的饮料,然后匆忙处理。确定您可以牺牲的所有东西并切掉。充分利用剩余的资源,并尽快实施。这将导致诸如不稳定,奇数错误,编码效率低下,创可贴修复以及各种其他恐怖等问题。它不一定是不好的代码,但不是理想的

人们实际拥有的50%好的解决方案比没有人拥有的99%的解决方案能够解决更多的问题,并且可以生存更长的时间,因为在您的实验室中,您正在无休止地抛光该死的东西。航运是一项功能

来自Joel的软件The Duct Tape Programmer

如果处理不理想的代码,则无法处理。未处理的代码将堆积起来,进而使其他更改(即使不是不可能)变得更加困难。可能会导致应用程序相互依存在一起,以至于只有最谨慎的程序员才能以高昂的时间成本完成附加操作。虽然运输是一项功能,但它具有可维护性。


1
我唯一要更改的是要点中的“您”一词。我认为,团队中的每个成员都有可能出错的成倍因素,而每个外部依赖项都有可能出错的指数级因素。或相反亦然。;)
Wonko the Sane

2
@ysolik:请参见改写。计划或估计是FUBAR的决定,可能不是您的错。
乔什(Josh K)2010年

2
@ysolik:在截止日期之前,您编写的代码少于理想代码,并祈祷您以后有机会对其进行修复。经过适当的计划,这永远不会发生。
乔什(Josh K)2010年

2
永不说永不... :)
Wonko the Sane 2010年

3
@Wonko:是的,经过适当的计划,这种情况很少发生。
Josh K 2010年

7

我是软件工艺的忠实拥护者-尽我所能编写干净的代码,等等,但是有时我不得不在时间紧迫且期限临近的时候匆匆忙忙。我确实尽最大努力做到这一点,但有时您无法摆脱它。

有人会说:“这就是生活,你得飞船”,但我真的不同意这种态度。

在编写匆忙的代码时,您可能最终会准时将软件发布出去,但是在接下来的几天中,您最终获得与软件中的错误相关的支持电话(这些错误存在于同一块中)会发生什么情况?急于完成的代码集)。还是生气的客户打电话问他们,即使您保证在发布之日就可以了,为什么他们的报告模块不再工作?

“您得飞船”非常好,但是看起来高效和看起来像个草率的工人之间是有区别的。




1

我不相信我个人会编写明显较差的代码,但我确实提供了较差的产品。

当面临一个任意且不可能的截止日期时,我们会跳过开发过程。我们进行更多的表面代码审查(或完全跳过它们)。我们减少测试,绕过详细的单元测试以进行抽查类型的集成测试,然后尝试将集成测试视为正式资格。如果异常不直接与通过/失败标准相关联,我们往往会忽略它们。我们将跳过文档更新,不要再次检查发行说明,而忘记清理不再需要的文件的可交付成果列表。

您在紧缩过程中编写的源代码可能是高质量的,但是几乎可以肯定它会作为劣质产品的一部分提供。


0

要看。

压力是因为无法完成所有事情,还是因为要在发布前几个小时添加主要的新功能?

错误的代码来了!

但是如果是因为时间表真的真的很紧,但是总体计划是可靠的,那么我只需要比平时更加​​努力,并不断集中精力,同时调整一些可听到的功能,那么我产生的代码比如果时间表允许很多时间。即使这意味着我没有编写所有单元测试,但涵盖了代码的主要部分。


噢-好评论,除了最后一句话让我有些害怕。
桑科旺科(Wonko the Sane),2010年

好。这并不意味着他们将永远不会被写作。这很可怕,但我认为这可以帮助我保持专注。而且有单元测试,只是没有100%的覆盖率。更像是66%。
ElGringoGrande,2010年

唯一的问题是,这34%没有包括的是您急忙输入的新代码,而不是不太可能(全部)破坏所做更改的已经建立的代码。并不是说我们还没有全部做到这一点,只是说这是一个可怕的主张。
桑科旺科(Wonko the Sane),2010年

0

我知道有人永远不会在压力下编写不良代码。他还有一些您可能会感兴趣的魔术豆。

有时每个人都会编写错误的代码,而迫在眉睫的截止日期是通常的原因,诀窍是首先避免陷入这种情况(这也不容易)。

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.