有没有什么策略可以避免满足?

Adr*_*ore 5 language-agnostic

令人满意的(“满足”和“就足够”的混成词)是一个决策策略,尝试为充足满足的标准,而不是识别的最佳解决方案。如果在结果计算中考虑了决策过程本身的成本,例如获取完整信息的成本,则令人满意的策略通常可能是(接近)最优的。(来源)

软件工程中的大多数决策都很容易做出,无需在这个主题上思考数小时。想到的第一个解决方案通常足够好,因此我们可以快速使用它并继续进行下一个决定。

但是,也有一些罕见的情况,您必须解决更困难和/或关键的问题。如果以次优方式解决这些问题,您可能会花费大量金钱或时间。

在这些情况下,我通常会尝试提出几种完全不同的解决方案/方法来解决问题。然后我选择一个并改进它,直到我对我的解决方案完全满意。

通常这是有效的,但有时我只能想出一个足够但不是很好的解决方案。我知道我的解决方案不是很好,而且问题很严重,需要付出更多努力。然而,我已经找到的解决方案的知识阻碍了我的创造力,所以我找不到第二个(至少不是马上)。我坚持我的平庸想法,除非我可以问其他人,否则我必须实施它才能继续前进。

有没有技术可以克服这个问题?我能想到的两件事是与其他人进行头脑风暴或散步。

在这些情况下你会怎么做?

mar*_*l_g 4

将问题搁置一周通常会遇到两个问题:a)我的老板可能不会接受它,因为企业通常需要尽快而不是稍后找到解决方案,b)我的注意力持续时间金鱼,所以如果我把一个问题搁置了那么长时间,我将不得不花时间来解决这个问题,因为与此同时我的大脑中已经充满了许多其他问题。

这并不完全是坏事,因为有时当我被迫刷新自己的代码和定义问题的业务约束时,我确实找到了更好、更优雅的解决方案,但有时我只是花了半天时间让自己陷入同样的​​困境-结束。

话虽这么说,把问题放在一边的想法是个好主意,但重要的是时间框架。我经常在一天结束后的早上吃早餐时想到一个解决方案,因为意大利面条代码大脑锁定惨败。

尝试向同事阐明问题通常会有所帮助,因为这种努力会暴露你对问题理解的差距。通常,除非他们从一开始就与您实际合作解决问题,否则其他人不会找到更好的解决方案,因为他们无法理解您可能花了几天时间在脑海中规划的所有限制。

为了回答最初的问题,在休息一下并由一些同事运行后,我的首选方法是实施适当的解决方案并让某些东西发挥作用。

一个原因是,如果客户决定这不是他们想要的,因为他们从一开始就不真正知道自己想要什么,那么你就不会花太多时间在无论如何都会被扔掉的东西上。另一个原因是,充分的解决方案可能就是:充分。你可以继续前进。最好的原因是,实施可以让您快速解决难题,从那里您可能会开始看到更好的解决方案。

这就像建筑师建造模型一样。你可以画很多图,甚至花很多时间制作漂亮的渲染图,但快速拿到胶枪并开始将纸板模型拼凑在一起确实更有效。一旦您能够以 3D 形式查看它,您就可以开始看到哪些地方没有正确排列,并且您没有浪费时间在漂亮的渲染上来掩盖缺点。