Answers:
一言以蔽之。否则,任何告诉您的人充其量都是错误的。
但是,关键是建立在您的经验上,以编写较差的代码。抵制诱惑,要尽可能使它“正常工作”,因为它不会。您仍然需要遵循某种流程(无论是您自己的流程,公司的流程还是二者的结合)。
经验告诉我,它的要好得多(喘气)滑时间表几天来防止一周的修复,尤其是在“压力下”是指加急产品发布。如果您急于发布代码,测试人员可能也会急于对其加盖章。
缺少截止日期表示规划和估算不佳。确认将错过最后期限并解决问题。有时您无法控制计划或估算。识别谁做,并确保他们知道这样做是错误的。
在无法更改截止日期的情况下,您要分解含咖啡因含量高的饮料,然后匆忙处理。确定您可以牺牲的所有东西并切掉。充分利用剩余的资源,并尽快实施。这将导致诸如不稳定,奇数错误,编码效率低下,创可贴修复以及各种其他恐怖等问题。它不一定是不好的代码,但不是理想的。
人们实际拥有的50%好的解决方案比没有人拥有的99%的解决方案能够解决更多的问题,并且可以生存更长的时间,因为在您的实验室中,您正在无休止地抛光该死的东西。航运是一项功能。
来自Joel的软件The Duct Tape Programmer。
如果处理不理想的代码,则无法处理。未处理的代码将堆积起来,进而使其他更改(即使不是不可能)变得更加困难。可能会导致应用程序相互依存在一起,以至于只有最谨慎的程序员才能以高昂的时间成本完成附加操作。虽然运输是一项功能,但它具有可维护性。
我是软件工艺的忠实拥护者-尽我所能编写干净的代码,等等,但是有时我不得不在时间紧迫且期限临近的时候匆匆忙忙。我确实尽最大努力做到这一点,但有时您无法摆脱它。
有人会说:“这就是生活,你得飞船”,但我真的不同意这种态度。
在编写匆忙的代码时,您可能最终会准时将软件发布出去,但是在接下来的几天中,您最终获得与软件中的错误相关的支持电话(这些错误存在于同一块中)会发生什么情况?急于完成的代码集)。还是生气的客户打电话问他们,即使您保证在发布之日就可以了,为什么他们的报告模块不再工作?
说“您得飞船”非常好,但是看起来高效和看起来像个草率的工人之间是有区别的。
当我处于压力状态时,我的代码旨在完成工作。而已。在我看来,我不会专注于效率和其他问题,这是不好的。
我会努力的。
要看。
压力是因为无法完成所有事情,还是因为要在发布前几个小时添加主要的新功能?
错误的代码来了!
但是如果是因为时间表真的真的很紧,但是总体计划是可靠的,那么我只需要比平时更加努力,并不断集中精力,同时调整一些可听到的功能,那么我产生的代码比如果时间表允许很多时间。即使这意味着我没有编写所有单元测试,但涵盖了代码的主要部分。