要做好软件项目管理,除了掌握一些项目管理知识,学会使用一些项目管理工具外,它还与你的软件项目组采取的组织形式有关。
根据项目的具体情况,采用合适的项目组组织形式,才能更好发挥出项目管理的作用。否则,项目管理将不再是软件开发的助力,而是阻碍。
项目组组织方式有以下3种:
民主分权式
采用民主分权式(democraticdecentralized,DD)的软件工程小组中没有固定的负责人,负责安排任务的“任务协调人”也是由全体组员临时指定。软件开发中遇到问题时,由全体组员共同协商解决问题的方法。组员之间是平等的,没有上下级之分。
控制分权式
采用控制分权式(controlleddecentralized,CD)的软件工程小组有一个固定的负责人,他负责安排任务并子组的工作。软件开发中遇到问题时,也是由全体组员共同协商解决问题的方法。但是,落实解决方案的具体任务是由小组负责人安排下去的。子组之间是平等的;组内的个人之间也是平等的,但是也有负责人和子组、个人的上下级关系。
控制集权式
采用控制集权式(controlledcentralized,CC)的软件工程小组不仅有固定的负责人,而且他的职责不仅包括安排任务,同时对问题的解决方案有更多的话语权。负责人和小组成员之间是明显的上下级关系。
我们在建立一个软件工程小组时,应当选择以上哪种组织形式,实际上与以下7个项目因素有关:
软件开发的难易程度
集权式的组织结构控制力度大,不需要激发个人的创造力,它最适于处理简单的问题;分权式的组织结构更能鼓励小组成员的创造力,它适合解决复杂的问题。所以,如果软件开发的难度很大,应采用民主分权式的组织形式,软件开发的难度不大,应采用控制分权式或控制集权式。
软件的规模
软件开发规模越大,意味着开发人员之间的信息沟通交流的数量也会巨大。所以,大规模的软件应当需要更加有效的信息的交流。这就需要有一个强有力的任务协调人承担起让信息交流更加有效的任务。所以,软件开发规模很大时应采用控制分权式或控制集权式的组织形式。
小组成员在一起工作的时间
人们通常在具有一定约束的环境下长期共处,总会产生一些诸如相互抱怨、扯皮的负责情绪,从而影响整个小组的士气。而在一个平等相处的情况下,人们会更加轻松自在。所以,如果需要小组成员长期一起工作,应当采用民主分权式的组织形式。
软件能够被模块化的程度
软件被模块化程度的高低决定了负责不同模块的组员间沟通交流的信息量。模块化程度越高,组员间的交流越少;模块化程度越低,组员间的交流越多。所以,对于模块化较低的软件,应采用民主分权式;对于模块化程度高手软件,可采用控制分权式或控制集权式。
对软件质量和可靠性的要求
经验数据表明,控制集权式和控制分权式的组织形式在软件开发过程中产生的缺陷要比民主分权式少。所以,对软件质量和可靠性有较高要求时,应采用控制分权式或控制集权式。
交付日期的严格程度
经验表明,集权式的管理比分权式的管理能更好地控制工期。所以,如果交付日期有严格要求,时间比较紧迫,应当采用控制分权式或控制集权式。
所以,你的软件项目组适合哪种组织形式?
这正是:
项目组织三形式,民主分权和集权
项目情况不相同,组织形式要分清
参考书目:软件工程(第4版),作者:张海藩吕云翔,出版社:人民邮电出版社有限公司
作者简介:王小双,长期从事GJB推广、实施、评价、改进的工作,创建《软件工程之思》