【IT168 专稿】
负责一个小型软件开发项目就跟掉层皮似的,其需要花费的心力不亚于负责一个大型的软件开发项目。近期公司让我做一个小型软件开发项目的主管,由于在资源、人力、管理水平等各种方面都有所欠缺,使我所负责的小型开发项目走了很多的弯路。为什么小型软件开发也有那么多的麻烦事情,到底问题在哪里呢?
初期的开发失败给我很大的打击,对此我做了许多反思和总结。后来,我终于明白到是由于缺乏切实可行的开发制度来为开发过程保驾护航,致使开发人员和测试人员不知项目该如何稳步地往下走,对于出现的异常情况也不知如何预防和规避,而且在出现问题时也未能有步骤的及时进行快速反应。简单的说,缺乏制度化管理是这次开发暂时失利的重要原因。
开发受挫源于对制度化的误解
所谓开发制度化,是指在软件开发过程中大量使用的口头的或文字化的规章、标准或约定等。开发制度化对于软件开发项目来说,就像规矩对于画方圆一样,其重要性不言而喻。但目前许多小型软件开发团队对于开发制度化却有不少的误解。
(1)开发制度流于形式,缺乏实质性操作
目前许多软件开发的管理制度都是为大中型开发项目制定的开发制度与规范,如CMM、ISO9000等。因此在实际操作中,许多小型软件开发团队以这些为大中型软件开发项目制定的开发管理流程为基准的、模仿制定的规范制度,不但未起到明显效果,有时还会落得个"东施效颦"的骂名。
原因并不是这些制度化的管理规范本身有什么问题,而是许多小型软件开发团队模仿所制定的开发管理制度,并没有针对小型软件开发项目的实际配置进行合理优化。因此,许多小型软件开发团队花大心血建立的开发制度只流于形式,缺乏实质性操作,在一定程度上导致了项目的失误,最终形成东施效颦,差之千里。
(2)过犹不及,患上制度迷信病
制度迷信病是小型软件开发团队在其开发管理过程中另一个常见的问题。原因是有些曾在大中型团队或项目工作过的开发人员,在负责小型开发项目时,也往往喜欢套用大中型开发项目的经验,强调要用"制度"管人,用"制度"去指导开发。但由于缺乏对小型软件开发活动特点的深入理解,这些开发人员往往会不自觉地形成简单问题复杂化的僵硬化思维。久而久之,就会产生了一种叫做"制度依赖或制度迷信"的病态不健康思维方式。
这些开发人员在开发过程中过分的期望通过制度来实现对人的有效管束,但却忽视了小型开发项目的特点,结果是执行力越来越差,效率越来越低,抱怨却越来越多。这个时候,有制度比没有制度还糟糕,这就是患上了我们熟知的"制度病"。
(3)过分人本管理,却欠缺制度化管理
许多小型软件开发主管在处理开发活动和制度化管理关系过程中,常犯的通病是没有或不善于将人本管理与制度化管理有机地结合起来,使开发过程中过分倾向于人本管理,而忽视了制度化、规范化的管理。他们只着眼于单纯地、或过份地依赖其个人的管理能力,结果反而造成许多对开发质量稳定性不利的影响。
(4)制度执行不力,使其成为一纸空文
许多小型软件开发团队在开发过程中并不缺少文件化的制度,但往往却容易陷入另一个困境,就是执行不力。究其原因有三个:一是开发制度太多太滥令人无所适从;二是泛滥的制度化带来了大量的额外烦琐的管理工作量;三是对违反开发制度的行为缺乏相应的制裁措施。结果使开发制度无法有效执行,使其成为一纸空文,最后束之高阁。因此有一句大实话是值得小型软件开发团队重视的,就是有制度不执行等于没制度,执行不到位也等于没有制度。
为什么小型软件开发更需要制度化管理?
俗话说:没有规矩,则不成方圆,要想画出合乎要求的方和圆,就要有矩和规的帮助。目前,中国软件行业中大量存在的仍然是中小型软件开发团队。这些小型软件开发团队虽然资金有限、人力有限、管理水平和技术有限,但却是麻雀虽小,五脏俱全。因此,对于小型软件开发项目来说,要想比较顺畅的完成任务,就必须要提高软件开发过程的管理素质。换句话说,就是必须要有相应的制度框架给予支持。
(1)制度化管理可把开发活动导向正轨
软件开发工作有一条不变的原则是--开发总会遇到方方面面的阻力,使到开发计划总是在变。变化如果在项目预期内,在预设的轨道内运行,软件开发就是可控的。否则,项目就会脱轨变得不可控。因此,无论是大型还是小型软件开发项目,只有有"轨道"可依才能实现高效率的项目管理。实质上,制度化管理不但是软件开发从"低文本文化"向"高文本文化"过渡的具体表现,而且还是软件开发过程实现"法治轨道"的具体表现。简单的说,就是软件开发制度化不但是落实开发计划以达到规范管理的过程,也是把纷繁复杂的开发活动导向"法治轨道"的管理过程。
(2)制度化管理可规范开发活动
小型软件开发活动有一个最大的弊病,就是随心所欲的个人行为太多。因此,小型软件开发需要大大的减少随心所欲的个人行为。当在软件开发过程中通过各种制度来规范员工的行为时,当员工更多的依据开发制度来处理各种事务时,当开发人员不再象以往随心所欲时,就能使开发过程逐步趋于规范化和标准化。
(3)可强化项目执行力,减少开发风险
建立有效的制度可以强化项目开发的执行力,如:项目推进制度、工作管理制度、项目会议制度、项目过程管理、项目考核制度。同时,制度化管理也意味着开发活动程序化、标准化、透明化。因此,开发制度化可让开发人员迅速明确本岗位的工作职责,也便于在软件开发过程中对员工的工作进行监控和考核,从而促进员工不断改善和提高工作效率。
(4)减少管理越权,避免软件开发大敌
在小型软件开发过程中最常见的例子是某些领导常常会运用自己的权力,跳过标准开发流程的束缚,直接处理或指导某些事情。在软件开发里,这种行为被称作"管理越权",是软件开发的头号大敌。
"管理越权"在小型软件开发中是难以绝对避免的,但应该尽量减少的。因为某些领导如果不遵守开发流程经常出现"管理越权",就会使得其他开发人员无所适从,容易造成管理混乱,而且开发过程的工作准则也会被打破。所以,尽管管理越权可能有其必要性,但其负面影响也很大。而当执行和落实软件开发制度化时,就能减少管理越权,从而避免软件开发的头号大敌。
如何有效的落实软件开发制度化?
现在许多小型软件开发团队已经意识到进行制度化管理的重要性,但是他们的开发制度化建设还多停留在口头阶段,或是有制度却形同虚设。因为开发制度化并不是看起来那么简单,表面上看是一堆文档,但其实更多的工作却在文档以外,难度也在文档以外。那么小型软件开发团队该如何进行制度化管理呢?
(1)必须充分考虑制度的可操作性
在建立软件开发制度的时候,要充分考虑小型项目团队的实际情况,必须保证制度能获得绝大多数员工的认同和支持,以便于制度的顺利推行。另一方面,制度并不是越多越好,也不是越严越好,关键在于制度是否可行,是否具有较好的可操作性。因此,在建立制度时必须要注意制度的量与度的问题,有些制度如果暂时推行不了可先缓一缓,待开发制度本身具备了可行性和可操作性后再予以执行。
(2)开发制度要强化执行观念
对于习惯了随心所欲的小型软件开发团队来说,制度的执行肯定会让成员感到痛苦,会遇到较大的阻力,因为规范的开发流程就是要抛弃原先的一些随心所欲的做法。因此,必须要强化制度的执行观念。因为管理制度不执行就是一句空话,落实和执行制度才是制度化的核心。制度只有被执行了才有生命力,否则只能作为一纸空文。
(3)正确处理制度化与情感管理的关系
有句老话叫"国有国法,家有家规"。订了规矩就要执行,谁踩了红线,就得处罚。制度必须体现至高无上的权威性,任何个人、任何部门都必须服从软件开发制度。但需要注意的是,必须要正确处理制度化管理与情感管理之间的关系,制度化必须与情感管理、情感交流融合在一起才能充分地发挥其作用。因此,在软件开发的过程中,既要有落实制度的原则性,也要有以人为本的情感管理,只有两者配合才能有效的促进小型软件开发项目的顺利进行。