本文是一篇项目管理论文,笔者认为从瀑布式软件模型开发到敏捷软件开发,团队文化和团队价值在工作中扮演着越来越重要的角色,从并行计算到云计算,敏捷开发已经从最初的概念走向实践。敏捷开发方法以人文本,适应变化,这种变化驱动开发的过程在不断的迭代中由试探走向实践甚至是普及。
第1章绪论
1.1研究的背景
随着软件业的发展,为了响应环境的快速变化,不断增加的复杂度以及客户需求的不确定性,现今对软件项目管理要求在不断的提高。软件项目顺利交付的影响因素不断累积,比如软件成本竞争、公司相应客户需求的速度、团队技能、市场份额、软件质量等,传统的软件开发模式已经无法快速适应市场需求,敏捷技术应运而生。敏捷开发是自上世纪90年代兴起的新的软件开发理念和方法。它们具体有很多方法,每种方法的名称、过程、术语及理念都有所区别。相对于"非敏捷",敏捷方法着重强调团队成员之间的团结协作、面对面的直接沟通、迭代增量式的交付软件版本、自我激励及自组织的团队、能够迅速适应需求变化的团队技能和团队组织方法。
自组织团队是一种比较高级的团队管理方式,对人员素质、技能以及团队的文化建设都有很高的要求,在中国的企业文化背景下是一种非常难以成功的管理方式。一般只有技术专业的开发人员才能达到高度自理,而对于年轻的团队,由于经验不足,如果完全摆脱微管理,让其自主,反而会导致项目失败。所以目前瀑布式运种计划驱动开发,有专门的项目经理和职能经理去统筹规划各个环节,督促项目团队去按照指定的时间节点去完成项目目标。
..........................
1.2研究的意义
从本论文研究内容的现实意义来讲有以下几点:
自2001年《敏捷宣言》发布以来,运种倡导快速响应客户变化及人与人的交互重于过程与文档的开发方式在业界迅速扩散和传播并广为追崇。软件产业在多年的发展中形成了巨大的改变。从瀑布式软件模型开发到敏捷软件开发,团队文化和团队价值在工作中扮演着越来越重要的角色,从并行计算到云计算,敏捷开发已经从最初的概念走向实践。敏捷开发方法以人文本,适应变化,运种变化驱动开发的过程在不断的迭代中由试探走向实践甚至是普及。
但是,敏捷开发方式普遍被国内的软件企业用在小型项目的开发和web应中,而在大型项目中只是被讨论的对象,而没被实际运用,一直被国内大多数软件企业搁置。是由于市场变化,新技术的产生,运些企业也面临着必须采用敏捷开发来应变市场的需求。敏捷项目管理的核屯、要被体现,必须要有敏捷快速,适应能力强的团队来支持。目前,通过对敏捷方面内容的广泛研究,学者们形成了较为系统的敏捷开发方法比如测试驱动开发、极限编程、Scrum方法等,其中Scrum方法是目前最流行的一种。然而Scrum作为一个框架而非一种成熟的方法论,它只定义了高层次的管理流程。它并不设及具体开发方法或者人员的有效沟通技巧等。Scrum框架没有涵盖的部分需要从其他理论甚至是敏捷方法中提取营养,以保证团队的成功,项目的优秀成果和满足预期的经济效益。要想得到理想的实施Scrum的效果,必须根据每个企业的不同的能力和特点灵活的进行改造,遵循敏捷过程的最高精神,组合出适合自己的Scrum流程,并根据团队反馈不断的优化调整,而不是生搬硬套。
基于行业的特性,目前软件开发过程中仍然最依赖于研发团队。最基本的保证团队的绩效的因素就是良好的沟通和反馈,形成良性的循环,不断的迭代改进。而敏捷开发更是依靠团队合作,而不是像传统的计划驱动开发模式一样依靠个人任务分配。敏捷开发是更加先进的管理软件项目的方法。敏捷软件开发需要的是智力型的自我组织和自我管理的团队,如何发挥每个人的作用,并将所有人的力量聚集在一起形成1+1>2的效果,这是项目团队模型要重点解决的问题。团队遵循计划驱动模型往往由独立的集中自我管理的专业人才组成。当引入基于自组织团队的变化驱动开发模型时,从以高度个人自我管理和低团队自主到需要团队和个人都高度的自我管理是公司最大的挑战之一。
...........................
第2章相关理论及综述
2.1国内外研究现状
1986年,IBM大型机之父,著名的软件大师福瑞德布鲁克斯指出,软件开发的危机是内在的,在近年内都无法找到软件危机的解决之道,只可能渐进的进行改善,而培养优秀的工程师以及依靠人的素质将是唯一可能的解决办法。同年,竹内弘高和野中郁次郎在其《新型产品发开游戏》一文中也首次提到将Scrum理念应用到产品开发中。传统的软件开发模式已经过于臃肿,无法响应市场的迅速变化从而快速捕捉到商机,而如果将开发团队保持为一个整体,参考"橄揽球"比赛中的方法,在团队内部传球并持续前进,才能更好的快速响应不断变化的市场需求。敏捷思想深受日本工业界最佳实践的影响,尤其是丰田和本田公司推行的精益原则,以及竹内弘高和野中郁次郎开发的知识管理策略。
哈克曼也指出自组织团队比起传统方式管理的团队确实有一些优势,因为他们下放了决策权,提高了开发速度及解决问题的精确性。一些公司已经开始实施用自组织团队来提高生产效率和质量以降低成本。然而,自组织团队成员不能简单通过自我勉励,打破传统组织结构或是设立一人一票决策制流程来建立。哈克曼将团队中自我管理行为确定由以下四个方面构成:
1.每个团队成员对自己业绩负责并对帮助他人进行业绩反馈。
2.每个团队成员都要对自己的工作内容负责。
3.每个团队成员积极寻求公司的帮助、指导W及要求所缺少的资源。
4.每个团队成员自我监督,同时从其他成员那了解有关自己业绩的反馈。
当一个组织在从计划驱动模式转变到敏捷过程时,科恩和福特都提到了一些可能出现的挫折或错误,存在的问题主要有团队里的人要么排斥敏捷开发,要么对敏捷实践过度热情。同样,组织的结构、文化、管理和时间也都对公司是否能顺利实施敏捷过程有一定的影响。
..........................
2.2敏捷开发项目管理
从敏捷宣言的四条原则,我们可以沟通和反馈及适应快速变化的市场需求是敏捷开发的主要目标。因此,以人为本、适应变化就是敏捷开发的核心思想。进一步说,敏捷开发更多依赖的是团队及他们的创造性而不是过程。领导和协作,非正式沟通和有机(灵活参与,鼓励合作)组织形式是其他敏捷软件开发的特点。
以人为本:敏捷方法认为,软件开发中最重要的因素是人,在开发软件的过程中人应该是积极乐观的心态并且感到轻松愉悦。敏捷管理的核心应该是充分信任敏捷团队,充分调动开发人员的主动性,使之愉快积极的完成开发任务并为自己的成果而感到自象。
适应变化:与传统的计划驱动开发模式不同,敏捷开发强调计划驱动开发,这样才能随时响应客户的需求变更而不需要从头到尾的返工导致项目失败。同时也便于后期的维护。
图1描述了Scrum的开发过程,可以说迭代开发、增量交付、高优先级的需求驱动以及高度自主的团队是Scrum的四个支柱。而Scrum最重要的价值也是尊重、专注、开放和承诺。
.............................
第3章N公司实施SCRUM方法项目团队的现状与问题...............20
3.1N公司背景及NGBH项目介绍..................20
3.1.1N公司基本情况介绍.....................20
3.1.2N公司NGBH项目介绍..............20
第4章N公司实施SCRUM方法项目团队问题的解决方案...............31
4.1SCRUM团队的"有控自组"概念模型.............31
4.2建立跨职能SCRUM团队................32
第5章总结.............48
5.1N公司NBGH项目实施"有控自组"SCRUM方法效果..............48
5.1.1团队评价得分增加...............48
第4章N公司实施SCRUM方法项目团队问题的解决方案
4.1SCRUM团队的"有控自组"概念模型
正如前面理论综述里所讲,Scrum项目管理方法已经有一整套具体的框架和内容,然而生搬硬套并未必就能产生高绩效的团队。Scrum团队是一个自组织团队,然而自组织团队高绩效的运行,自组织团队内在机制的建立,都需要管理作为保障。
在对N公司NBGH项目实施Scrum方法后,N公司现有Scrum团队问题出现的各种原因进行分析之后,结合前人自组织团队创新管理模型,本文提出了"有控自组"的Scrum团队管理方式。"有控自组"模型的实施要求团队领导根据制定的目标,运用一定的方法对团队进行管理。让团队组员以自我协调组织的方式及资源共享的原则实现团队构造的最优配置,进而实现团队的自组织管理。Scrum方法强调团队自我管理自我组织,但是也没有说明必须排斥其他组织,运点是与ICAS模式相符合的。ICAS理论方法指明,模式内部过于自我协调,会让系统的复杂性降低,进而影响系统对外部信息接受的灵敏度。为此,团队在面对繁杂多变的不确定信息时,必须有自我识别并选择的"功能性"运行机制来确保团队内的自我协调组织的方向性。
............................
第5章总结
5.1N公司NBGH项目实施"有控自组"Scrum方法效果
5.1.1团队评价得分增加
N公司在实