该模型的几个重要特点:
1.没有所谓的项目经理。
程序经理这个角色可以说是接近项目经理的了,他需要编制计划及跟踪计划执行,但在行政级别上,他不是大家的头,大家都是平等的,大家只是处在不同专业的角度来负责工作。
2.强调项目团队是由各专家组成的。
软件开发活动是高强度高挑战的智力活动,我们需要由各类专家共同负责协调工作,每位专家都是同等重要的。
3.用户体验是我们常常忽略的部分。
用户体验简单地说是用户使用软件时的感觉,软件的颜色、布局、文字、行为等等会直接影响用户使用软件的满意度。目前我们国内的项目组,往往没有用户体验设计环节,也没有专职的用户体验设计师。
我第一次学习MSF团队模型时让我很震动,该模型体现了以人为本的开发模式,让团队中的每个人都极受鼓舞,但该模型在实际工作中很难完全应用,主要原因如下:
1.各专业人才水平参差不齐。
我的个人感觉国内以上六类角色的水平由高到低排列,大致这样:开发、程序经理、产品管理、测试、发布管理、用户体验,而用户体验基本是空白。各专业人才能力不相当,无法组成“无头领”的团队,充分发挥各种角色的作用。
2.各专业人才水平全部没达到要求。
哪怕是水平高的开发角色,我们的平均水平跟微软的相比还是相差太远,那更加不需要提其他角色了。
3.团队协助能力差。
我们的团队基本不会“team work”,我们从小到大的教育基本没有“team work”的教育。
MSF常常也被人以“太理想化”质疑,MSF所描述的世界只是软件开发的乌托邦而已。难道我们的现实情况决定了我们的项目团队水平吗?我们没有办法建立一种实用的项目团队模型,让我们的项目团队能持续进步吗?
实用团队模型
我带领过很多团队,其中不少是带领应届生或者是工作经验还不多的工程师,团队中每个人的能力如果还不能塑造好,确实无法让团队高效运作。而项目初期我做的很多事情,都是通过项目具体工作来训练大家、提高每个人水平的事情。
我们的计算机相关教育并没有训练出合格的各类专业人才,但我们这般计算机从业者都是充满激情和追求进步的,基于这样的现状,我觉得应该有合适的团队模型能让我们的项目团队自学习,然后逐步发挥各专业人才的作用。
我们光抱怨我们的教育制度是没有用的,我们需要实用的团队模型来解决当前的实际问题。我在实际项目中的项目团队模型,通常是这样的:
角色和人并一定是一一对应的,一个人可以戴多个角色的帽子,一种角色也可能由多个人担当。
上述模型有8种角色:项目经理、产品经理、软件设计师、用户体验设计师、测试工程师、实施工程师、配置管理员、QA。
前面六种角色分别与MSF的程序经理、产品经理、开发、用户体验、测试、发布管理角色类似。
我基本上是很认可MSF的项目管理思想的,但为了适应实际情况,我做了一些必要的调整。