在编写代码的创造过程中,如果代码是错误的,那就是代码是错误的,并以最简单的方式修复它。
赢家和失败者
在Charles Ellis的论文失败者的游戏中,他指出,专业网球是一个赢家的比赛,球员赢得积分。使用不同的策略来获胜,让球活着,让你的对手击败自己。
“在专家网球中,大约80%的积分是赢得的;在业余网球上,大约80%的积分是失误。换句话说,专业网球是一个获胜者的比赛 - 最终结果由获胜者的活动决定 - 业余网球是一个失败者的游戏 - 最终结果由失败者的活动决定。这两场比赛在他们的基本特征中,并不是一样的。他们是对立面的。“ 查尔斯埃利斯
“专家网球是我称之为胜利者的比赛。胜利是由于赢得更多的点,而不是对手赢得 - 不是,因为我们将在一瞬间看到,只是获得比对手更高的得分,但通过获胜点来获得更高的分数。发现了业余网球,几乎完全不同。业余选手很少击败他的对手,但他一直击败自己。在这个网球比赛中的维克多得分比对手更高,但他得到了更高的分数,因为他的对手正在失去更多积分。“查尔斯埃利斯
软件开发的游戏
我已经在软件开发工作了20年,在许多软件开发人员的许多项目上工作。我估计80%的软件开发人员是业余和20%的专业人士。
业余软件开发人员不喜欢
- 标准
- 单元测试
- 设计模式/实体原理
- 学习和设置Devops和ALM(他们喜欢使用它)
- 修复构建
- 编码评审
- 代码分析/解决方案检查
如果您试图破坏大多数开发团队,您将不会执行上述步骤,因为团队中的大多数开发人员不是专业人士。
“避免错误的方法是保守和保持运转,让另一个人有足够的空间来打击他的击败方式,因为他是一个业余爱好者(可能没有读Ramo的书)玩一个失败的游戏,不知道自己。“查尔斯埃利斯
大多数开发人员低估了写作代码并高估了他们创建工作软件的能力。他们接近编写代码假设写入代码很容易,代码将第一次工作。
业余爱好者
如果大多数开发人员是业余爱好者,我们应该将软件开发人员作为失败者的比赛,专注于减少业余爱好者倾向于制造的错误的努力。
业余开发人员的目标是编写代码,其他活动减慢了这个过程。上面的另一个步骤是创建简单的代码,在更快的情况下之前先查找错误并专注于质量。ALM / Devops允许快速错误的免费部署,这使得快速反馈。
快速编写代码的最佳方法是专注于质量和减少错误,而不是通过编写代码更快。
我已经在某些项目上工作,后一段发现的错误丧失了用户的信心。
倒置
如果我们反转软件开发,则目标不是编写工作的代码,它在避免编写差的质量代码和错误时花费时间。
“这是卓越的长期优势,像我们这样的人们通过试图始终如一而不是愚蠢,而不是试图非常聪明。” - Charlie Munger.
业余开发人员认为快速编写代码是创建生产准备代码的最快方法。大方法和复杂的代码创建了一个在复杂性中增长的代码库,并添加了每一行代码更加困难。这是一种方法,仅适用于一个或两个开发人员的小项目。
错误的成本
此外,您可以找到一个错误的错误,修复的时间越长。例如。如果您在生产中找到一个错误,请了解它,重新创建它,然后开发人员必须在每个环境中修复代码并在每个环境中进行部署和测试,直至生产。
如果您发现具有单元测试的相同错误,您将更快地修复并降低对其他开发人员和测试人员的影响。
我们可以将简单的步骤添加到开发过程中以捕获错误,并在一个错误的游戏中,在从中花费大量时间并从客户中排出信息,这是最有效的方法。
当我们知道大多数发展团队都是倾向于击败自己和开发团队的业余爱好者,它使得专业的开发团队更加重视停止错误,而不是假设每个人都是专业开发人员创造了伟大的代码。
开发中的成功不是第一次正确创建代码,它是关于避免许多失败的方式。
或者引用查尔斯埃利斯
“专业人士赢得积分,而业余爱好者会失去他们。”