我希望在希望跳过官方界面并直接访问底层实施细节时,希望解决问题的其他人遇到困难。

他们认为,这样做可以让他们更快地解决问题。我认为这样做会导致我们的架构变得更加紧密,并且随着新需求的出现而难以改变。

我指出了当前设计的所有工作,设计理念和灵活性的价值,尝试维护和更改脆弱代码的成本,封装和数据隐藏的价值以及分层架构和是健壮的,因此规范中的微小变化会导致代码的微小变化。他们说“但这会更容易。”

你如何处理这些人?

有帮助吗?

解决方案

说服他们走捷径是一种虚假经济。

说明最初的编码工作量不到初始开发工作量的30%,而且总体项目工作量(包括维护工作量)不到10%(根据我的经验)。

如果他们仍然不相信,并且您有权这样做,那么告诉他们按照您的方式行事。如果你没有权限,那就什么都不做了。最终,你的主管,如果她有价值,就会认识到这一点,然后你就会处于权威地位。

其他提示

让他们处理修复其中的错误的一些遗留代码。这几乎就是我所认识的大多数人都学到了这些非常有价值的课程......艰难的方式。

"更容易"什么时候?现在,当一切都没有变化的时候?或者从现在起三个月后客户的要求发生了变化,并且他们的解决方案已经不再是解决方案了吗?

我对于结构和规则的结构和规则并不多,但很高兴知道A)驾驶船的人B)规则是什么以及C)为什么我们选择这样做

在我的商店里,我们不喜欢重写代码,因为我们搞砸了硬编码的东西,或者为问题创造了一些脆弱的“解决方案”。一旦人们意识到,当事情被一堆需求变化颠倒过来时,它会减少后来的挫折感,那么遵循更灵活的方法往往更难。我们编码“长途”不是为了“今天需要它”,通常是因为设计是出于某种原因而设计是跟随出于同样的原因

我花了一周时间(连续7天)重写一个模块,因为我正在“快速完成”模式。七天的艰苦时间,10-12小时的日子,正确的方式,在游戏的后期,当我可以看到超级碗。那个臭。我在那里吸取了教训。可能你的“朋友”也需要亲自体验那种开眼界。

祝你好运!

我其实不喜欢对此持不同意见,但......

引用Van Halen(引用陈词滥调),“所有事情都有时间和地点。”虽然我当然不提倡写得很糟糕,但有时你确实需要完成它,并在健壮/持久和黑客/记录之间找到快乐的媒介。 (记录的部分在两个方面特别重要:一,你清楚地表明,无论你做什么,只是为了完成任务并采取某些捷径;而且,两个,一个粗略的想法关于解决问题的更正确方法可能是什么。

作为程序员,我们经常努力编写完美的代码(好吧,我们中的一些人会这样做),有时候会忽视大局 - 有很多理由说明为什么它可能会在某种程度上发挥作用快速而宽松的代码,同时最大限度地减少将会产生的影响。

请不要将此作为理由 - 当然,80/20规则适用于此处。大多数时候你绝对想要粉碎这些方面的任何捷径;但有时候......

展示他们!让他们在“但这会更容易”中做一个小模块。你做正确的风格。然后要求他们对要求进行2到5次更改(必须是他们进行更改)并对实施更改进行定时竞赛。可能需要一两天但他们会得到它。如果不这样做,您将对每个新项目或任务进行相同的讨论。

你可以尝试对它们进行类比......

国际象棋的规则非常简单。你可以教他们一个孩子:“这样的马匹动作”,“城堡像这样移动”等等。

如果这就是你所知道的,你可以玩一些国际象棋并且可能玩得很开心,但是对游戏有更深入了解的人每次都会和你擦拭。你会受到如此糟糕的打击它甚至不再有趣,因为你不知道他们是怎么做的。

同样的原则适用于编程。了解语言的语法和一些简单的数据结构足以让你获得一个可行的程序,但是你不会对一个必须经受多个发布周期的大规模应用程序运气不错。

国际象棋已设置开场,攻击策略等。我们有设计模式。

最好的办法是将他们推广到管理层,这样他们就不会受到太大的伤害。

问题是大多数人甚至不了解软件设计以外的最基本概念和拖放式开发。对于每个研究和教育自己所有最佳新概念和技术的开发人员来说,有十个人回家并且不看电脑。你必须教他们。

五年前我设计了一个庞大而复杂的系统。接下来的五年里,我把自己注入了影响“我的”工作的每一个项目。系统让野蛮人不要玷污我的建筑。只要我施加持续不断的压力,我就可以保持建筑的清洁,但我正在打一场失败的战斗。原因如下:

1)大多数人都会根据他们今天是否完成工作来判断。没有人受到过谴责,因为他们三年前切入了一个角落(或两个角落),准时将一个项目赶出门外。另一方面,很多人因为没有及时将项目赶出门而受到谴责。

2)您可能希望保持系统整洁,因为您对代码,应用程序或用户等有一种归属感。许多人不会有所有权感,因此非常乐意破解一些东西,这样他们就可以完成它。你可以带马到水,但你不能让他关心。

3)如果你说服每个人正确维护代码,那么新人就会加入进来并需要教会如何做正确的事情。因此,即使你成功了,你也会觉得自己失败了,因为你总是在和新对手作战。

4)你可能确实错了。对微软来说,花费两倍的程序员时间使MS-Paint强大且可维护是否具有经济意义?有时一个丑陋的黑客攻击系统是足够好的。大多数优秀的程序员都很难理解这一点,但这通常是因为他们是优秀的程序员。

5)我发誓有些人因为他们可以更快地完成任务而对一起黑客行为采取不正当的乐趣,或者他们将是唯一理解它的人,或者他们有幼稚的需要打破规则。你不能和这些人说理,你花在与他们争论的时间越长,项目截止日期就越近,这将迫使你无论如何都会破解一些东西。

6)你很有可能比他们更好地理解系统。对你来说看起来像丑陋的黑客可能看起来像是“轻轻地踩踏”。对不熟悉系统的人。或者,使代码健壮的额外努力将保护程序员免受他以前从未遇到过的问题,因此无法理解。在出现问题之前,您不会学习检查返回代码,因为没有检查返回代码。此时它不再是“额外的工作”。并开始成为“必需的工作”。

如果你有一个小而紧凑的开发团队,那就有可能。但组织越大,成功的可能性就越小。如果你设法让一个250人的IT商店重视快速做事,那么你的说服力就是传奇。

告诉他们阅读(不是他们永远都会)封装理论: http://www.edmundkirwan.com/

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top