浅谈公有制企业中小型软件团队的项目管理实践
该文以笔者在实际工作中的项目经验为基础,结合软件项目管理相关理论为指导,从开发人员管理、软件质量管理、软件配置管理三个方面探讨了软件项目管理知识在大型国有化工企业中的软件项目管理工作中的应用。
1 背景
随着信息化进程在国有大型化工企业中的推进,越来越多的企业提出了针对自身特点的管理类应用软件的需求。为了更好的完成这些软件开发和应用推广工作,各大企业纷纷组建具有自身管理特色的软件开发队伍。但是,由于国有企业在体制方面具有的天然特殊性,其内部的软件队伍在项目管理工作中无法完全照搬体制外软件企业的管理制度和方法,所以,如何在企业中依据企业特色做好对企业内部软件开发队伍的项目管理工作就成了团队管理者需要认真面对的新课题。
2 开发人员管理
国有大型企业较普通民营企业相比,存在诸多特殊性,如管理体制为公有制,资本运作方式单一,企业成立历史较长等,但是,其管理特色与专业的软件开发团队的在理念上存在或多或少的相悖,因而在项目管理工作中是不能直接照搬体制外专业软件队伍的项目管理经验和方法的。
在企业中建立软件开发队伍的首要问题,是如何使开发小组具有很强的凝聚力,从而使组内每个成员的优势发挥出来,尽可能的做到高执行力,有效的服从管理人员的指挥,确保软件开发质量。在笔者曾经参与的项目中,团队开发人员是按照下文中的方式进行管理的。
2.1 划分开发小组
想要在非IT企业内以其自身员工为团队成员组建一支软件开发队伍是非常困难的,因为,专业软件团队的成员一般具有如下几个特点:
1)计算机相关专业毕业;
2)具有良好的计算理论和应用素养;
3)拥有足够的代码开发技能;
4)精力充沛,富有创造激情。
因此,依据软件项目管理中团队组成的基本理论,可以在团队建设的初期仅建立一个或数个软件开发小组。一般情况下,小组具有如下几点特征[1]:
1)至少有两个人;
2)他们具有相似的特长或技能优势;
3)他们为一个共同的目标或任务而工作;
4)每个人都被分配了一定的角色或职责。
这里有一点需要注意:整个小组的规模是影响小组效率的一个重要因素,另外,小组成员的技术高低搭配也是人员管理中非常重要的一环。所以,在企业中“科班”出身的职工少之又少的情况下,一定要确保每组成员中配有1到2名计算机专业“科班”出身的职工。之所以做这样的人员搭配,首要原因是需要团队之间在进行技术沟通时,受过专业理论及技术培训的人员可以更快进入角色,技术交流障碍少,另外一个更加重要的原因则是可以沿袭大型企业特有的“师带徒”传统,一个“科班”出身的职工带一名到数名不等的徒弟,传授技能知识和或引导徒弟自主学习,从而更快更好的培养团队需要的软件技术人员。
2.2 小组成员的角色及分工
在确立了小组的人员搭配之后,要做的第一件事情就是明确人员责任。在TSP(Team Software Process,团队软件过程)软件队伍管理理念中,将开发小组分成了包括小组组长、开发经理、计划经理、质量/生产经理和技术支持经理在内的5种不同角色[2]。然而,由于国有企业较专业的软件开发企业具有管理上的特殊性,因而在人员责任分配方面就不能够按照上述职责划分建立角色,就笔者的从业经历来看,在大型国有非IT企业中建立软件开发小组时,可以将开发人员分成以下几种角色:软件组长、开发副组长、系统副组长、执行组员。
2.2.1 软件组长
软件组长是团队中领受和执行工作任务的管理枢纽,通常情况下,这个人需要非常清楚团队中每个成员的技能优势和专业特色;在任务分块和分派过程中,能够将工作任务精准的分发到最适合的人选手中;能够通过有规律的开发小组会议获取各成员的工作量和工作质量信息;完善项目的工作报告等。
2.2.2 开发副组长
开发副组长在团队任务的执行过程中起到的作用不可或缺,TA需要带领团队成员协助组长制定项目执行计划;完成项目管理过程中各工作块的实际任务;对项目各进度进行全程跟踪等等。
2.2.3 系统副组长
负责软件开发的环境搭建,数据库维护,服务器维护,其技术经验最为丰富,适当情况下可加入开发组参与项目开发工作。
2.2.4 执行组员
每个小组的组员是项目计划有效执行的基石;项目进行过程的最直接参与者;团队管理中各标准和规章制度的执行有效性的最直接检验者;可兼任小组会议的记录者。
这里需要说明一点,依据笔者经验,由于种种原因造成了企业内软件部门的管理人员和软件需求的提出者有可能不是软件学习的专业人员出身,其对于项目情况的决策能力尝尝脱离开发人员能力实际,所以,在组建软件队伍时,所挑选的基层管理人员首先应该具有的并非是强大的技术实力,而更应该是极其良好的人际交流和沟通能力。
2.3 成员管理
2.3.1 监督小组成员完成分内工作任务
监督的具体内容包括自查和互查。自查工作在团队成员中各自展开,团队中的各组长以小组会的形式将成员召集起来,小组会议的内容包括工作的完成情况、工作中遇到的具体困难,需要团队成员合作攻关的关键点等。在互查工作中,由团队中执行不同角色的组员互换各自的工作内容,依据各自的工作计划,逐条逐项进行工作互查。
2.3.2 团队成员的有效沟通非常重要
在项目的进度时间表上,需要定期安排团队成员进行工作交流,上文提到的自查与互查便是会议的其中两项内容。在团队会议上,可采取技能培训等方式,提高团队成员的技术水平,使其在随后的开发工作中具有更好的工作能力,从而可以推动项目的有效进展。
3 软件配置管理
软件配置管理(Software Configuration Management)是协调软件开发工作中软件使用和进度控制最为有效的工具方法之一,可以有效减小软件进度的混乱程度,作为一种标识、控制和管理软件变更的技术,更可以使错误达到最小并最有效地提高软件项目管理效率[5]。
3.1 进行软件配置的原因
首先要探讨的是笔者在企业项目管理工作中遭遇到的一些实际问题:
1)潜在用户的功能需求不稳定;
2)人员技术素质参差不齐,人员开发习惯存在较大差别;
3)软件的规模越来越大;
4)软件的重用性需要提高;
5)软件的维护越来越困难;
6)团队的直属领导需求或想法脱离实际。
面对这些问题,寻求有效的团队管理策略往往不够,还需要有效的代码管理工具和良好的项目版本迭代工具来帮助团队沟通和交流。
依据笔者的项目从业经验,使用.net作为开发平台的同时,使用微软公司出品的TFS(team foundation server)作为团队项目管理(包括版本管理、进度管理等)的软件工具。该软件可作为Visual Studio Team System (VSTS) 在服务器端后端平台。TFS常用以下几个部分:
1)团队基础服务器;
2)程式开发应用;
3)解决方案构架;
4)开发工具中文服务器。
4 软件质量管理
随着项目进行的逐渐深入,其任何一次质量问题的修改成本都都会大幅增加,对于软件团队来说,仅仅是软件质量测试工作不足以对软件质量的全程做到有效控制,还需要项目管理人员对团队进行更完善的软件质量管理。
4.1 制定并执行适度的开发规范
在开发小组建立之初,在缺乏软件开发规范时,整个团队的开发人员因技术能力,专业素养的不同,在开发工作中将缺乏统一的规范。
4.2 制定规范的开发文档
软件开发文档是对整个开发过程的记录和说明[4]。相较于软件的实体,其开发文档更像是软件的形成过程中的地图,软件日后的升级、维护、和修改工作以及用户的使用,均需要查阅相关的开发文档。尤其在公有制企业内部,在评价一个部门的工作是否到位时,往往考量的不是整个团队的工作质量,所产出软件的可操作性等诸多影响因素,而是这个团队是否有非常符合规范的工作文档,因而在笔者的从业经历中,的确有部门管理人员把团队是否有完整规范的软件开发文档作为衡量软件过程质量的一个重要标准,由此看来,开发文档在小团队管理中具有非同一般的重要地位。
4.3 软件评审
软件的生命周期一般可以分为:需求分析、软件设计、软件实现、软件测试、安装维护等阶段[4]。但是,软件的评审工作渗透于软件生命周期的各阶段。评审工作首先是尽可能的发现软件在功能和逻辑方面的存在的错误,其次要通过评审验证软件的需求,并且还需要确认已获得的产出是以合理的方式开发的。
在笔者的实际工作经验中,评审会议的相关内容是如下情况:
1)与会专家为团队的直接主管领导和用户方业务专家;
2)具体评审内容由项目的组长和副组长拟定,并交由主管领导审阅批准;
3)评审会当天由开发小组对提交的评审报告进行讲解;
4)与会的评审委员在团队成员完成项目报告后,提出其发现的关键问题;
5)评审专家依据评审情况作出总结,开发副组长再将修改后的结果反馈至软件组长,软件组长在查看并验证功能已经修改后,再将结果反馈给评审组,以准备下次评审。
4.4 软件测试
通常,软件生命周期中的测试工作的完整内容包括单元测试、模块测试、集成测试和系统测试,在这一方面,非IT企业中的小型开发团队也是可以照搬专业团队的管理方法的,所以,在测试过程中将产生下述基本文档[3]:
1)测试计划:确定测试范围、方法、和需要的资源等;
2)测试过程:依据测试计划对测试的每一阶段和希望产生的对比性结果做详实的描述;
3)测试结果:按照测试过程完成的测试,结果存在差异的,需要做好对比记录,并且必须经过调试以解决所发现的问题。
5 结束语
国有大型企业因种种原因造成了其旗下的小型软件开发团队在实际项目管理中不能够完全照搬专业软件团队的项目管理办法,但在其实际的项目管理工作中依然需要应用到软件项目管理方面的知识,这对于由实际管理工作脱胎而出的项目管理相关理论的发展具有非常重要的意义。另外,在团队成员的激励方面,笔者并没有展开描述,但是在这一方面企业中的小团队管理依然具有独到之处,能够有效的管理一个公有制企业下的小型软件团队需要的不仅仅是管理理论和项目经验,更需要对于该企业独特管理特色的把控和良好的人际交流能力,然而在实际操作中,后者更为重要。
作者:翟惠良 张晓艺 来源:电脑知识与技术 2016年21期