80年代之前为传统的项目管理阶段,80年代之后为现代项目管理阶段。
60年代,项目管理的应用范围也还只局限少数领域。最早项目管理成功的例子是,美国的阿波罗登月。也正因为这样,人才开始真正的认识到了项目管理的作用。并逐渐形成了两大项目管理的研究体系,即:以美国为首的体系--美国项目管理协会(PMI)和以欧洲为首的体系--国际项目管理协会(IPMA),,在过去的30多年中,他们都做了卓有成效的工作,为推动国际项目管理现代化发挥了积极的作用。
但直到80年代,项目管理主要还限于建筑、国防、航天等少数行业。我国和世界其他各国历史上都有许多成功的项目管理范例。项目管理的实践可以追溯到古代的一些主要基础设施如埃及金字塔、运河、大桥、欧洲的古教堂、道路、城堡等的建设之中。对于项目管理的出现,有说服力的其他一些特别事件有:
90年代,随着信息时代的来临和高新技术的高速发展,项目管理的也由造业经济下的产物变为了可以适应多变的信息时代的新型项目管理体系。
今日,项目管理已经成为一门学科,项目管理的理论来自于管理项目的工作实践。组织的决策者开始认识到项目管理知识、工具和技术可以为他们提供帮助,以减少项目的盲目性。所以,就让我们赶快了解一下现在的项目管理。
2.职业发展
进入20世纪70年代,各类项目日益复杂、建设规模日趋庞大,项目外部环境变化频繁,项目管理的应用也从传统的军事、航天逐渐拓广到建筑、石化、电力、水利等各个行业,项目管理成为政府和大企业日常管理的重要工具。同时,随着信息技术的飞速发展,现代项目管理的知识体系和职业逐渐成型。
◆项目管理是二次大战以后发展起来的综合性管理科学分支。
◆1965年第一个专业性国际项目管理组织IPMA(InternationalProjectManagementAssociation)在瑞士洛桑成立。
◆1969年,美国成立项目管理学会PMI(ProjectManagementInstitute)。
◆1976年,PMI在蒙特利尔会议开始制定项目管理的标准,形成项目管理职业雏形。
◆1984年美国项目管理协会推出项目管理知识体系PMBOK(ProjectManagementBodyofKnowledge)和基于PMBOK的项目管理专业证书PMP(projectmanagementprofessionalcertification)两项创新。
项目管理因此作为一门学科和专业化管理职业在全球得到迅速的推广和普及。
3.项目管理的应用
实际上任何创新和改革都是项目活动。由于这些任务具有一次性和独特性的共同特征,人们日益认识到采用常规的管理是难以应付的,必须组成专门的项目班子,采用项目管理方法。因此,在企事业单位和政府管理机构中也同样出现了对项目管理的强烈要求。
1)国外市场
世界银行把每一笔贷款作为一个项目来管理;在美国,DEO(能源部)、DOT(交通部)等政府部门,在项目建设时不但自己使用项目管理软件,并规定参与方也得用项目管理软件对项目进行管理;摩托罗拉是世界著名的通信设备和服务供应商,在20世纪90年代就启动了一个旨在改善其项目管理能力的计划;总部设在瑞士的国际ABB工程公司,在90多个国家运营,要求公司的大部分工作实行良好的项目管理;英国、德国、加拿大、法国等国家的政府机构,其投资的项目都要求使用项目管理软件进行管理。项创新。
2)国内市场
随着我国经济日益融入全球经济体系,国际竞争日趋激烈。我国涉外项目的比例也将越来越高,国内外形势的发展要求项目管理采用国际通用方式,这就使得我们对项目管理的需求更为迫切。
我国在第一个五年计划时期,就投资建设了156个重点建设项目,到2002年预计在各种项目上的投资将以万亿计,其中大型项目投资将达到2000个,几乎涵盖了经济、文化、科教、国防等所有重要领域,诸如银行贷款项目,能源、交通、水利等基础设施项目,房地产项目,农业发展项目、工业企业技改项目、环保项目、扶贫项目、科研、教育项目、体制改革项目,以及体育、文化活动项目等。
◆2002年政府拨3000亿元专款用于各类政策性项目◆省、市地方政府捐助至少1000亿元的专款◆每年都有2000个新的1亿元以上的大项目◆我国每年从世界银行获得约30亿美元的贷款◆亚洲银行贷款、国际经济援助、出口信贷等,利用外资数额每年都在几百亿美元◆此外还有许多项目要通过国际招标、采购、咨询等方式来运作
现代化、国际化的项目建设必须用科学的方法进行管理,现在我国已经开始实行政府采购制度、招投标制度、项目监理制度、政府审批制度等等都是国家加大监管力度、杜绝暗箱操作、确保项目建设质量的具体措施。现在,传统大型企业(导入案例中的汽车制造企业)、高新技术企业(如IT企业)、政府机关、社会团体都开始把项目管理模式作为解决问题一个重要的工具和方法,项目管理的人才和应用热潮已经扑面而至。
大学:人生的关键
自修之道:从举一反三到无师自通
上中学时,老师会一次又一次重复每一课里的关键内容。但进了大学以后,老师只会充当引路人的角色,学生必须自主地学习、探索和实践。走上工作岗位后,自学能力就显得更为重要了。微软公司曾做过一个统计:在每一名微软员工所掌握的知识内容里,只有大约10%是员工在过去的学习和工作中积累得到的,其他知识都是在加入微软后重新学习的。这一数据充分表明,一个缺乏自学能力的人是难以在微软这样的现代企业中立足的。
事实上,很多问题都有不同的思路或观察角度。在学习知识或解决问题时,不要总是死守一种思维模式,不要让自己成为课本或经验的奴隶。只有在学习中敢于创新,善于从全新的角度出发思考问题,学生潜在的思考能力、创造能力和学习能力才能被真正激发出来。
自学时,不要因为达到了学校的要求就沾沾自喜,也不要认为自己在大学里功课好就足够了。在二十一世纪的今天,人才已经变成了一个国际化的概念。当你对自己的成绩感到满意时,我建议你开始自学一些国际一流大学的课程。例如,美国麻省理工学院(MIT)的开放式课程已经在网上无偿发布出来,大家不妨去看看MIT的网上课程,做做MIT的网上试题。当你可以自如地掌握MIT课程时,你就可以更加自信地面对国际化的挑战了。
总之,善于举一反三,学会无师自通,这是大学四年中你可以送给自己的最好的礼物。
基础知识:数学、英语、计算机、互联网
如果说大学是一个学习和进步的平台,那么,这个平台的地基就是大学里的基础课程。在大学期间,同学们一定要学好基础知识(数学、英语、计算机和互联网的使用,以及本专业要求的基础课程,如商学院的财务、经济等课程)。在科技发展日新月异的今天,应用领域里很多看似高深的技术在几年后就会被新的技术或工具取代。只有对基础知识的学习才可以受用终身。另一方面,如果没有打下好的基础,大学生们也很难真正理解高深的应用技术。最后,在许多的中国大学里,教授对基础课程也比对最新技术有更丰富的教学经验。
数学是理工科学生必备的基础。很多学生在高中时认为数学是最难学的,到了大学里,一旦发现本专业对数学的要求不高,就会彻底放松对数学知识的学习,而且他们看不出数学知识有什么现实的应用或就业前景。但大家不要忘记,绝大多数理工科专业的知识体系都建立在数学的基石之上。例如,要想学好计算机工程专业,那至少要把离散数学(包括集合论、图论、数理逻辑等)、线性代数、概率统计和数学分析学好;要想进一步攻读计算机科学专业的硕士或博士学位,可能还需要更高的数学素养。同时,数学也是人类几千年积累的智慧结晶,学习数学知识可以培养和训练人的思维能力。通过对几何的学习,我们可以学会用演绎、推理来求证和思考的方法;通过学习概率统计,我们可以知道该如何避免钻进思维的死胡同,该如何让自己面前的机会最大化。所以,大家一定要用心把数学学好,不能敷衍了事。学习数学也不能仅仅局限于选修多门数学课程,而是要知道自己为什么学习数学,要从学习数学的过程中掌握认知和思考的方法。
二十一世纪里最重要的沟通工具就是英语。有些同学在大学里只为了考过四级、六级而学习英语,有的同学仅仅把英语当作一种求职必备的技能来学习,甚至还有人认为学习和使用英语等于崇洋媚外。其实,学习英语的根本目的是为了掌握一种重要的学习和沟通工具。在未来的几十年里,世界上最全面的新闻内容,最先进的思想和最高深的技术,以及大多数知识分子间的相互交流都将用英语进行。因此,英语学习是至关重要的,除非你想做一个与国际脱节的人。在软件行业里,不但编程语言是以英语为基础设计出来的,最重要的教材、论文、参考资料、用户手册等资源也大多是用英语写就的。学英语绝不等于崇洋媚外。中国正在走向世界,中国需要学习西方的先进思想和先进科学技术,学好英语才是真正的爱国。
信息时代已经到来,大学生在信息科学与信息技术方面的素养也已成为他们进入社会的必备基础之一。虽然不是每个大学生都需要懂得计算机原理和编程知识,但所有大学生都应能熟练地使用计算机、互联网、办公软件和搜索引擎,都应能熟练地在网上浏览信息和查找专业知识。在二十一世纪里,使用计算机和网络就像使用纸和笔一样是人人必备的基本功。不学好计算机,你就无法快捷全面地获得自己需要的知识或信息。
最后,每个特定的专业也有它自己的基础课程。以计算机专业为例,许多大学生只热衷于学习最新的语言、技术、平台、标准和工具,因为很多公司在招聘时都会要求这些方面的基础或经验。这些新技术虽然应该学习,但计算机基础课程的学习更为重要,因为语言和平台的发展日新月异,但只要学好基础课程(如数据结构、算法、编译原理、计算机原理、数据库原理等)就可以万变不离其宗。有位同学生动地把这些基础课程比拟为计算机专业的内功,而把新的语言、技术、平台、标准和工具比拟为外功。那些只懂得追求时髦的学生最终只知道些招式的皮毛,而没有内功的积累,他们是不可能成为真正的高手的。
虽然我一向鼓励大家追寻自己的兴趣,但在这里仍需强调,生活中有些事情即便不感兴趣也是必须要做的。例如,打好基础,学好数学、英语和计算机的使用就是这一类必须做的事情。如果你对数学、英语和计算机有兴趣,那你是幸运儿,可以享受学习的乐趣;但就算你没有兴趣,你也必须把这些基础打好。打基础是苦功夫,不愿吃苦是不能修得正果的。
培养兴趣:开拓视野,立定志向
有些同学问我,如何像我一样能找到自己的兴趣呢?我觉得,首先要客观地评估和寻找自己的兴趣所在:不要把社会、家人或朋友认可和看重的事当作自己的爱好;不要以为有趣的事就是自己的兴趣所在,而是要亲身体验它并用自己的头脑做出判断;不要以为有兴趣的事情就可以成为自己的职业,例如,喜欢玩网络游戏并不代表你会喜欢或有能力开发网络游戏;不要以为有兴趣就意味着自己有这方面的天赋,不过,你可以尽量寻找天赋和兴趣的最佳结合点,例如,如果你对数学有天赋但又喜欢计算机专业,那么你完全可以做计算机理论方面的研究工作。
积极主动:果断负责,创造机遇
积极主动的第二步是对自己的一切负责,勇敢面对人生。不要把不确定的或困难的事情一味搁置起来。比如说,有些同学认为英语重要,但学校不考试就不学英语;或者,有些同学觉得自己需要参加社团磨练人际关系,但是因为害羞就不积极报名。但是,我们必须认识到,不去解决也是一种解决,不做决定也是一个决定,这样的解决和决定将使你面前的机会丧失殆尽。对于这种消极、胆怯的作风,你终有一天会付出代价的。
积极主动的第三步是要做好充分的准备:事事用心,事事尽力,不要等机遇上门;要把握住机遇,创造机遇。中国科技大学校长朱清时院士在大三时被分配到青海做铸造工人。但他不像其他同学那样放弃学习,整天打扑克、喝酒。他依然终日钻研数理化和英语。六年后,中国科学院要在青海做一个重要的项目,这时朱校长就脱颖而出,开始了他辉煌的事业。很多人可能说他运气好,被分配到缺乏人才的青海,才有这机会。但是,如果他没有努力学习,也无法抓住这个机遇。所以,做好充分的准备,当机遇来临时,你才能抓住它。
为人处事:培养友情,参与群体
很多大学生入校时都是第一次离开父母,离开自己生长的环境。进入校园开始集体生活后,如何与同学、朋友以及社团的同事相处就成为了大学生学习内容的一部分。大学是大家最后一次可以在相对宽松的环境中学习、培养、训练如何与人相处的机会。在未来,人们在社会里、在工作中与人相处的能力会变得越来越重要,甚至超过了工作本身。所以,大学生要好好把握机会,培养自己的交流意识和团队精神。
第二,培养真正的友情。如果能做到第一点,很多大学时的朋友就会成为你一辈子的知己。在一起求学和寻求自身发展的道路上,这样的友谊弥足珍贵。交朋友时,不要只去找与你性情相近或只会附和你的人做朋友。好朋友有很多种:乐观的朋友、智慧的朋友、脚踏实地的朋友、幽默风趣的朋友、激励你上进的朋友、提升你能力的朋友、帮你了解自己的朋友、对你说实话的朋友等等。此外,大学时谈恋爱也可以教你如何照顾别人,增进同理心和自控力,但恋爱这件事要一切随缘,不必为了谈恋爱而谈恋爱。
第四,从周围的人身上学习。在班级里、社团中,多观察周围的同学,特别是那些你觉得交往能力和沟通能力特别强的同学,看他们是如何与人相处的。比如,看他们如何处理交往中的冲突、如何说服他人和影响他人、如何发挥自己的合作和协调能力、如何表达对他人的尊重和真诚、如何表示赞许或反对,如何在不冒犯他人的情况下充分展示个性等等。通过观察和模仿,你渐渐地会发现,自己的人际交往能力会有意想不到的改进。在学校里,每一个朋友都可以成为你的良师,他们的热心、幽默、机智、博学、正直、沟通、礼貌等品德都可以成为你的学习对象。当然,你也应当慷慨地帮助每一个朋友,试着做他们的良师和模范。
第五,提高自身修养和人格魅力。如果觉得没有特长、没有爱好可能会成为自己人际交往能力提高的一个障碍,那么,你可以有意识地去选择和培养一些兴趣爱好。共同的兴趣和爱好也是你与朋友建立深厚感情的途径之一。很多在事业上有所建树的人都不是只会闭门苦读的书呆子,他们大多都有自己的兴趣和爱好。我在微软亚洲研究院的同事中就有绘画、桥牌和体育运动方面的高手。业余爱好不仅是人际交往的一种方式,还可以让大家发掘出自己在读书以外的潜能。例如,体育锻炼既可以发挥你的运动潜能,也可以培养你的团队合作精神。如果真的没有什么兴趣爱好,那么,多读些好书丰富自己的知识也可以改进自己的人际交往能力,因为没有什么比智慧和渊博更能体现一个人的人格魅力了。
对大学生们的期望
踏入大学校门时,你还是一个忙碌的、青涩的、被动的、为分数读书的、被家庭呵护着的中学毕业生。
所以,大学四年应该这么度过。
作者:专业的自由软件程序员
翻译:Dasn
所报告内容毫无意义;
在报告中用户没有提供足够的信息;
在报告中提供了错误信息;
所报告的问题是由于用户的过失而产生的;
所报告的问题是由于其他程序的错误而产生的;
所报告的问题是由于网络错误而产生的;
程序员不是弱智:如果程序一点都不好用,他们不可能不知道。他们不知道一定是因为程序在他们看来工作得很正常。所以,或者是您作过一些与他们不同的操作,或者是您的环境与他们不同。他们需要信息,报告bug也是为了提供信息。信息总是越多越好。
本文中提到的都是一些指导方针,没有哪一条是必须恪守的准则。不同的程序员会喜欢不同形式的bug报告。如果程序附带了一套报告bug的准则,一定要读。如果它与本文中提到的规则相抵触,那么请以它为准。
如果您不是报告bug,而是寻求帮助,您应该说明您曾经到哪里找过答案,(例如:我看了第四章和第五章的第二节,但我找不到解决的办法。)这会使程序员了解用户喜欢到哪里去找答案,从而使程序员把帮助文档做得更容易使用。
他们对自己写的软件了如指掌,他们知道哪些地方不会出问题,而哪些地方最可能出问题。他们本能地知道应该注意什么。在程序真的出错之前,他们可能已经注意到某些地方不对劲,这些都会给他们一些线索。他们会观察程序测试中的每一个细节,并且选出他们认为有用的信息。
如果您必须报告bug,而此时程序员又不在您身边,那么您就要想办法让bug重现在他们面前。当他们亲眼看到错误时,就能够进行处理了。
确切地告诉程序员您做了些什么。如果是一个图形界面程序,告诉他们您按了哪个按钮,依照什么顺序按的。如果是一个命令行程序,精确的告诉他们您键入了什么命令。您应该尽可能详细地提供您所键入的命令和程序的反应。
把您能想到的所有的输入方式都告诉程序员,如果程序要读取一个文件,您可能需要发一个文件的拷贝给他们。如果程序需要通过网络与另一台电脑通讯,您或许不能把那台电脑复制过去,但至少可以说一下电脑的类型和安装了哪些软件(如果可以的话)。
如果您给了程序员一长串输入和指令,他们执行以后没有出现错误,那是因为您没有给他们足够的信息,可能错误不是在每台计算机上都出现,您的系统可能和他们的在某些地方不一样。有时候程序的行为可能和您预想的不一样,这也许是误会,但是您会认为程序出错了,程序员却认为这是对的。
特殊情况下,如果有错误消息号,一定要把这些号码告诉程序员。不要以为您看不出任何意义,它就没有意义。错误消息号包含了能被程序员读懂的各种信息,并且很有可能包含重要的线索。给错误消息编号是因为用语言描述计算机错误常常令人费解。用这种方式告诉您错误的所在是一个最好的办法。
在这种情形下,程序员的排错工作会十分高效。他们不知道发生了什么,也不可能到现场去观察,所以他们一直在搜寻有价值的线索。错误消息、错误消息号以及一些莫名其妙的延迟,都是很重要的线索,就像办案时的指纹一样重要,保存好。
当一个错误或bug发生的时候,您可能会做许多事情。但是大多数人会使事情变的更糟。我的一个朋友在学校里误删了她所有的Word文件,在找人帮忙之前她重装了Word,又运行了一遍碎片整理程序,这些操作对于恢复文件是毫无益处的,因为这些操作搞乱了磁盘的文件区块。恐怕在这个世界上没有一种反删除软件能恢复她的文件了。如果她不做任何操作,或许还有一线希望。
不要做鼬,做一只羚羊。当一只羚羊面对料想不到的情况或受到惊吓时,它会一动不动,是为了不吸引任何注意,与此同时也在思考解决问题的最好办法(如果羚羊有一条技术支持热线,此时占线。)。然后,一旦它找到了最安全的行动方案,它便去做。
并不只是非专业的用户才会写出拙劣的bug报告,我见过一些非常差的bug报告出自程序员之手,有些还是非常优秀的程序员。
同样,如果您能使bug重现,而程序员不能,那很有可能是他们的计算机和您的计算机在某些地方是不同的,这种不同引起了问题。我曾写过一个程序,它的窗口可以蜷缩成一个小球呆在屏幕的左上角,它在别的计算机上只能在800x600的解析度工作,但是在我的机器上却可以在1024x768下工作。
表意清楚在一份bug报告里是最基本的要求。如果程序员不知道您说的是什么意思,那您就跟没说一样。我收到的bug报告来自世界各地,有许多是来自非英语国家,他们通常为自己的英文不好而表示歉意。总的来说,这些用户发来的bug报告通常是清晰而且有用的。几乎所有不清晰的bug报告都是来自母语是英语的人,他们总是以为只要自己随便说说,程序员就能明白。
本文属于,请在复制和使用本文时自觉遵守OPL。
对本文的任何意见和批评请发送至:
英文版:
中文版:
关键词:度量量度CMM
摘要:软件度量并非一个新的话题,其主要目的是为组织提供对软件过程和产品更深入洞察力,这也就使组织能够更好的进行决策并朝着组织目标发展。对于软件企业而言,度量通常等价于采集并报告数据并且主要以数字为表现形式。本文的目的不在于提供软件度量概念上的解释及由来,而将聚焦于企业软件度量过程的建立上。
从软件企业的观点出发,软件度量(SoftwareMeasurement)是通过各种不同的量度(metric)对软件生命周期中的各个元素进行度量(Measure),它能够为项目管理者提供有关项目的各种重要信息,同时也是进行大多评估活动的基础。
通常度量程序是由一些软件工程组在组织中进行实施,而这种用于量化软件过程的决策手段实际上能为所有涉及软件的人或部门带来好处:
既然软件度量能为企业组织的各个方面带来好处,那么我们究竟应该如何在企业组织中来设计并实现这一度量过程呢?本文将以此为目的展开。
首先,让我们先来了解一下设计软件度量过程的主要构架:
根据以上几点,CarnegieMellon大学的SEI提出了以下的一个软件度量过程体系结构图:
下面我们就来按照上面的体系结构进行分析:
制定度量过程的计划包括两个方面的活动,一个是确认范围,一个是定义程序步骤:
过程的实施也包括两方面的活动,一个是数据的采集,一个是数据的分析:
过程的改善仅包含一个方面的活动,即优化过程:
现在,我们已经基本了解了设计一个软件度量过程的体系结构,那么,我们应该如何来进行实施呢?这也就是我们下面即将展开谈到的。
如果企业组织决定在内部开始或改善软件度量过程,组建一个度量专组是很有必要的,同时企业应为该专组提供确定和必要的资源,以便使其展开工作。在完成相应的准备工作后,我们就可以开始经历一个实施的过程了。
到此,我们已经清楚了软件企业度量过程的完整建立过程,与CMM一样,这也只是一个规范与框架,具体的实现将根据各个企业组织的不同则不同。尽管SW-CMM中并没有一个专门的软件度量的关键过程域,而是将其贯穿于其他关键过程域中,不过在SW-CMM的继承者--CMMI中定义了一个专门的关键过程域:度量与分析。
参考文献:
1.EstablishingaSoftwareMeasurementProcess,CMU/SEI,DonaldR.McAndrews,July1993
2.Goal-DrivenSoftwareMeasurement--AGuidebook,CMU/SEI,RobertE.Park,August1996
3.SoftwareMeasurementGuidebook,SEL,NASA,June1995
4.Object-OrientedSoftwareMeasures,CMU/SEI,ClarkArcher,April1995
5.SoftwareQualityMeasurement:AFrameworkforCountingProblemsandDefects,CMU/SEI,WilliamA.Florac,1992