孙子曰:兵者,国之大事,死生之地,存亡之道,不可不察也。
日生曰:软件者,利润所驱也。时竞争激烈,欲确保得利,则不可不谋划也。
五事
五事者,一曰道,二曰天,三曰地,四曰将,五曰法。道者,令民于上同意,可与之死,可与之生,而不危也;天者,阴阳、寒暑、时制也;地者,远近、险易、广狭、死生也;将者,智、信、仁、勇、严也;法者,曲制、官道、主用也。
我们的软件也是如此。做软件,做好软件,必须了解软件的“道、天、地、将、法”。这些也正是软件工程中所需要关注的方方面面。下面是从软件工程角度理解的五事。欢迎指点。
道者,为双赢也。如此,软件才可做。软件只为骗取钱财的日子,已经过去。客户需要真正能给他们解决问题的软件。真正了解业务,那就了解到道的含意了,如此才能上下同心。讲道,就是要我们充分了解业务,理解业务。在此基础上,上下才可以在共同的平台进行沟通。这也可以解释为领域模型。不管如何,做软件,整清楚业务必不可少。
天者,国之令也。做软件,必须了解相关法律法规。否则,软件做好了,却很可能因为违法了,遭受不同方面的阻力。微软在这方面非常有经验。经常有公司用各种法律条文对他们进行起诉。
地者,阻力也。竞争对手也许是我们软件工程中需要注意的。他们可能引起翻天覆地的变化。另外,就是那些看似一马平川的陆地下的暗流沟渠,要小心他们是否有可能影响项目进度。很可能客户内部有不同的意见,最好导致软件的反复变更。看清楚客户内部的地形很重要。
将者,才也。一个项目,缺少得力的助手难以想象。技术能手、业务专家、沟通行家都是必不可少的。
法者,规矩也。做软件,不可不注意做软件的客观规律。盲目的加人或者夸大工作效率都是非常危险的。只有了解了客观规律,才能够更好地利用这些规律,从而顺利完成软件开发。
兵者,诡道也
夫未战而庙算胜者,得算多也;未战而庙算不胜者,得算少也。多算胜少算。
做软件,做的是明白的业务,应对的却是未知的风险。
正如孙子所说,多算胜于少算。对于项目,必须有一份清晰的里程碑式的计划清单。计划的越是准确,工作越是可以进行地顺利。这些也正说明了软件工程存在的必要性。
另外,成熟的项目经理都会为项目设立非常完整的风险列表。并且,这份计划会随时地进行更新。充分估算到项目中可能遇到的真正风险(不是简单罗列),并且谋划出行之有效的策略。这是计划中最最重要的部分。风险的策略解决为上策,不能解决,避开为中策,不能解决且不能避免则为下策,不能解决且不能预知为下下策。我们至少要预知到风险的发生,否则项目进度无从控制。
软件开发过程正如我们的敌人。孙子曰:兵者,诡道也。我们要充分认识清楚那些隐藏在乐观情绪后面的危机,亦或是发现悲观情绪后面的可能。这些才是真正谋划需要关注的。若无变化,庸人即可成事。正是因为有了变化,才可以充分发挥出杰才的能力!
后话
此为孙子兵法第一篇:始计第一。我以为用软件工程的概念解释非常到位。这只是一个简单尝试,也属于个人爱好。希望能将一些实用的理论,带入到软件开发中来。
同时,欢迎大家继续关注。另外,有任何指教,欢迎提出。
注:
体宽人壮心气高
美女美钞都想要
聊以博客会朋友
只待他朝回头笑