这是一个虚构的个人故事。我改变了人民的名字和所使用的技术。
我是一个新的工程经理,他的团队在萨斯公司开始了一个新的小但雄心勃勃的项目。该公司有几百名开发商,该项目获得批准。存在设计文件和开发计划,创建了一个工作原型,几个有才能的人正在执行该计划。从我的角度来看,所有这些都是“达成协议”。
我不确定达到对齐是否是一个普遍的术语,即我以前不熟悉的,或者是特定于公司的。但对于这个项目来说,它的工作方式如下:该项目被批准,但是在组织中有可能对我来说有些人含糊不清楚,可以“提出反对意见”。
提出异议是一个过程,你告诉我别人,我的老板或老板老板,你对项目的成功造成了担忧。一种简单的报告担忧的方法可能是一个非常好的主意。如果Sre Manager听到我们正在使用BongoDB并在过去处理Bongodb数据丢失,那么没有更好的时间就是在项目开始时发言。由于工程首脑不想花时间调解关于数据库偏好的讨论,或者无论最新的疑虑是什么,我的一部分是为了确保没有提出异议。
防止提出反对意见“到达对齐”。我找到可能有疑虑或建议的人,从他们那里获得反馈,并与团队中的开发人员合作,以根据此基于该计划调整计划。它最终有很多感觉就像安迪和凯文必须与办公室公园中每家公司的负责人会面,以达到停车位的决定。
亚当:你有机会阅读设计文件。你的想法是什么?
优质人物:这里没有任何内容的单位测试覆盖范围,并看看您的其他服务,他们低于80%的水平,我们设定为H2目标。您是否可以为计划添加单位测试策略并设定特定的覆盖目标?
亚当:你有机会阅读设计文件。你的想法是什么?
数据人:我们目前正在将重要项目中的所有数据从Springy Search迁移到Beetledb,它是一个多年的项目。所有新项目都应遵循这一点,因此不需要重复努力。
亚当:我们不打算使用Springy Search,只是一个关系数据库。所以我想我们应该是好的。
数据人:Beetledb是关系数据库等同物,所以我建议使用它,以便您可以扩展。
亚当:你有机会阅读设计文件。你的想法是什么?
微服务人员:我建议将读取侧与写侧分开。将它们放在单独的服务中,以便可以独立缩放。当我在摇摆时,这是我们的第一次秘密:服务更精细的服务,他们更容易扩大。
我想你应该已经明白了。如果我们适应所有反馈,我们将避免最近的陷阱。而且,该项目的范围会大幅增长,项目可能永远不会完成。这就像第二系统效果,但及时提出。
谢天谢地,并非所有我收到的建议都很糟糕。一个人,特别是关于解决问题的非常有问题,并在我们的计划中确定了一些潜在的盲点。他们还提供了一个伟大的提示,用于处理与项目的成功似乎不相关的建议:创建扩展产品路线图,并至少将未来投入到未来的项目“,只要他们似乎没有相关,你可以继续推动他们的未来。“勉强这个计划让每个人都开心 - 每个人的反馈都在路线图上,现在它只是一个优先事项的问题。
随着这个官僚的柔道伎俩,该项目下了地面。但经验与我一起。是什么使得良好的建议有价值和错误的建议问题?是专家建议的一般原则吗?
“所有糟糕的建议都是相似的,但所有好的建议都是独一无二的问题。” - Leo Tolstoy错误引用
所有不良建议的问题是,与我们试图解决的问题无关。单位测试人员将始终倡导更多单元测试。分布式数据库人将始终希望进入他们喜欢的数据库。
从山国王的烹饪建议中,她味道的东西,然后说,“加肉豆蔻”。肉豆蔻什么时候不适合?并非所有建议都需要偶然?
当我听到术语思想领导者时,我想到的令人难以置信的建议 - 有人有一个似乎符合每个问题的单一解决方案。无论你面临什么问题,答案都是测试驱动的开发或流架构或真实 - 真正敏捷。
我被这样的建议感到沮丧,但是错了吗?单元测试,流媒体架构,敏捷是所有好事。我不在测试驱动的风格中编写代码,但是当它是热门的事情™时,我确实尝试了一下,我从过程中学到了很多东西。所有的思想领导者都在努力将行业推向前进。尽管如此,有一些证据表明,一大思想的建议比更细致的复杂的建议更有价值。
考虑建议的一种方法是预测。可以将TDD倡导可以被视为预测,如果您在编写代码之前没有写测试,您的项目将更良好地设计,更难维护。流过程 - 所有事情类似地预测,如果您将问题接近作为流的一个问题,那么您将获得更好的结果,而不是如果您没有。显然,并非所有的建议都与特定和明确的预测相关联,许多思想领导者会反对仅仅因为他们总是在谈论一件事,这是每种情况中最关键的事情。但我认为这是公平的说,如果您的提出的解决方案始终是“使用演员系统到模型并发”或“需要更强大的忠诚原则”的变化,那么您相信这些解决方案将强烈增加所需的项目结果。
事实证明,宾夕法尼亚大学的菲利普E.Tetlock曾一直在研究其大部分职业生涯的判断和决策,有些东西有关这些类型的预测。 Tetlock是专家专家:他的良好判断项目能够在预测地质政治事件中击败CIA分析师30%。情报人员可以访问分类信息。
Tetlock最早的工作是政治专家的研究。他在1984年至2004年间的284名专家招揽了政治咨询和预测,并通过了足够的时间来确定预测的准确性,他进入了结果。政治妇女与科技思想领导不同 - 我的咨询仪式都没有明确预测项目结果 - 但我认为他的发现有很多教导我们。
他发现专家可以分为两大类,其中他称之为刺猬。刺猬有一个像自由市场资本主义(或北欧模型资本主义或需求侧经济学)一样的重要想法,它们用作镜头来看待许多问题。他们向每一种情况应用这个大想法,这导致了不诚实和直截了当的建议。您总是需要更多自由,肉豆蔻和单位测试。刺猬是“自信的预兆”。
当所有预测被增加和得分时,刺猬丢失了他的第二类:狐狸。狐狸与刺猬相反。他们有复杂的建议,甚至是他们自己的预测持怀疑态度。 Tetlock还发现狐狸不太可能着名,因为偶然的建议难以在声音咬合中解释。
关于2003年伊拉克战争的预测的刺猬存在于政治频谱的两侧。他们有基于过度拱形政治哲学的理论,但结果的最佳预测因子是对该地区深入了解的狐狸,而不是大理论。
Tetlock的谈话就是缩写“忽视自信预测员”,我认为是他发现的优秀摘要。
软件开发充满了自信的预报。我们是一个漂亮的新领域,但每个人似乎都肯定会让他们拥有最好的解决方案。我想听听更多的人说话,“在这个具体的上下文中,测试 - 覆盖似乎是一个重要的公制,”如果你能负担得起gc,那么“stoplang很棒,但如果你不能,那么你应该看熨斗。“一个伟大的工具不是一个通用工具,这是一个适合特定问题的工具。
索赔的普通解决方案不得不存在任何软件工程问题,而且它们更加自信地是一个完全广泛的解决方案,你应该越多。更具体和偶然的建议 - 越多的人说'依赖'或'你的问题在读取沉重的上下文中效果很好,在以下约束中越有可能在正确的方向上领导你。至少这就是我发现的。
在地球上,我们一直在与许多人交谈他们如何构建软件并做很多写作。在与某人与某人或写下建议时,我试图牢记Tetlock的调查结果。我真的认为重复的构建很重要,但如果是我对每个问题的解决方案,那么我觉得我可能陷入了同样的陷阱。所以这篇文章是我对自己的提醒:不要成为刺猬的思想领袖。