孙子兵法:如何应用于软件
孙子写道:
战争对国家至关重要。 因此,它是一个研究主题,绝不能忽略
在我们的现代世界中,软件对您的组织至关重要。 如果您能够一致且可靠地构建软件,那么您将在竞争中获得巨大的优势。 如果开发软件就像发动战争,那么谁是敌人? 敌人是复杂性 。 复杂性来自于必须做出数十种
为您的软件项目正确做出决定,甚至有成功的机会。 对于项目一开始您所知道的所有事情,至少会有十个您不知道的事情。
复杂性因必须在最后期限内做出这些决定而变得更加复杂,尤其是如果该最后期限选择不当的话。 因此,当您考虑启动一个软件项目时,必须了解您正在浏览冰山一角。 您处理不确定性的能力将决定您的成功程度。 与常规战争不同,该敌人不会睡觉,没有明显的弱点,也不会被欺骗。 一旦您与敌人交战,您的成功将取决于正确估计复杂程度并做出出色的决策。
不确定性来源
如果您认识敌人并且了解自己,则无需担心一百场战斗的结果。 如果您认识自己而不是敌人,那么每获得一次胜利,您也会遭受失败。 如果您既不认识敌人也不认识自己,那么您会在每场战斗中屈服。 Stratagem的进攻,p。 18岁
不确定性来自几个主要来源:
- 不熟悉所使用技术的团队资源
- 要求不完整或不一致
- 事实证明技术要求不可行
- 无法理解项目依赖性
- 无法制定正确且易于理解的计划
与对抗常规敌人不同,复杂性会发现您的所有弱点 。 克服复杂性的唯一方法是通过理解需求,拥有训练有素的团队,制定可靠的项目计划并执行得当。
不幸的是,大多数组织开发软件的方式类似于“轻旅” ( 诗歌 )。 在那场战斗中,约有400名骑兵袭击了由50枚火炮支援的20 个步兵营 。 不用说这是一个宰杀。
孙子兵法(
孙子概述的几个原则也适用于软件开发:
- 欺骗
- 领先优势
- 能源
- 使用间谍
- 长处和短处
- 全胜
欺骗
由于敌人是复杂性,我们无法欺骗它。 问题在于我们让自己被复杂性所欺骗。 您会多久看到开发人员说他们可以在一个周末对Red Bull进行任何代码编写? 人们通常不启动软件项目,因为他们想要
失败 ;但是当每10个项目中只有3个成功时,表明人们对构建软件的复杂性感到迷惑。 这个统计数字困扰了我们50年。 在开始软件项目之前,高级管理人员应该真正停下来并考虑是否所有的鸭子都排成一排。 不幸的是,高级管理人员仍然低估了复杂性,并使团队不得不面对几乎不可能的项目。
领先优势
因此,在战争中,胜利的战略家会在赢得胜利之后进行战斗,而注定要打败第一场战斗,然后在战斗中寻求胜利的人。 战术性格,p。 15
复杂性来自上述不确定性的来源。 成功的组织计划消除已知的不确定性,并有计划应对这些不确定性。 在了解不确定性的大小之前进入项目是失败的秘诀。
能源
你们军队的影响可能就像磨碎的鸡蛋砸了石头一样-这是受弱点和强 能量 科学的影响 ,p。 4
团队的精力需要在适当的时间使用适当的力量来抵抗不确定性。 当这种情况发生时,不确定性将降到最低,成功的机会将增加。 必须创建一个可能影响您的软件项目的所有风险表 。 如果您积极地将引发风险的可能性降到最低,则会减少不确定性并增加成功的机会。 有节奏地应对复杂性时,软件项目就会成功。 解决高强度问题需要紧随其后的是降低强度稳定性。 团队必须以可持续的步伐前进,否则可能会筋疲力尽。 每天工作10个小时以上的软件团队不会成功。 它们变得像钝剑一样,无能为力。
使用间谍
无法从鬼魂中获得预知。 它不能从先前事件的比较或从天上的推论中得出,而必须从了解敌人情况的人那里获得。 使用间谍,5 –6
敌人是复杂的,是无形的 ,即看不见,无味且不可接触。 您的间谍是您的业务分析师,架构师和项目经理。 您的业务分析师将与业务部门一起定义复杂性的范围 。 索要您想要的任何东西,但要致力于打造您所要求的一切! 请记住,所有起作用的大型复杂系统都是由起作用的小型简单系统构建的,因此,其目标是最初构建最小的可用产品。 要求太多并提供不足的资源和/或时间将导致项目失败。 架构师为业务分析人员提供制衡,以确保该项目可行 。 架构师将向项目经理提供关键的依赖项信息,以确保创建并遵循正确的执行计划。 这些间谍中的每一个都看到了其他人看不见的复杂性的不同方面 。 除非将三种类型的报告有效地结合在一起,否则您可能会不知道要尝试构建的软件范围。 如果您在没有适当情报的情况下参战,您将回到“轻旅”的场景。
长处和短处
军事战术就像水一样。 因为自然界中的水从高处流失,并向下加速。 因此,在战争中,方法是避免强者,而对弱者进行打击。 弱点和强,p。 29—30
水显示出有序的柔韧性 。 之所以下令,是因为它试图下坡。 但是,它很灵活,会绕过岩石和其他障碍物。 一个软件项目需要不断进步,而不会遇到障碍。 诸如RUP或敏捷软件开发之类的方法可以确保您表现出有序的灵活性。
全胜
赢得软件项目的全部胜利意味着按时和按预算交付软件,而又不损害团队(包括管理层)的健康和声誉。 失败的项目将其影响扩展到团队的每个成员以及每个人的简历。
当您进行实际战斗时,如果胜利不远了,那么男人的武器将变钝并且他们的热情会减弱。 《发动战争》,第2页。 3
当组织付出的努力超出了他们的承受能力时,它们将在团队资源上施加巨大压力,要求他们延长工作时间以使截止日期通常不切实际 。 在高压锅中,您可能会期望关键人员出现缺陷并使您处于更糟糕的位置。 在死亡行军中,您发现自己多少次了?
结论
战争和软件开发都是严肃的话题,涉及重大的斗争。 如果软件开发是一场对抗无知 , 不确定性和复杂性的战争,那么《孙子兵法》中概述的许多策略和策略都为我们提供了如何执行成功项目的指导。
翻译自: https://www.javacodegeeks.com/2013/04/the-art-of-war-how-it-applies-to-software.html
孙子兵法:如何应用于软件相关推荐
- 熊猫是我们的!《功夫熊猫》为什么不是我们的?
熊猫是我们的!<功夫熊猫>为什么不是我们的? ■不争的事实:美国梦工厂打造的暑期大片<功夫熊猫>征服中国观众 ■必须的反思:中国文化还有多少传统元素被自己忽略被别人挖走 自梦工 ...
- 孙子兵孙子兵法全文_孙子兵法:如何应用于软件
孙子兵孙子兵法全文 孙子写道: 战争对国家至关重要. 因此,这是一个研究的主题,绝不能忽略 在我们的现代世界中,软件对您的组织至关重要. 如果您能够一致且可靠地构建软件,那么您将在竞争中获得巨大的优势 ...
- [译]从《孙子兵法》到软件开发
2019独角兽企业重金招聘Python工程师标准>>> [译]从<孙子兵法>到软件开发 /*** 谨献给可爱的小黑** 原文出处:https://www.toptal.c ...
- 瑞星布局:安全软件的时尚模式
被业界引为经典的长尾理论有了新的发展,理论的提出者安德森又出了一本畅销书<免费--商业的未来>.安德森提出,免费前提下的商业模式正在成为互联网经济的旗帜,"免费是数字化时代的商业 ...
- 软件开发实践的24条军规
转自: http://zz563143188.iteye.com/blog/1844388 本文的这些最佳实践.开发准则都是伟大的程序员的经验总结.Tim Oxley从互联网中搜集了这些最佳实践,并放 ...
- 【C++课程设计】期末大作业 - 基于Qt开发的中国象棋软件
1 题目 基于Qt的中国象棋软件开发 本博客只是简略的描述论文的大致结构.框架,以及软件开发的大致过程.有兴趣的参考原文档资料. 2总体设计与主要功能 2.1概述 中国象棋是起源于中国的一种棋,属于二 ...
- DesignPattern团队《设计模式在软件开发的应用》讨论会议记录
Design&Pattern团队<设计模式在软件开发的应用>讨论会议记录 时间:2004年12月18日20:00-21:00 地点:博客园聊天室 主持:Dudu.Wayfarer ...
- 从战争到外包软件开发:如何赢得最后胜利
本文关键点: \n \n 外包软件开发和军事行动之间有相似之处,有些军事行动策略对软件产品交付也有一定助益\n 让销售和售前团队参与前期侦察,并确保将在客户环境中获得的深层理解传递给开发团队,使他们了 ...
- 计算机专业及软件开发推荐书籍
计算机专业推荐书籍: 吾不能有名师指导,但求能精选出最好的书籍,从最好的书中学到东西,可有些许补偿.当然,最好能主动寻找良师益友和专业人士的指导.经典的书都有一个特点: 详尽得当,通俗又不失理论化,信 ...
最新文章
- 插入网络CSS矢量图标、网络SVG矢量图标
- php与nginx通讯方式,[Linux]PHP-FPM与NGINX的两种通讯方式
- 用反向传播算法解释大脑学习过程?Hinton 等人新研究登上 Nature 子刊
- gitlab 添加本地项目
- silverlight 跨域文件位置
- java循环链表类_3、循环链表(java实现)
- Js获取或计算时间的相关操作
- Python地理数据处理相关模块的安装方法
- 传智播客黑马 Python学习笔记之python初识
- DELL披露MacBook Pro杀手
- 前端记住密码功能实现
- 彻底去除2345好压的广告方法
- 计算机软件安装包后缀名,软件安装包程序是什么
- 网口压线顺序_水晶头网线排序方法 网线安装必看【图文教程】
- iOS从零开始学习socket编程——高并发多线程服务器
- 《愤怒的小鸟大电影》分析报告
- K8s完整多节点部署(二)
- RuntimeError: non-empty 3D or 4D input tensor expected but got ndim: 4
- LeetCode 883. 三维形体投影面积(数学)
- 周末阅读之《刻意练习》,很多“天才”不过是找对了方法
热门文章
- RubyConf China 2021 Hotwire 讲师征集
- 4、VI/VIM编辑器
- 东方甄选难扛大旗,新东方在线何时走出“双减”重创?
- 启动项目出现 Cannot find module ‘resolve-cwd‘ 报错
- 华为FusionCompute 6.5主备部署教程
- 类中一定要有主方法吗?
- MyBatis拦截器介绍
- 【报告分享】 2020新青年居住消费趋势报告-贝壳研究院(附下载)
- 2021年全球溶剂石脑油收入大约9212.2百万美元,预计2028年达到12140百万美元
- 场景理解--场景分类