首先,我很抱歉,因为我不知道如何创建社区线程。所以有人帮我
作为开发人员,跨越许多平台,技术甚至在基础架构级别;我总是问自己,我什么时候做得太多?
自从我开始以来,这是一个永无止境的学习过程。我了解到的一(1)件事是,要求在很长一段时间内几乎都无效,因此,稍加预见可能会大有帮助。
但是平衡在哪里,又怎么知道何时失去时间却没有获得时间呢?
首先,我很抱歉,因为我不知道如何创建社区线程。所以有人帮我
作为开发人员,跨越许多平台,技术甚至在基础架构级别;我总是问自己,我什么时候做得太多?
自从我开始以来,这是一个永无止境的学习过程。我了解到的一(1)件事是,要求在很长一段时间内几乎都无效,因此,稍加预见可能会大有帮助。
但是平衡在哪里,又怎么知道何时失去时间却没有获得时间呢?
Answers:
当普通开发人员无法通过阅读代码来理解您所做的工作时,您会做得太多。
我与所有遇到的简历驱动的“建筑师”战斗。我希望圆顶存在!;)
我相信全世界都在浪费大量的钱,可用于改善我们(程序员)的生活。
对我来说,我喜欢肯特·贝克(Kent Beck)在XP中提出的方法(不确定是他的想法还是别人的想法,但这是我第一次听说的地方):
要解决今天的问题,而又不设法弄清楚明天的问题是什么,也要解决这些问题,就很难。
开发人员可以在解决方案上花费大量时间,以解决不存在的需求,永远不会发生的极端情况甚至是真正的问题,其中问题的影响远小于预防问题的成本。
现在是时候投入用户真正想要和使用的东西了,这些东西将给用户带来的好处,将大大超过即使在其中一件事情实际上发生的不太可能发生的情况下所带来的不便。
除了对用户而言这不是最佳结果之外,以这种方式对过度工程的开发人员的影响还往往在于难以支持和增强的复杂代码。
因此,对我而言,如果您知道或可以肯定地确定某事是必要条件或将导致问题,请解决该问题,否则请不要解决。
事实证明,比最初实施的需求范围更广时,您可能需要重新进行处理,但是总体而言,您在整个项目中投入的总精力仍然较少,因为在大多数情况下这种情况不会发生。
您的问题是开放性的,因此我将其解释为“在项目的一部分上做得太多”:
对我来说,花太多时间去做并没有真正为客户带来收益的事情很容易。通常,诸如“很好,它可以工作,但并不完全像我想要的那样”这样的小事情,客户可能不在乎它是否以这种方式工作。
发生这种情况时,我应该停下来,花时间在更重要的事情上。最好还是将产品作为一个整体来工作,但是您可以使用这些较小的零件来完美地工作。
编写跟踪代码(来自Code Complete)可能是避免这种情况的一个好主意:您可以通过编写将整个代码(从GUI(或其附近)一直连接到后端,然后再返回)连接整个代码的代码来启动项目。这样一来,您总会拥有可行的东西,并且在整个事情运行之前,您不会花时间完善这些小事情。
但是,这仍然是纪律和优先级的问题。
当我回答“不,我会发脾气时,我后来没有这样做,这使我很伤心。”
IRL资源和时间限制通常在我不得不问这个问题之前就让我明白了。那时,您只关注最重要/可实现的部分,并希望获得最好的。
确实是一个永无止境的学习过程!...而且我认为它会一直保持下去!平衡是当事情足够有效时,您还有时间要做一些除了编程之外的事情。我会同意gablin的“纪律性和优先级问题”,而吉姆·霍普金斯(Jim Hopkins)则认为这会在一段时间后变得本能。我知道完善小零件才是使我们感到高兴的因素,但最终却是使最终用户感到高兴的一切。因此,我要说的平衡点(或折衷方案)是首先使最终用户/客户/客户满意(应该是计划A),然后如果有时间进行完善,则使“小零件”更有效和/或其他您想要的东西。在某些时候,您必须说“足够” :)否则,是的,它将变得过大!
当然,最坏的情况是最终用户/客户/客户是您!:)