1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > 孙子兵孙子兵法全文_孙子兵法:如何应用于软件

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

时间:2021-03-08 12:23:42

相关推荐

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

孙子兵孙子兵法全文

孙子写道:

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

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

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

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

不确定性来源

如果您认识敌人并了解自己,则无需担心一百场战斗的结果。如果您认识自己而不是敌人,那么每获得一次胜利,您也会遭受失败。如果您既不认识敌人也不认识自己,那么您会在每场战斗中屈服。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在《 加速发展》博客上发表的文章。

翻译自: //04/the-art-of-war-how-it-applies-to-software.html

孙子兵孙子兵法全文

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。