过程是经验积累的最好载体

来源:互联网 发布:js点击链接打开app 编辑:程序博客网 时间:2024/04/28 13:48
首先我们看下过程和流程的区别,我的理解是流程更多的仅仅是告诉要要按照什么样的步骤和顺序做事情,流程不是以目标驱动的。而过程最主要是目标驱动的,我们为了实现某个目标,通过我们的经验总结处理来的做事情的方式和方法,这里不仅仅是顺序和步骤,更多的会包括推荐的方法,工具,技术等相关内容在里面。另外流程不可能进行自我发现和改进,而过程可以进行持续改进。

  而过程是怎么形成的?我认为更多的就是总结我们的经验,教训,方法和工具,将我们的这些非量化的存在于我们头脑里面的信息固化出来,因为只有这样固化出来会进行量化的分析,才可能进行不断的改进,另外固化出来的好处还有更好的被他人学习和借鉴。

  所以我们谈过程做好的最大体现就是项目不依赖于单纯的个人,而是依赖于整个过程或团队,相关的知识和经验都已经固化下来了,如果能够达到CMMI五级的话,我的理解是项目和团队完全是高度自适应和自我循环的。遇到问题不可怕,最重要的是在这种自适应的团队里面所有问题都可以快速的分析,解决和改进。而这些如果仅仅依靠我们单个人的经验是很难做的到的。

  让我们分析下软件项目中经验和过程的两个例子

  1.风险

  在没有风险管理过程时候,个人能力突出项目经理可以很好保证项目成功,而能力一般项目经理可能会导致项目的延期。突出项目经理时刻都在考虑我项目可能存在哪些问题,我开发人员水平怎样,需要不需要培训。我如何保证我的需求不做大的变动而影响到我后续设计开发;我可能需要定期和项目成员沟通和交流,让团队成员有成就感和责任心;而这些恰恰都是我们风险管理的内容,能力突出项目经理把这些内容都装在自己脑子里面,所以更多仅仅是依赖个人经验和思维。而当我们把这些东西提升到风险管理过程的高度的时候,这些都浮出水面,过程会指导你拟制项目计划的时候要考虑项目的风险,对关键的风险还必须制定相关的应对措施,过程还会提供相关的其它项目的风险情况,风险检查单给你,帮助你识别项目里可能存在的风险。过程会推荐你采用头脑风暴,RBS,SWOT分析等多种方式来识别风险,告诉你风险识别需要项目核心成员共同来完成。这样通过这些过程的定义和指导,项目经理就很容易的对项目进行风险管理,风险管理更多的将依赖我们过程而非项目经理个人能力。

  2.估算

  估算不准确是我们拟制项目进度计划最重要的一个问题。当项目有核心有经验的成员在的时候,我们依赖专家的经验往往可以估计的较为准确。但当这些专家一离开项目往往会导致我们连估算都无法做准确,原因就是专家的经验没有固化到项目中,我们依赖的是个人的经验数据而非项目的过程数据。当遇到这种情况我们才会真正体会到要将估算过程化,将我们的经验总结处理固化到我们的过程中,从而自动相关的估算过程,方法和标准。项目有相关的历史经验数据其实可以很容易的得到我们的生产率数据,所有这里重要的就是需要估算准确整个项目的功能点规模,而功能点估算最重要的就是尽可能的将通过经验估算的方法通过估计需求的输入,输出,事务和数据功能来细化出来,尽量形成不依赖个人经验的估算方法论。只有这样才能够很好的保障估算是依赖于整个项目和过程的,而不是完全靠个别专家来实现。

  不可否认CMMI更多的强调的是过程的重要性,尽量减少人对项目的影响,将我们的思维和经验固化到过程中,并持续的去改进我们的过程。这和敏捷开发等强调人的重要性的方法论确实存在冲突。但确实是只有将这些经验,方法形成相关的过程才谈得上软件项目得持续发展。