揭秘微软软件开发项目管理
揭秘微软软件开发项目管理
2012-04-19 10:49:28 来源:中国项目管理资源网抢沙发
2012-04-19 10:49:28 来源:中国项目管理资源网
摘要:目前,软件开发项目管理一直是一个令人困惑的难题,因为没有一种固定模式可以让程序员和项目经理参考。而微软为何能够开发出一个又一个成功的商用软件产品呢?
关键词:
软件开发项目管理
目前,
软件开发项目管理一直是一个令人困惑的难题,因为没有一种固定模式可以让程序员和项目经理参考。而微软为何能够开发出一个又一个成功的商用软件产品呢?这是业内人士非常希望学到的宝贵知识。
本次技术大会上,微软
软件开发项目管理课程受到了开发人员和项目经理的追捧。微软亚洲研究院高校关系部亚太区项目经理栾跃和与会者分享了微软的宝贵的经验。栾跃表示,开发工具和编程技术在软件开发中的作用同软件项目管理相比是次要的,一个软件开发项目的成功,关键在于如何进行良好的项目管理,这是软件开发之本。
软件开发的挑战
软件开发可以说是人类历史上最艰难的工作之一。软件开发所面临的独特挑战包括由技术、人员、资源、时间等带来的风险和困难,市场的迅猛发展逼迫企业利用各种背景的开发人员,软件复杂性的增长以及大型系统对领域知识的要求使得多人合作和团队式开发模式成为必须,商业模式要求开发过程必须可重复,很多开发公司或团队仍旧采取小作坊式无规范的任意性管理和运作方式。
在软件开发流程方面,到目前为止,还没有一个放之四海而皆准的标准。世界上没有一个模式和管理方法可以确保能够开发出成功的软件。栾跃表示,包括微软在内,都处于一个不断学习和摸索的过程中。很多软件公司的管理处于“救火状态”,哪里出现问题,就补救哪里。
缺乏完善的项目管理使得开发出的产品无法满足客户的全部需求?开发项目拖延,导致无法按时交货;出现质量问题,导致客户不满;产品完成,但项目费用严重超支;由于计划安排不当造成延迟,导致以加班方法来补救。
开发项目成功与否并不仅仅基于技术原因。有优秀的软件开发人员和高超的技术,但没有良好的项目管理也是不行的。
很多软件并没有实现客户所期望的功能,这也是一个相当严重的问题。产生这些问题的原因是多方面的,比如没有完全了解客户需求,采用的技术和商业指标不相符或团队之间缺乏良好的沟通。任何一个问题都会导致项目失败。在沟通层面来讲,团队成员之间需要一种工具把工作串联起来。而团队领导,能否对项目进展进行良好的追踪也非常重要。
对软件开发实施管理
那么如何避免失败,提高成功率呢?栾跃表示,培养和提高软件开发管理能力,学习软件开发项目的基本知识,在团队中培养和使用从事项目管理的专业人员进行开发管理,在企业内推广良性的开发管理运作流程,免除运作的随机性和任意性,建立可重复性的操作,建立开发历史的数据档案,逐渐为团队建立一套严格的开发流程的规章制度等是提高软件开发成功率的要素。
此外,软件开发需要能够尽早地发现错误,改正错误。错误发现得越晚,对于软件开发造成的损失越大(参见附图)。例如,如果在需求分析阶段发生错误,那么最多就是把需求分析写一遍。损失的是一个人的劳动,而如果到了测试阶段发现了需求错误,再回去重新做需求分析,那么损失可能是致命的。[page] 软件开发工作需要三大支柱,首先需要最基本的技术和技巧,这是具体的开发工作,包括软件架构和编码工作。其次是团队的协作,现代软件开发需要大量技术人员,如何很好地协作是一个巨大的挑战。最后是现代化节省型生产模式的运用。通常人们容易忽略第二、第三项,这也是项目经理需要引起重视的要点。
软件开发项目的成功需要整个开发部门使用统一的管理工具,各个开发团队能够进行高效的沟通和协作,各个开发团队按照统一的运作流程进行操作。这三点是绝对不可缺少的。
总之,在软件开发过程中,软件管理包括以下方面的工作:决定项目启动时间,确定项目范围,制定项目任务的重要性和优先顺序,确定具体的项目工作任务和工作单元,分配项目资源,估算完成工作任务单元的时间,制定项目时间表,计算并管理项目费用,项目执行管理,项目收尾。
高效的项目管理需要借助优秀的工具,现代化的管理工具可以为你提供关键的帮助,帮助你推行管理的流程模式。现代化的管理工具提供项目进度追踪的各种手段,如时间表、纠错状态、工作任务完成状态等,提供帮助整个团队进行沟通和信息分享的手段并推动开发流程不断的自我优化。微软的Visual Studio Team System(VSTS)就是这样的工具,它帮助用户达到事半功倍的开发效果。
使用工具控制开发周期
软件开发包括五个基本流程:启动、计划、执行、控制和结束。其中最重要的是软件开发生命周期具有重复性的特点,比如开发过程经常从控制测试阶段返回到计划阶段,然后再重新进行设计执行工作。这种循环就是软件生命周期的不断循环。软件开发管理的目标就是让这个循环变得更快,尽早尽快地发现问题,并返回纠正问题。在一个开发过程中,可能需要多次进行循环。作为项目经理,就需要使用VSTS这样的好工具,控制循环过程。
栾跃表示,微软就是按照这样的方法进行开发的。定义每个阶段、每个里程碑,同时定义到达某个里程碑之前需要做的工作。在微软,更改管理是非常严格的,找到错误之后,程序员不可以随便更改,必须经过严格的审查,通过进一步的调查来判断是否有足够的证据表明这个错误可以修改。修改完成后,测试工程师必须对修改进行验证。
开发过程中,需要团队进行良好的协作。微软根据软件开发团队的成熟级别进行分类,总结出五种类型(参见本文附表)。栾跃表示,目前大部门软件公司只能达到第一级,微软很多刚成立的小型团队只能达到第二级。现在大部分团队正在向第三级前进。使用VSTS就可以让团队达到第三级别。如果开发团队还停留在第一级或第二级,那么就还有很多工作要做。
总之,栾跃向大家建议,成功的软件开发需要贯彻执行项目管理的实践来降低你开发项目的风险,努力提高你的开发团队的协作和沟通能力。
第三十八届CIO班招生
国际CIO认证培训
首席数据官(CDO)认证培训
责编:fanwei
免责声明:本网站(http://www.ciotimes.com/)内容主要来自原创、合作媒体供稿和第三方投稿,凡在本网站出现的信息,均仅供参考。本网站将尽力确保所提供信息的准确性及可靠性,但不保证有关资料的准确性及可靠性,读者在使用前请进一步核实,并对任何自主决定的行为负责。本网站对有关资料所引致的错误、不确或遗漏,概不负任何法律责任。
本网站刊载的所有内容(包括但不仅限文字、图片、LOGO、音频、视频、软件、程序等)版权归原作者所有。任何单位或个人认为本网站中的内容可能涉嫌侵犯其知识产权或存在不实内容时,请及时通知本站,予以删除。