您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > 商业目标决定软件开发之道
商业目标决定软件开发之道——将商业智慧引入软件工程与项目管理林锐博士@chinaspis.com上海漫索计算机科技有限公司Page2目录1.软件危机新理解2.企业-产品-人3.企业的根本目标4.企业的根本目标决定产品开发之道和用人之道5.软件产品开发之道:开发正确的产品6.软件产品开发之道:正确地开发产品7.如何组建软件开发团队8.如何管理软件开发团队参考书:《软件工程与项目管理解析》,林锐著,电子工业出版社,2003Page31.软件危机新理解1.1现代软件危机的特征IT产业已经逐步发展成为中国的支柱产业之一,然而充满活力、优秀的软件企业太少了(苛刻地讲,十个手指头就能瓣完),绝大多数软件企业长期面临“产品质量低下、进度延误、成本高昂”的共性问题,就像患了恶劣的慢性病,无法根除。太多原本雄心勃勃的软件企业并没有战死在沙场上,而是被恶病折磨得奄奄一息直至颓然去世。IT产业的利润和前景实在是太诱人了,没有获得免疫力的新企业又如雨后春笋般地诞生,前仆后继,延续着相似的故事。三十年多前(1969年),NATO会议把这种病称为“软件危机”。三十多年过去了,这种病仍然存在,之所以不再危言耸听,是因为人们已经司空见惯、习以为常了。并且适应了极度浪费社会财富的“快速诞生、快速死亡”的企业生存方式。软件危机一直就在我们身边。1.2为什么长期克服不了“软件危机”?难道是国内大学计算机教育太差劲了?难道是软件人才不够?难道是书籍资料不够导致人们不懂软件开发、不懂管理吗?难道是政府对IT产业扶持不够?难道社会对IT产业投资不够?尽管中国还不是发达国家,但平心而论,当今软件企业的生存环境真是太好了,找不出象样的借口来推卸失败的责任。内因决定外因,是大部分软件企业的内功太差,以至成为扶不起的阿斗。中国教育界和工业界长期的失误:大学教育以填鸭的方式给学生灌输技能,却忽视了传授思想和方法;学生们埋头学习,不知学以致用,离开学校后对企业、产品、人生一片茫然;企业以混乱甚至错误的方式开发产品,重复着前人的失败而不是成功。这就是产生“软件危机”的真正根源。Page42.企业-产品-人2.1知识框架在软件行业,“企业-产品-人”这三个主体构成了复杂的系统,一般性的知识框架如图1所示。如果人们不明其理而行事,必然会对系统造成伤害。图1“企业-产品-人”系统的知识框架Page52.企业-产品-人2.2方法论与模式教育界和工业界应当研究和推广让“企业-产品-人”走向成功的“方法论和模式”,这是解决“软件危机”最有效的办法。意义:让人们少走弯路,少经历没有价值的挫折,从而在有限的生命年华里做出尽可能多的贡献方法论是用于指导人们解决问题的系统性的思想方法,而不是一堆孤立的方法、技术的集合。方法论主要研究“是什么”、“为什么”、“怎么办”这类基本问题。当人们掌握方法论之后,就能够在实践过程中产生出解决特定问题的方法。模式描述了在我们周围不断重复发生的问题,以及该问题的解决方案的核心,这样你就能一次又一次地复用该解决方案而不必从头开始研究。在技术开发领域,人们总结了不少很有价值的模式,例如设计模式、编程规范、文档模板等等,被业界人士广泛采用,大大地提高了工作效率。人们期待更有价值的模式,那就是让“企业-产品-人”走向成功的模式。下文将探讨“企业的根本目标、产品开发之道、用人之道”这三个论题,尝试提出系统性的观点、论断,为研究软件工程和项目管理的方法论和模式打下基础。Page63.企业的根本目标3.1论断学过法律的人都知道:宪法是国家的根本大法,是立国之本,任何普通法律法规都不得与宪法相抵触。企业的根本目标是“合法地赚取尽可能多的利润,使企业利益最大化”。这个根本目标就如同企业的“宪法”,是企业生存和发展之本。企业所有的特定目标和行动都是围绕上述根本目标开展的,任何背离根本目标的行动都将对企业造成伤害,应当杜绝。如果企业主不明白这个道理,企业必定会很快倒闭。如果广大员工不明白这个道理,企业必将岌岌可危。上述文字简单朴实,没有任何玄妙之处,似乎任何人都看得懂,但是我敢断言:除了极少数天生的商人之外,绝大多数人在遭受第一次商业挫折之前不会深刻领悟这一点。3.2强烈反差我们从小到大接受自闭的政治教育太久了,被灌输的幼稚口号太多了,以至于长大成人后仍然极度缺乏商业智慧。企业的根本目标难道不是为了振兴民族产业、为国家多做贡献吗?开发人员的追求难道不是最先进的技术吗?(解释为什么)企业的本性就是惟利是图,而不是救国救民,无论大企业还是小商贩都一样。不论是“姓资还是姓社”,企业改革的主要目标就是让企业回到赚钱这个正道上来。违背企业根本目标的做法注定是要失败的。(解释国企的包袱)理工科大学生、硕士生、博士生们(国家的栋梁之才)几乎毫无商业智慧,连小商贩都不如。Page73.企业的根本目标3.3案例分析:巨人公司(史玉柱)建造巨人大厦的故事–公司最初决定建造一栋18层的科技大楼,供员工们办公用。各级政府领导时常光临巨人公司,少不了题词、表扬、勉励和指示。一些政府领导建议巨人公司为珠海建一座标志性大厦。结果每一批领导视察之后,巨人公司的虚荣心就膨胀一次,不断提高大楼的高度。为了给本市、本省乃至本国争光,充满浪漫主义色彩的巨人公司决定建造70来层的摩天大楼。…最终企业现金断流,风华正茂的巨人公司一夜之间崩溃–经济学研究人员的精辟评论:如果一个明星企业经常受到政府各级领导的视察和表扬,那么企业就会干蠢事,它离死期就不远了。–警示:企业的根本目标决定了企业必须专心致志地赚钱,企业人士要理智地规避伪善的社会事务,防止企业被非目标事务拖累。林锐读博期间第一次创业失败的故事–获取的荣誉太多,思想中毒太深。发自内心地“以振兴民族软件产业为己任”。把微软公司当对手:构思了一套三维图形系统,该系统下至开发工具、上至应用软件无所不包,准备击败微软公司的二维操作系统。成天忙于开发那个振兴民族产业的软件,结果不到一年就把公司的30万元资金用个精光,但是没有卖出一份软件,所以公司啥都没振就倒闭了。让我们回顾电影《甲方乙方》里冯小刚的年终工作报告,作为企业根本目标的喜剧解释:同志们,我们推出的“美梦一日游”深受广大群众的喜欢(墙上挂满了群众们送的旌旗)。大家工作都很勤奋,客户越来越多,但是我们挣的钱却越来越少了。(公司)再办下去就成了慈善机构,所以大家只好散伙。Page84.企业根本目标决定产品开发之道和用人之道4.1产品开发之道的两个内涵开发正确的产品:即开发能为企业赚取利润的产品;正确地开发产品:即努力使产品为企业赚取尽可能多的利润。4.2企业用人之道的两个内涵用正确的人:即利用能为企业赚取利润的人;正确地用人:即努力使人为企业赚取尽可能多的利润。4.3决策与执行的观念“开发正确的产品”和“用正确的人”属于企业的决策过程。“正确地决策”是企业各级领导的第一职责。“正确地开发产品”和“正确地用人”属于企业的执行过程。“正确地执行”是企业各个团队的第一职责。决策和执行之间的关系是战略与战术之间的关系,两者相辅相成,缺一不可。企业的成功是建立在“正确地决策”和“正确地执行”的基础之上的。任何错误的决策、错误的执行都可能导致产品失败,进而导致企业倒闭,所以切勿在企业里鼓吹“失败是成功之母”。在决策过程和执行过程中,人们总是会遇到各种各样的困难,任何优化和折衷的措施都是围绕“企业利益最大化”这个根本目标开展的。Page95.软件产品开发之道:开发正确的产品5.1开发正确的产品所谓“开发正确的产品”是指“开发能够赚取利润的产品”。对于企业而言,评判产品“对错”的标准就是“能否赚钱”。政府每年给大学科研机构投资很多钱,允许人们去研发不赚钱的东西,例如很多自然科学基金项目的考核目标是学术水平而不是经济效益。但是企业的职能和大学科研机构的完全不同。企业只能开发“能够赚取利润”的产品,赔钱的产品不能开发。疑问:一些国际著名的大企业拥有自己的研究机构,例如贝尔实验室、IBM研究院、微软研究院等等。这些机构的学术水平极高,企业花巨资让那些天才们研究一些看似不赚钱的东西,岂非违背企业的根本目标?解答:科学技术是第一生产力。为了提高企业的科技竞争力,国际著名的大企业不得不花巨资从事超前的研究。那些超前的研究成果通常没有短期的经济效益,但是可能在不久的将来被大规模地应用,从而产生巨额利润。当然不少研究成果可能永远都不会产生经济效益,这就是科研投资的风险。世界范围内的科技竞争非常激烈,有些关键性的技术往往决定了企业的命运。万一竞争对手在科技上领先一步,马上就会占领市场的主要份额,自己就面临被淘汰的危险。例如当前几乎所有的大型电信企业都在研究3G(第三代移动通信),简直可以用豪赌来形容。所以为了让自己在未来能够活下去并且活得更好,大企业不得不花巨资从事超前的研究,这是战略投资。对于普通的中小企业而言,它们只能干些力所能及的事情。如果采用成熟的技术就能够做出能赚钱的产品,那就没有必要自己研究新技术,尽可能地降低风险。判断一个设想中的产品是否能给企业带来利润,这绝对不是一件轻松的事情,千万不能依赖于少数领导人拍脑袋的决策方式。“开发正确的产品”这种决策过程叫“立项管理”。Page106.软件产品开发之道:正确地开发产品6.1概念基本要求:项目团队在预定的时间和成本之内,开发完成合格的产品;努力方向:项目团队尽最大努力把产品做得好、做得快并且少花钱。“质量、效率、成本”通常是衡量产品开发过程优劣的三个关键指标。一般说来,质量、效率、成本之间存在对抗关系。俗话说“一分钱一分货”,人们买东西的时候大多认可“质量越好价格就越高”。再如俗话“慢工出细活”,言下之意是提高质量将使生产率降低。根据常识可知,要想同时提高产品质量、效率并且降低开发成本是非常不容易的。6.2关于软件质量软件的质量属性很多,如正确性、精确性,健壮性、可靠性、容错性、性能、易用性、安全性、可扩展性、可复用性、兼容性、可移植性、可测试性、可维护性、灵活性等。对于一个特定的软件而言,我们首先要判断什么是它的质量要素,才能给出提高质量的具体措施,而不是一股脑地想把所有的质量属性都做好,否则不仅做不好,还可能得不偿失。简而言之,能成为卖点的质量属性才是质量要素,才值得开发人员关注。提高软件质量的最终目的为了获取尽可能多的利润,而不是出于对完美质量的追求;如果某些质量属性并不能产生显著的经济效益,我们可以忽略它们,把精力用在对经济效益贡献最大的质量要素上。缺乏商业经验的开发人员往往因为单纯而傻得可爱,却因幼稚而傻得可笑。(以设计可扩展性和兼容性为例)Page116.软件产品开发之道:正确地开发产品6.3关于效率企业总是希望产品上市的时间越短越好,这样可以抢占市场。对于合同性的项目而言,开发方应当在合同指定的期限内交付软件,否则违约的话将损害双方的利益。所以对于企业而言,时间就是金钱。在正常情况下,开发团队的工作效率是决定产品实际开发时间的主要因素。所以提高工作效率是企业获取更多利润的有效途径。在旧社会,资本家的工厂里都有监工,监工的职责就是让工人们不停地干活,在给定的时间内生产出更多的东西。提高工作效率的前提条件是所有工作成果的质量必须合格。否则,工作效率越高,软件中的缺陷就越多,那么用于测试和维护的代价也越高,得不偿失。所以提高质量、提高效率都不是喊口号,要根据企业的目标和当前实力,量力而行。在不对质量和成本产生负面影响的前提下提高工作效率,这才是真本事,常见措施有:–提高项目成员的工作技能。使他们在开发产品时不仅做得好而且做得快。–制定合适的软件过程。软件过程定义了做事的主要步骤,如果过程混乱,做事颠三倒四的话,势必伤害生产率。–提高复用程度。复用就是指“利用现成的东西”,软件中可以复用的对象有设计模式、代码库、文档模板等等。软件人员应当懂得复用别人留下的成熟可靠的成果(可能要花钱去买也可能是免费的),并且还要给自己留下可以在将来复用的
本文标题:商业目标决定软件开发之道
链接地址:https://www.777doc.com/doc-3484620 .html