忽略质量/标准的软件开发人员是否对公司更好?[关闭]


10

选择不将代码优化,标准和最佳实践作为重中之重的软件开发人员,是否比那些担心优化,编码标准和实践的执行不如准时完成任务的开发人员创建更多有用的代码?

在进行个人绩效评估时,这些不同的方法有何比较?

这些样式在同行评鉴中如何比较?

在SDLC期间影响您的团队实施更多最佳实践的最佳方法是什么?


2
@Haylem-我认为我所做的原始编辑更好。如果标题与第一句话相同,那么标题的意义是什么?
BlackJack

1
@BlackJack我带回了您的标题并进一步完善了该问题。我认为我们三个人陷入了编辑历史中的同一篇文章。现在应该很好。
Thomas Owens

4
SE不是一个关于老板的怒气冲冲的地方。我们都有老板,我们大多数人都在指挥链中有一个他们认为不属于那里的人(不是我,我认为他们很棒/很差劲)。在这里闲逛对他们不利。
SoylentGray 2011年

1
@乍得:虽然我同意你所说的一切,但我不能完全确定OP是否打算(直接)对他的老板bit之以鼻。
haylem 2011年

2
@Chad:我读过,虽然我能理解你的反应,Jitendra不说,所有他所做的就是解决别人的代码。但是,我同意您的论点-以及其他一些答案-认为首先提供功能可能比未完成的产品具有完美质量更为重要。没有人会需要维护一种永远不会看到光的产品,因为它过早地被杀死或未能出生而失败。
Haylem 2011年

Answers:


32

不,他们只会在当下得到项目所有者的尊重。

他们将因以下原因而被浪费多年:

  • 未来的维护者
  • 未来的测试人员
  • 未来的项目所有者,
  • 未来的经理,
  • 以及将来涉及代码库的几乎所有人员。

他们甚至可以从以下方面获得相同的待遇:

  • 当前的测试人员
  • 当前的技术文档作者。

@Ivan:谢谢。长期思考总会赢。
haylem 2011年

@haylem-我同意你的看法,因为人们正在迅速更换工作。因此更好的代码对于新加入者迅速理解代码很有用
Jitendra Vyas

完全正确,但是由于它们的性能,它们将长期远离那些留下痛苦的牡丹。悲伤但真实!
匿名

6

错误的二分法:质量是正交的。

                高品质低品质

获利的真棒草图

无利可图的iffy火灾第一

5
Iffy比Sketchy好还是差?
HLGEM 2011年

1
@HLGEM:有利可图总是比无利可图。
Donal Fellows,

忽略了粗略质量带来的未来成本
Rudolf Olah 2015年

1
仅在开发商的背面分配利润是一种过分的简化。产品管理,部署基础架构如何?他们在盈利能力中也没有作用吗?
DavidS 2015年

5

号最佳实践是最好的,因为,根据定义,他们帮助把工作更正确,在更短的时间,能够更快modifcation的道路工程,所以无论他们是保证降低利润。当然,您的经理可能会开出他们认为最佳但实际上并非最佳的做法,或者他们可能会误判客户将支付的费用和未支付的费用-然后所有赌注都消失了。

编码标准比较棘手。可能会给您的编码员开出太多细节,从而降低效率。但是,凭经验,从保持肛门的微观管理中讲出有用的指南变得非常容易,因此同样适用:实际最佳实践总是值得的,伪最佳实践通常不值得。

除非你有一些代码优化通常是不值得做测量你的瓶颈,确认这样做的优化是必要的和测量你的巧招确实满足了性能与rquirement。否则(主要是)这是不值得做的,因此不是最佳的。


6
最佳做法不利于在较短的时间内正确完成所有项目。它们只是在大多数情况下在大多数项目上都能很好地工作的东西。
Thomas Owens

2
盲目遵守“最佳实践”或任何其他人宣称的最佳处事方式是在开发过程中进行,而对于“货物崇拜”编码则是在编码过程中。您必须能够理解一种实践的含义,这实际上是否是您所处环境中的最佳选择,如果不是,那么应该用什么替代。
Blrfl 2011年

5

我是否同意那些不关心代码优化和实践的开发人员? 没有。

他们会做他们需要做的工作吗?是。

企业就是要赚钱,而赚钱的唯一途径就是发布产品。这通常意味着项目有严格的进度,这意味着做某事的最佳方法可能不是做某事的最快方法。

尽管我不同意这种开发方式,但是如果发布产品,公司可能会认为它是值得尊重的。


在上一份工作中,我非常关心代码优化,但是我的开发人员并不关心,但是他们比我做更多的项目。当我与项目经理交谈时,他说客户希望按时完成项目,而他却从来没有看到代码的编写方式
Jitendra Vyas

1
@Jitendra-如果您花费一整天的时间优化已经编写的内容,并且没有获得任何新功能,我也不会满意。除非进行优化,否则除了在源代码中减少行数和字符数之外,您什么都做不到。
SoylentGray 2011年

3
@Jitendra-我没有说没有。而且以可读的方式编写代码非常好。当您有自己的任务时,四处寻找别人的代码是“固定”的。
SoylentGray 2011年

1
@Chad-这不是要重写我自己的代码或修复其他人的代码,而是要在第一时间以适当的缩进形式编写代码,以实现良好的可读性,为将来的开发人员提供适当的注释,并使用使代码可重复使用的最佳实践而且这需要花费时间,然后编写只有原始开发人员才能理解的混乱代码。好的代码总是需要时间。
Jitendra Vyas

4
@Ivan:我对这种想法有直接的经验。就像这样 该公司启动了一个新建项目。Hotshot Developer X使用大量的ctrl + c和来尽可能快地将内容放在一起ctrl + v。该产品将在很短的时间内启动。该公司对Developer X感到非常满意。出现了错误报告和功能请求。DeveloperX无法跟上进度,被解雇/继续从事下一项工作。未来三年的发展是新的工程师团队不断发展的大门,这些工程师无法取得任何进步,并且X公司将失去曾经拥有的所有市场优势。
格雷格·伯格哈特

4

不,我会发现远离那些欣赏这些弊端的公司的最快途径。


2
+1表示简短,正确并正确。不在乎质量标准的公司要么是愚蠢,无知或骗局。
韦恩·莫利纳

3

是的,不是,这有点令人望而却步,但这是最佳做法,而不是完美的实践。理想情况下,您应该不断地遵循它们,但是总有一种情况是企业希望将其需求放在产品需求之前。

维护人员会讨厌您,但老板会爱您。


3

最佳做法有点像常识,每个人都同意每个人都应该了解它,直到任何两个人开始详细讨论它为止。没有两个人完全同意这个定义,也没有适用于所有情况的逻辑真相。

您是否正在编写太空卫星的制导系统(可能不是)?然后,在这种工作中,地狱不会出现质量差/执行代码永远不能被接受的情况。

您是否正在为一次性市场推广而编写一个一次性网站(您可能也没有这样做,或者您不会问这个问题,但是它比卫星广告更有可能)?然后是地狱,是的,通过任何必要的手段在最后期限之前将那一堆绒毛排除在外,下一任营销总监可能还是会与另一家公司做其他事情。您不是艺术或科学的人-得到报酬。

介于两者之间的其他一切:可以协商,特别是只要开发人员可以得到初始支持。

在您偏爱的任何圣物出现之前,他/她/他们/它以奇迹般的方式定义了开发实践,对于不直接负责生死决定的任何项目,将有很大的辩论空间如此微不足道,可抛弃。

标记生命的最佳实践之外的所有内容通常更像是公司政策,客户要求或个人意见。他们中的许多人是目前许多人都同意的个人观点,但这并不能使它成为所有情况的不变指南。


2

他们为公司赚多少钱值得商bat。如果一定程度上可以重新审视有问题的代码,维护成本将会增加,并且人们会不满意。高昂的长期维护成本要比预先进行适当的维护昂贵。

他们得到多少尊重可能取决于具体情况。但是在某些时候,有人会注意到。


2

不关心这些事情可能会在短期内使公司赚钱,但从长远来看,可能会更多的漏洞修复和维护代码使公司付出更多的钱。

如果竞争公司急于同时将类似产品推向市场,有时可能需要快速工作,但此类行动的未来成本应谨慎考虑。


2

这一切都取决于客户。

喜欢快速又肮脏(通常更便宜)的客户不在乎将来会出现问题。

考虑内阁建设。

有些人会支付并欣赏优质定制橱柜。他们不在乎硬木抽屉和顶级硬件的额外花费。他们不介意构建和安装这些东西会花费额外的一周甚至一个月的时间。

许多人不会。许多人会选择从大型商店购买的廉价刨花板批量生产的产品。他们希望在2天内安装它们。到处都是很小的差距是完全可以接受的。他们不在乎他们会在10年后分崩离析。

因此,如果您的经理称赞能够快速又轻松地完成开发工作的开发人员,则您的客户不希望获得高质量的产品,或者经理在对客户撒谎。

只有时间会给出答案。做经理想要的或找到另一份工作。


1
当然,软件可以附带支持,因此两者都可以选择。也就是说,我们将首先向市场推出V1尽管已知的问题,但有钱大家赚形成,这将允许我们在将来等修复问题
JK。

1

没有永不。IMO代码优化,最佳实践和实际工艺是代码库中重要的事情;没有它,整个东西就会变成淤泥,并用胶带固定在一起。这是不可持续的设计。这就像忽略了一个肿瘤,因为它很小并且您现在很健康。确保您现在身体健康,但几年后它就会成为绝症,因为您已经忽略了很长时间。

我不但做带谁不关心这些事情开发商同意,但我有零尊重为他们的引导。无论我去了多短的时间,让我考虑离开组织的必由之路是由一个团队围绕,在这个团队中,我是唯一关心的人(如果不是整个公司中唯一的人)关于适当的软件工程概念。


1

好的阅读:http : //www.joelonsoftware.com/items/2009/09/23.html

但是恕我直言,一个人的最佳实践是另一个人的噩梦。对于外来者来说,每个不平凡的代码库都是噩梦。

无论您怎么想,都不要着急。

编辑:我不捍卫任何职位,具体取决于我可能倾向于任何一方的任务。


取决于IMO的“最佳实践”。遵循SOLID原则,使用设计模式,使用抽象/接口进行测试(不一定是TDD,而是一般而言是自动化测试)是任何合格的开发人员都应该做的基线。
韦恩·莫利纳

就我所喜欢的测试而言...它们不是基准。
CaffGeek

1

对公司更好?这取决于。

对于资金有限的初创公司来说,把它做好并付诸实践-没什么麻烦的,可以在以后有更多资源时解决。

对于许多用户依赖软件质量的成熟产品,应“适当”完成所有操作。

更适合个人开发者吗?其实无关紧要。只需执行与同事相同的操作,然后让管理层处理后果-这不是您的工作。如果您一直都在修补别人的垃圾,那么您会被认为很慢,当其他人被提升到您之上时,您将仍然是一个人。参加该计划,如果那很糟糕的话,可以出去玩。


“是否杂乱无所谓,可以在以后有更多资源时修复。” 从理论上讲,可以。在实践中,这永远不会发生,因为一旦推出某个东西,您就不得不维护它并添加新的东西,因此您再也没有资源去修复它。
韦恩·莫利纳

我不同意。在我参与过的许多中小型Web项目中肯定发生了这种情况,并且还有许多其他著名的公司实例,它们以主要方式回去并重构其代码库-例如Twitter从Ruby切换到Scala,Facebook以及他们寻求优化PHP语言等。实际上,我可以肯定,我们每天使用的大多数成功的成熟应用程序(网络和桌面应用程序)与其v1祖先代码都没有太多共同点。
2011年

也许吧,但是在公司发展的六年中,我发现只有一家公司能够随着时间的推移重构代码。即使代码无法管理,其他地方也从未有过资源来“修复未损坏的内容”。
韦恩·莫利纳

0

取决于开发人员和项目/情况。

非凡的时代需要采取特殊的措施。

因此,如果我现在需要交付的东西,而某人正在过度设计企业级Java应用程序,该应用程序利用不少于14个最新的流行语框架,而一个简单的python脚本就可以完成工作,就比开发人员偷工减料并认为越野车代码会在正常情况下运行。

成为开发人员的一部分是灵活性。您不应该只是工具的奴隶,而是盲目地遵循实践-在某些情况下,它们总是会让您失望。知道何时打破和改变规则是许多经验之一,而且很有价值。

在您的情况下-如果在速度方面至关重要,那么他提供的价值比您还多,即使在考虑了日常维护成本的增加之后,他也应该得到更好的补偿。另一方面-如果您坚持清理他的烂摊子-您与管理人员之间存在沟通问题。

视情况而定。除了编码风格-没有其他借口。


0

很抱歉,但除了最重要的问题外,我将不同意该问题的大多数答案。

软件的主要价值在于它的灵活性。

我认为您不应无缘无故地重写别人的代码。如果您出于某种原因必须更改模块以实现功能,则无论是好是坏,您现在都是该模块的所有者。更改它,重写其中的一部分,重写所有它。

永远不要在灵活性方面产生低质量。没有什么可以扔掉软件中的任何东西。如果客户说它是临时的,并且在某个日期之后他们将不需要它,并且他们不在乎质量,则说“不好”或以书面形式告知您或您的任何其他程序员都不会更改代码它已部署到生产中,或者您有权提起诉讼。

我在这些答案中看到的最糟糕的假设是,某些干净的代码会以某种方式降低开发速度。对于任何实质性项目(超过6个小时的工作),长期来看(超过一周),干净的代码可以加快开发速度。我一次又一次看到它。

质量差的代码对专业和您的同事不敬。对不起,但事实如此。

因此,就灵活性而言,永远不要劣质!


1
永不说永不。整个应用程序都丢了。从一个系统到另一个系统的数据转换只用一次就浪费了。
JeffO '16

在短期内,经常保持代码的清洁确实会降低开发速度。重要的是,从长远来看,不干净的代码会导致更大的减少。我看到其他一些答案确实提到了这一点。
Ixrec
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.