共计 2125 个字符,预计需要花费 6 分钟才能阅读完成。
首先,我并不是说软件开发人员都是输家,我想说的是,大多数软件开发人员都没能博得软件开发,他们都被软件开发战胜了。
开发人员的痛点在于,他们不晓得本人面对的是什么游戏,或者说他们不晓得应该采纳哪种战术。
你必须晓得软件开发是何种游戏,能力在游戏中获胜。
在编写代码的过程中,重点不在于代码是否会出错,而是代码何时会出错,以及如何通过最简略的办法修复谬误。
1、赢家与输家
Charles Ellis 曾撰写过一篇文章《Loser’s Game》,他指出,职业网球是赢家的较量,即选手利用本人的技能被动博得较量。而业余选手会应用不同的策略防止本人失误,而后期待对手呈现失误,从而本人战胜本人。
“在业余网球较量中,80% 的得分是博得的;而在业余网球较量中,80% 的得分是输掉的。换句话说,职业网球是赢家的游戏,即最终后果取决于赢家的流动;而业余网球是输家的游戏,即最终后果取决于输家的流动。这两种游戏的基本特征齐全不同,甚至是相同的。”
—— Charles Ellis
游戏尽管雷同,但你须要依据对手抉择无效的策略:
“业余网球就是我所说的赢家游戏。博得分数更多的一方选手获胜,也就是说并不是看哪个选手失去的分数更高,而是看哪个选手博得的分数更高。Ramo 发现业余网球则齐全不同。业余选手很少战胜本人的对手,然而他们会本人战胜本人。在这样的较量中,得分更高的选手获胜,但他得分更高是因为他的对手输掉的分数更多。”
—— Charles Ellis
2、软件开发游戏
我从事软件开发工作已 20 载无余,曾与许多软件开发人员一起从事过许多我的项目。我认为 80% 的开发人员都是业余玩家,只有 20% 的是业余玩家。
我为什么这么说?
业余软件开发人员不喜爱:
- 规范
- 单元测试
- 设计模式 / SOLID 准则
- 学习和设置开发运维和产品生命周期治理(他们喜爱应用)
- 修复构建
- 代码审查
- 代码剖析 / 解决方案查看
如果你想毁掉一个开发团队,那就不要执行上述步骤,因为团队中的大多数开发人员都不是业余人员。
“防止犯错的办法是激进行事,想方法让较量继续下去,给对手富余的机会呈现失误,从而本人战胜本人,因为业余选手玩的是输家的游戏,而且他深陷其中却不自知。”
—— Charles Ellis
大多数开发人员都会低估编写代码的难度,同时还会高估本人的能力。他们认为编写代码非常容易,而且编写好的代码第一次运行就能够胜利。
3、业余玩家
如果大多数开发人员都是业余玩家,那么咱们就应该将软件开发视作输家的游戏,全力以赴缩小业余玩家容易犯的谬误。
业余开发人员的指标是写代码,其余流动都会升高开发的速度。上述提到的其余步骤就是为了创立简略的代码,更快地发现错误,并留神提高质量。产品生命周期治理 / 开发运维能够疾速地实现部署,而且还不容易出错,从而实现疾速反馈。
疾速编写代码的最佳办法是专一于品质和缩小谬误,而不是更快地编写代码。
我的项目和开发团队的规模越大,为 bug 和谬误所付出的代价就越惨重。大型团队的问题可能会导致很多人的进度延误,而施行上述列表中的流动能够让咱们集中精力解决妨碍。
我曾经验过一些我的项目,直到我的项目前期才发现的一些 bug 导致用户失去信念,并给上线带来了危险。
4、轻重倒置
咱们的指标不是编写无效的代码,而是花工夫防止编写品质低劣的代码和 bug,否则就会轻重倒置。
“对于你我之辈来说,难得的不是一时的聪慧,而是保持不做蠢事。”
—— Charlie Munger
业余开发人员认为,疾速编写代码是最无效的创立产品的办法。如果办法宏大,代码简单,则代码库会越来越简单,而且每增加一行代码开发工作就会更加艰难。这种办法仅适宜只有 1~2 名开发人员的小型我的项目。
5、Bug 的老本
从代码编写实现开始,发现 bug 的工夫越晚,修复所需的工夫就越长。举个例子,如果你发现了生产中的某个 bug,那么首先你必须设法复现 bug,并搞清楚 bug 产生的起因,修复 bug,并通过每个环境的部署和测试,最初能力进入生产。
如果在单元测试中发现雷同的谬误,则能够疾速修复,同时还不会影响到其余开发人员和测试人员。
咱们能够在开发过程中增加一些简略的步骤来找出 bug,在软件开发这个游戏中,bug 会节约大量工夫,并消磨掉客户的信赖。
如果咱们晓得大多数开发团队的成员都是业余玩家,他们很容易犯错并导致本人甚至团队的失败,那么咱们就更加应该器重避免 bug,而不是假设每个人都是业余的开发人员,每个人都能够编写杰出的代码。
博得软件开发这场游戏的要害,不在于第一次就能创立正确的代码,而在于防止失败的各种形式。
“专业人士靠被动赢分获胜,而业余人士靠对方丢分获胜。”
—— Charles Ellis
作者:Ben Hoskin
原文:https://thehosk.medium.com/so…
译者:弯月
出品:CSDN(ID:CSDNnews)
近期热文举荐:
1.1,000+ 道 Java 面试题及答案整顿 (2021 最新版)
2. 终于靠开源我的项目弄到 IntelliJ IDEA 激活码了,真香!
3. 阿里 Mock 工具正式开源,干掉市面上所有 Mock 工具!
4.Spring Cloud 2020.0.0 正式公布,全新颠覆性版本!
5.《Java 开发手册(嵩山版)》最新公布,速速下载!
感觉不错,别忘了顺手点赞 + 转发哦!