IT项目经理进阶之道
上QQ阅读APP看书,第一时间看更新

1.1.2 什么是软件项目

行业特征

传统的项目管理知识最初服务于军工、制造和建筑业,而非IT行业。随着科技的发展,IT项目管理成为了具有时代和专业背景的一门新学科,这一变化与科技发展的进步息息相关。当任何一个行业实现了快速发展,势必要利用项目管理手段进行企业的经营管理,以前是制造业、建筑业,现在是IT业。

从管理的本质来说,行业背景改变不了项目管理的核心内容,项目管理的方法和实践是跨行业的,是一套通用的理论,并且经过了近一百年各行各业的验证,是成熟可靠的理论。那么问题来了,建筑工地的施工项目经理可以完成一个软件项目的交付吗?答案显然是不可以。原因在于,在利用通用的项目管理方法管理一个项目时,虽然从理论上来说项目管理方法是通用的,但实际上行业特点和专业要求充斥在项目管理过程的方方面面。

首先,作为项目经理需要明确项目的范围边界,需要知道项目要做什么、不做什么,这些细节完全是具体的,并不是抽象的工作包1和工作包2,所以理解SOW(Statement Of Work,工作范围说明)的前提是理解项目范围内具体的工作内容是什么,怎么做。在这个环节,作为项目经理必须具备行业知识,甚至是有行业专家的背景。

其次,在面对团队内外的各方干系人时,这些干系人包括了行业专家和能完成这个项目的一线劳动力资源,作为项目经理要频繁地与这些人打交道。如果脱离了行业背景,只通过项目管理方法论来与干系人交流,项目经理将寸步难行。

另外,在项目验收前,项目经理要清楚验收依据的技术指标和背后代表的意义,否则项目将难以做好质量保证和质量控制工作,交付的质量也很难达标。

综上,在理论上通用的项目管理方法可以服务于各行各业,但是如果你想管理好一个具体的软件项目或建筑施工项目,就不得不深入到它的行业知识中去。事实上多数情况下这个挑选关系是相反的,企业在选拔软件项目的项目经理时,并不会先选定某个通用的项目经理然后再让他去了解软件行业的知识,而是从软件从业人员中选拔,由软件背景的资深人员来担任,比如软件测试工程师、软件开发工程师,或者软件产品经理等。而建筑施工项目则更加严格,项目经理的人选需要具备国家评定的一、二级建造师资格证才可以上岗。

可见在项目管理学科蓬勃发展的今天,垂直领域的不同行业的项目经理,对于特定的行业背景有着极高的要求,所以软件项目和制造业项目在管理时,虽然底层理论相通,但上层行业知识各不相同,甚至项目经理对行业知识的掌握程度会直接影响到项目的成败。那么这里涉及一个热度很高的问题:IT项目经理都要有软件开发背景吗?答案在后面章节。这里笔者先给出一个简要回答,IT项目经理一定是一个IT从业者,但IT从业者不仅限于软件从业者,同样的软件从业者也不仅限于软件开发工程师。因为软件代表不了IT,同样的软件开发也代表不了软件行业,更代表不了IT行业。所以软件开发背景对于一个IT行业的项目经理来说是一个重要的优势,但不是必需项。

IT行业、软件行业和软件开发之间的包含关系,如图1-3所示。

图1-3 软件开发、软件行业和IT信息技术的关系

可见对于全面的IT信息技术来说,软件开发领域仅仅是其中的一个组成部分。软件开发能力的缺失,并不代表IT信息技术的缺失;但是,缺失IT信息技术,则必然做不好软件开发的工作。对于IT项目经理来说,软件开发并不是必需技能,全面而扎实地掌握IT信息技术知识才是能否胜任的关键。

软件工程和软件项目管理

软件工程是一门属于工程管理但又与项目管理有一定重叠的计算机专业学科。软件工程关注的是在软件开发过程中的管理和软件建设方法,而项目管理在此基础上涵盖了软件工程以外的包括客户、需求、供应商、项目风险等更多方面的更大的管理范围。一个完整的软件项目不仅仅需要管理软件开发过程,在开发以外项目前期的需求范围、资源计划、风险识别,中期的变更控制、风险控制,后期的验收、归档、知识库的沉淀等都是项目管理重点关注的方面,也是软件项目管理与软件工程的不同之处。软件项目管理关注的是项目交付的完整成功,包括客户的满意度、交付的质量、软件功能需求和非功能需求的完成,而不仅仅是软件工程的成功。

IT项目作为项目的一种,是随着IT信息技术发展而衍生出的一个新兴行业里的新的项目类型。IT项目的范围很大,在IT项目中又可分为硬件项目、软件项目、网络实施项目等,如图1-4所示,我们有必要了解这些基础的概念从属关系。

图1-4 软件项目与其他项目的关系

注:本书所介绍的IT项目经理泛指IT行业中的软件项目经理

软件项目的管理特点

软件行业与传统行业最大的区别是人力资源充当了主要原材料。当人已经不再仅作为加工者加工原材料,而是同时作为原材料和加工者,那么可想而知,在软件项目里充满了各种角色的人。我们所说的软件项目的成本管理,主要也是人力资源的成本管理。所以考虑到软件项目的实际情况,PMP将教材中早期的九大知识领域更新成了今天的十大知识领域,把项目干系人管理单独列出作为第十个知识领域,足见软件项目管理的实际发展对PMP的影响和人在软件项目管理中的重要性。

那么软件项目管理就是管理人吗?某种意义上说,是的,但不绝对。在管理人的过程中,作为项目经理需要管理好事,才可以服众进而管理人。所以软件项目管理,管理人和管理事同样重要。

参考PMBOK的项目管理五个阶段、十大知识领域和49个过程组的定义,我们可以把普通项目管理和软件项目管理的动作对应到五大阶段中,如表1-2所示。

表1-2 普通项目管理和软件项目管理行为

可见软件项目管理与普通项目管理是一种继承和被继承的关系。在普通的项目管理方法论之上,将软件项目的专业动作分别套入各个阶段和过程中,是做好软件项目管理的基础。如果由一个软件从业经验丰富的人担任项目经理,结合他的软件从业背景和掌握的项目管理知识,依靠成熟先进的通用项目管理方法,将会极大地提高软件项目管理的质量和交付成功率。但关于项目经理的人选,我们需要理解:能做好IT项目管理的人并非一定要有软件开发背景,但是,缺乏IT基础知识的人一定不适合做IT行业的项目经理。