分享

[软件工程]说说简单而又不简单的软件过程改进

 东北十三少 2020-10-16

在软件工程泰斗瓦茨·S·汉弗莱所著《软件过程管理》一书中,给出软件过程改进的6个步骤:

  1. 了解开发过程现状。

  2. 确定目标过程

  3. 确定所需要的过程改进活动清单,并排序。

  4. 制定完成所需活动的计划。

  5. 提供实施计划所需资源。

  6. 回到第一步。

你看,只需区区6步,就可以完成一个过程改进的循环,而且每个步骤的要求都不难理解。这样看来,过程改进并没有什么高深之处,很容易、很简单嘛!

可是,具体实施过程改进之时,方知这些看似简单的步骤,实施起来却并不容易。正如一些美味,看上去朴实无华、普普通通,细细品味之下,才会发觉别有一番滋味,萦绕心头,亘日不绝。

第一个步骤中的难点是“了解”。“知己知彼,百战不殆”。要想成功,首先就要对要做事有深入细致的了解。只有知其优势劣势,才能制定出具有针对性的措施。这也是改进的前提。

但是要获得对过程现状的清楚认识并不是一件容易的事儿。一般组织会采用内部评估和/或外部评审的方式作为了解过程现状的手段。但是结果往往不尽如人意。因为无论内部评估还是外部评审,都是依据已经制定的过程文件来进行过程评价,……这有点骑马找马的意思?!这种方式,怎么能期望它把过程对开发活动的适用性、促进和阻碍都找出来并且清楚地表达出来呢?

最了解这些内容的是那些遵循现有过程进行开发的一线人员。而这些人员通常是被评价的对象,他们并没有被赋予发现问题了解问题的职责。他们唯一可以反映对过程评价的渠道是软件能力成熟度三级所要求的“将经验教训纳入组织过程资产”。如果组织仅达到成熟度二级水平,这一要求并不显化,其效果也就可想而知。即使是达到成熟度三级水平的组织,如果没有有效的规程和准则,一样不会有好的效果。

所以,想要真正了解现在的过程现状,就一定要重视收集一线开发人员对过程的认识和开发过程中的经验教训。

第二个步骤的重点是确定过程改进的目标过程。如果对过程现状足够了解,确定目标过程似乎不难。但是,首先你要制定一个合理可靠的选择准则——通过这个选择准则选好的目标过程,才能有望实现成功的改进。

这个选择准则应考虑以下内容:

  1. 改进对软件研发周期的影响;

  2. 改进对软件产品质量的影响;

  3. 改进周期;

  4. 改进投入。

第三个步骤是要确定过程改进活动清单。过程改进活动一般包括以下几个步骤:

  1. 标识出目标过程待改进项;

  2. 召开原因分析评审会议,收集过程改进建议;

  3. 依据过程改进建议的适用性、合理性以及费效比,确定采纳的建议;

  4. 修订过程文件;

  5. 改进试点;

  6. 评估改进效果,必要时重复上述2~5步;

  7. 部署改进。

第4个步骤是要制定改进计划。改进计划不仅要给出改进活动的时间表,还要建立过程改进团队(确定改进建议、修订过程文件、改进试点、改进评估、改进部署等),并明确其职责。对于重要的里程碑(比如修订过程文件),要明确通过准则。

第5个步骤是提供必要的资源。一切计划得以实施的基础就是资源。过程改进团队成员,是其中最重要的资源。要针对不同的职责,根据人员的业务方向/技能水平,分配不同的人员。尤其是改进活动的负责人,他至少需要具备策划能力、决策能力、资源调配能力、组织能力等4种能力。必要时,应对改进团队成员进行有针对性的专业培训。

最后一个步骤是持续改进的下一个循环。重点是确定改进的时机。

俗话说,细节决定成败。简单的步骤,还要拆分成更为具体的可操作的细节,这样才有可能取得令人满意的成果。

微信号:IdeaofSE

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多