建筑决策:好斗的逆向思维与三法则
三的法则
三的法则
好斗的反对者
三的法则
由 Mux 主办的 DEV 全球展示挑战赛:展示你的项目!
图片来源:Pixabay 上的 geralt。
以下几条简单的规则在我多年的软件架构师生涯中对我帮助很大。
三的法则
第一条规则是,当你必须做出任何决定时,必须至少考虑三种可能的替代方案。
为了找到这第三种选择,我们需要从不寻常的、新颖的角度看待问题,或者重新考虑那些因为我们认为它们显然是错误的而被舍弃的选项。
这本质上是一种强制头脑风暴的方法,但它使用了一个明确的规则,并且不称之为头脑风暴,根据我的经验,这在某种程度上是有帮助的。
三的法则
三人规则之二是,决策过程中必须至少有三个人参与。
这三个人不太可能拥有相同的背景和偏见,因此备选方案将从更多样化的角度进行审视。
好斗的反对者
如果房间里有三个人,但每个人都倾向于同一个选项,那么三个选项就毫无意义。至少要有一个人不同意其他人的观点,并且有充分的理由选择不同的选项。
如果没有这样的人,就不会有关于哪个方案最合适的真正辩论,因为我们都会倾向于选择自己偏好的方案,确保它看起来最好。而当我们不得不捍卫自己的立场时,我们是否有充分的理由做出这个选择就会变得显而易见。
不幸的是,很多时候并没有这样的人,这意味着你必须愿意捍卫另一种选择,即使你认为它不是最好的选择。
这意味着你必须确保你是最后一个表达意见的人,这样当其他小组都选择一个选项后,你才能选择另一个选项。
但这同时也意味着,你必须深入了解首选方案的弱点和不足,以及其他方案的优势或潜在优势。这是一个极好的练习,可以让你诚实地审视自己的选择,并确保团队理解各种方案的利弊权衡。
做一个好斗的反对者并非易事,因为很多时候你需要捍卫一些看起来很愚蠢甚至明显错误的观点,这意味着你必须对自己在公司和会议中的地位感到满意。这个角色不适合初级架构师,或者那些自尊心极强、无法接受错误的人。
如果你决定扮演这个角色,切记不要说“我是在唱反调”,否则别人不会认真对待你的立场。如果你觉得这样说更自在,可以在决定做出之后再说。
三的法则
既然我们谈到了三的法则,我就不得不提一下设计层面的三法则:只有当相同的代码或逻辑有三个副本时,才算重复。
当你第三次编写相同的逻辑时,就可以评估是否值得将该代码移至公共库或类中。
在获得三个样本之前,你不能确定通用代码是否真的足够通用。
令人惊讶的是,很多时候,新的第三种选择最终都被采纳了,要么是因为我们找到了更好的替代方案,要么是因为我们克服了自身的偏见。
扮演好斗的反对者或魔鬼代言人有时很有趣,有时很烦人,有时令人沮丧,但最终,对各种选择进行良好的辩论意味着团队最终会对所做的决定更有信心,并且更清楚地意识到可能存在的陷阱。
文章来源:https://dev.to/danlebrero/architecture-decisions-the-belligerent-contrarian-and-the-rule-of- Three-2nj0