3

这个问题已经在一个类似的帖子中解决了关于 UI 的更具体的级别。

我想在更一般的设计层面上解决这个问题。

我每天都在设计设计以确保高质量。但是我时不时地与中层管理人员和没有经验的开发人员讨论“以正确的方式”做事的好处。

有时我只是说“相信我,我已经看到了这会导致什么,我们正在以另一种方式做”,有时我会尝试制定一个场景,其中一组特定的选择会引入问题等。大多数时候我觉得我没有接触到我正在与之交谈的人。我还不如说“相信我”。

我觉得我作为一名高级软件人员的能力之一应该是解释和激励我们作为一家公司做出的技术选择。我可以在经济和用户体验层面做到这一点。

但我似乎无法在技术和伪技术层面解释为什么某些设计选择“感觉错误”以及为什么其他设计选择感觉更正确和有益,即使起初它可能更难实现或看起来不必要的复杂。

幸运的是,我偶尔会展示出好的结果,否则我可能会开始怀疑好与坏设计的整个概念。

我真的会觉得阅读这里的其他人对此的看法很有趣。

提前致谢!

4

9 回答 9

10

您是否尝试过技术债务论点?引用链接(来自 Martin Fowler 网站):

......以快速而肮脏的方式做事给我们带来了技术债务,这类似于金融债务。就像金融债务一样,技术债务会产生利息支付,这是由于快速而肮脏的设计选择,我们必须在未来的开发中付出额外努力的形式......

于 2009-02-10T14:42:09.563 回答
8

这是我愤世嫉俗的回答:

有两种人——关心以正确方式做事的人和不关心做事的人。你不需要说服那些同意你的人,所以你需要担心的人是那些不关心事情如何完成的人。您很可能会发现那些不关心“以正确方式”做事的人非常关心其他事情,例如前期时间惩罚、与不同实施的混淆等。您能做的最好的事情就是确定其他人真正关心和解决的问题是什么。

例如,如果人们担心你会以正确的方式做事预先引入过多的开发时间,那么向他们展示如何以正确的方式做事从长远来看可以节省他们的时间。

不过要提醒一句 - 总是问自己一个非常重要的问题,所有纯粹主义者(包括我自己)在遇到反对“正确方式”时必须始终问:

我这样做是为了自己的“正确方式”吗?

如果答案是“是”,那么您可能需要退缩。

于 2009-02-10T14:42:12.637 回答
2

两点:

  1. 如果你没有向别人表达你的理由,很可能是你自己理解的不够。因此,试图让它与他人交流的尝试可能会经常揭示你自己可能是错误的假设。因此,无论多么困难(我知道这有多困难),我都建议您积极努力为他人具体化您的想法。把事情写下来,做图表——随便什么。即使您仍然无法成功沟通,您也确实可能成功地看到您的判断错误。
  2. 与您交谈的人可能不太熟悉软件工程。在这种情况下,您可能不想推动高级想法,而只是一次让他们了解首要原则。创建各种类型的演示文稿(再次使用图表和所有内容)解释您的思考所依赖的关键想法并举行会议。您可能需要为这个初始会话努力工作。但是,如果他们得到了它,那么在您的余生中,您可能会过得更轻松。
于 2009-02-10T14:39:31.660 回答
1

也许您不应该与中层管理人员争论技术决策:那将是在错误的抽象级别进行讨论。例如,不要回答“重构需要 X 天,然后是 Y 天来实现新功能”,而是说“需要 (X+Y) 天”。

至于和初级开发人员争论,你似乎在问花言巧语或“如何争论”;这是一个很大的话题,例如,许多技术之一是“诉诸权威”,例如说“我在<这本受人尊敬的作者的好书>中读到了这种技术”......或者,即使你无法证明某事,也可以争论降低风险的基础...

重要的是,倾听:找出他们为什么要争论其他事情,并解决他们的论点。例如,也许他们想以“错误”的方式做这件事,因为他们想要快速完成,因为他们承受着来自其他人的一些时间压力:如果是这样,请解决这个问题。

于 2009-02-10T14:56:33.383 回答
1

我试着从成本的角度来考虑它。在某种程度上,它又回到了“快、好、便宜:随便选两个”。如果你一直选择又快又便宜,那你就吃亏了。

我更喜欢为任何给定的功能块设计和构建三到四年。如果我有这种自由度,并且能够彻底解释额外努力的必要性和好处,那么一切都会变得更好。

让我举一个具体的例子。我被分配了一项功能,可以添加到一段代码中,该代码获取一组图像并从图像生成 PDF。现有的代码简洁明了,是为了满足客户的需求而编写的——但它并不是为了增长而构建的。我可以并且确实使用现有代码添加该功能并将其签入,但它很丑陋,并且每个后续功能都会变得更丑陋。然后我又花了两周时间编写了一个全功能的生成 PDF 模型,该模型也被设计为消费者。完成后,我花了几个小时在新模型中重新实现整个 PDF 生成器。我可以非常简洁地解释说,尽管并非绝对必要,但构建模型创建了一种支持技术,并且可以降低向现有代码添加更多功能的成本。我们现在有四种主要产品或功能集,它们完全基于这项技术,并且正在寻找更多。灌篮高手。

于 2009-02-10T15:23:55.110 回答
1

我的老板不是一个技术含量很高的人,但他也很难接受“相信我”的答案。我花了一段时间才弄清楚,为了将问题与他联系起来,重要的是要根据时间成本、工时、花费的金钱等来量化问题。

与这个人的理解有关通常会让他们更容易接受你的答案。

于 2009-02-10T15:36:17.640 回答
1

通常,像这样的讨论会演变成宗教或政治争论——每个人都有自己的观点,但没有人知道答案。您可以做的任何事情都可以为您的想法添加实质内容,这将帮助您推动您的想法。

阅读一些现有的材料——关于面孔日常事物的设计等——看看你是否不能确定一些事实来支持你的感觉,即有些事情只是感觉不对。

于 2009-02-10T14:41:28.677 回答
1

一般来说,我发现如果我必须使用“相信我。我知道我在说什么”的论点,我需要回过头来重新考虑我试图解释和实施的内容。有时我会感觉到某事是好是坏,但这是我需要对其进行审查的指标,因为我没有具体的理由说明我应该或不应该做某事。

您应该注意的另一件事是因为他们的头衔而解雇“初级”人员。你可能有更多的经验,但这并不意味着他们不聪明并且他们所说的可能是正确的。实际上,多年的经验几乎没有意义,因为它只是某人从事相同类型工作的年数。这是一个很好的指标,表明某人在他们的职业生涯中处于什么位置,但这并不是一个自动的法令,他们实际上能够一直做出正确的决定。

于 2009-02-10T14:46:18.337 回答
0

我也不是一个好的推销员,这似乎是你的问题。当我想说服人们采取另一条路线时,我发现这对我非常有效,那就是提出引导性问题。尝试以这样一种方式提出问题,即唯一合乎逻辑的答案就是您正在寻找的答案。这有一个额外的好处,即人们相信他们自己想出了解决方案,这意味着他们更有可能相信解决方案。这需要练习,但是当它不是你的个性类型时,它比成为推销员更容易学习。这也意味着您确实需要了解自己的知识,才能知道如何提出问题以得出正确的解决方案。

这种方法还有一个附带好处,即如果他们即使在面对您的主要问题时也能得出不同的解决方案,那么这应该会让您重新审视自己的解决方案。

于 2009-02-10T15:02:38.140 回答