孙子兵孙子兵法全文_孙子兵法:如何应用于软件

孙子兵孙子兵法全文

孙子写道:

战争对国家至关重要。 因此,这是一个研究的主题,绝不能忽略

在我们的现代世界中,软件对您的组织至关重要。 如果您能够一致且可靠地构建软件,那么您将在竞争中获得巨大的优势。 如果开发软件就像发动战争,那么谁是敌人? 敌人是复杂性 。 复杂性来自于必须做出数十种

为您的软件项目正确做出决定,甚至有成功的机会。 对于项目一开始就知道的所有事情,至少会有十个您不知道的事情。

复杂性因必须在最后期限内做出这些决定而变得更加复杂,尤其是如果该最后期限选择不当的话。 因此,当您考虑启动一个软件项目时,必须了解您正在浏览冰山一角。 您处理不确定性的能力将决定您的成功程度。 与常规战争不同,该敌人不会睡觉,没有明显的弱点,也不会被欺骗。 一旦您与敌人交战,您的成功将取决于正确估计复杂程度并做出出色的决策。

不确定性来源

如果您认识敌人并了解自己,则无需担心一百场战斗的结果。 如果您认识自己而不是敌人,那么每获得一次胜利,您也会遭受失败。 如果您既不认识敌人也不认识自己,那么您会在每场战斗中屈服。 Stratagem的进攻,p。 18

不确定性来自几个主要来源:

  • 不熟悉所使用技术的团队资源
  • 需求不完整或不一致
  • 事实证明技术要求不可行
  • 无法理解项目依赖性
  • 无法制定正确且易于理解的计划

与对抗常规敌人不同,复杂性会发现您的所有弱点 。 克服复杂性的唯一方法是通过理解需求,拥有训练有素的团队,建立可靠的项目计划并执行得当。
不幸的是,大多数组织开发软件的方式类似于“轻旅”poem )。 在那场战斗中,约有400名骑兵袭击了由50枚火炮支援的20 步兵 。 不用说这是一个宰杀。

孙子兵法(

孙子概述的几个原则也适用于软件开发:

  • 欺骗
  • 领先优势
  • 能源
  • 使用间谍
  • 长处和短处
  • 全胜

欺骗

由于敌人是复杂性,我们无法欺骗它。 问题在于我们让自己被复杂性所欺骗。 您会多久看到开发人员说他们可以在一个周末对Red Bull进行任何代码编写? 人们通常不启动软件项目,因为他们想要
失败 ;但是当十分之三的项目成功时,表明人们对构建软件的复杂性感到迷惑。 这个统计数字困扰了我们50年。 在开始软件项目之前,高级管理人员应该真正停下来并考虑是否所有的鸭子都排成一排。 不幸的是,高级管理人员仍然低估了复杂性,并使团队不得不面对几乎不可能的项目。

领先优势

因此,在战争中,胜利的战略家会在赢得胜利之后进行战斗,而注定要打败第一场战斗,然后在战斗中寻求胜利的人。 战术性格,p。 15

复杂性来自上述不确定性的来源。 成功的组织计划消除已知的不确定性,并有计划应对这些不确定性。 在了解不确定性的大小之前进入项目是失败的秘诀。

能源

你们军队的影响可能就像磨碎的鸡蛋砸了石头一样-这是受弱点和强 能量 科学的影响 ,p。 4

团队的精力需要在适当的时间使用适当的力量来抵抗不确定性。 当这种情况发生时,不确定性将降到最低,成功的机会也会增加。 必须创建一个可能影响您的软件项目的所有风险 。 如果您将风险触发的可能性降到最低,则会减少不确定性并增加成功的机会。 有节奏地应对复杂性时,软件项目就会成功。 解决高强度问题之后,需要降低强度稳定性。 团队必须以可持续的步伐前进,否则可能会筋疲力尽。 每天工作10个小时以上的软件团队不会成功。 它们变得像钝剑一样,无能为力。

使用间谍

无法从鬼魂中获得预知。 它不能从以前事件的比较或从天上的推论中得出,而必须从了解敌人情况的人那里获得。 使用间谍,5 –6


敌人是复杂的,是无形的 ,即看不见,无味且不可触摸。 您的间谍是您的业务分析师,架构师和项目经理。 您的业​​务分析师将与企业合作,以定义复杂性的范围 。 索要您想要的任何东西,但要致力于打造您所要求的一切! 请记住,所有起作用的大型复杂系统都是由起作用的小型简单系统构建的,因此,其目标是最初构建最小的可用产品。 要求过多并提供不足的资源和/或时间将导致项目失败。 架构师为业务分析师提供制衡功能,以确保该项目可行 。 架构师将向项目经理提供关键的依赖项信息,以确保创建并遵循正确的执行计划。 这些间谍中的每一个都看到了其他人看不见的复杂性的不同方面 。 除非将三种类型的报告有效地组合在一起,否则您可能会不知道要构建的软件范围。 如果您在没有适当情报的情况下参战,您将回到轻旅冲锋状态

长处和短处

军事战术就像水一样。 因为在自然过程中水从高处流失而向下加速。 因此,在战争中,方法是避免强者,而对弱者进行打击。 弱点和强,p。 29—30

水显示出有序的柔韧性 。 之所以下令,是因为它试图下坡。 但是,它很灵活,会绕过岩石和其他障碍物。 一个软件项目需要不断进步,而不会遇到障碍。 RUP敏捷软件开发之类的方法可以确保您表现出有序的灵活性。

全胜

赢得软件项目中的全部胜利意味着按时和按预算交付软件,而不会破坏团队(包括管理层)的健康和声誉。 失败的项目将其影响扩展到团队的每个成员以及每个人的简历。

当您进行实际战斗时,如果胜利不远了,那么男人的武器将变钝并且他们的热情会减弱。 激烈的战争,p。 3

当组织付出的代价超过他们的承受能力时,它们将在团队资源上施加巨大压力,要求他们延长工作时间以使截止日期往往不切实际 。 在高压锅中,您可能会期望关键人员出现缺陷并将您置于更糟糕的位置。 在死亡行军中,您发现自己多少次了?

结论

战争和软件开发都是严肃的话题,涉及重大的斗争。 如果软件开发是一场对抗无知不确定性复杂性的战争,那么《孙子兵法》中概述的许多策略和策略都为我们提供了如何执行成功项目的指导。

参考: 《孙子兵法》: JCG合作伙伴 Dalip Mahal在《 加速发展》博客上发表的文章。

翻译自: https://www.javacodegeeks.com/2013/04/the-art-of-war-how-it-applies-to-software.html

孙子兵孙子兵法全文

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值