基于马尔科夫链在IT项目进度中的控制管理摘要:在IT项目的开发过程中,IT项目管理日益受到人们的关注,各个IT企业都在积极将项目管理引入到开发活动的进度当中,对开发实行有效的管理。本文运用马尔可夫链模型和网络图方法进行IT项目进度管理并进行预测,在IT项目中导入并使用马尔可夫模型使管理者们更加容易对项目进行管理以及预测使之更好的节约人力以及成本。关键词:马尔科夫链;IT项目;进度管理1.项目进度管理概述项目管理就是以此项目为对象,由项目组织的管理者对项目进行高效率的计划、组织领导、控制和协调,来实现项目目标的管理过程。项目的进度管理就是为了在确保项目按时完成得条件下对所需要的各个过程进行管理。在项目管理协会(PMI)的项目管理知识的体系指南中并没有单独提出来项目的进度管理,其归结到的范畴是项目的时间管理,但是一个项目完成得进度不但受到时间因素的影响,而且还会受到资源方面的影响,所以企业对项目进度的管理需要从整体上关注影响项目进度的各个因素,只要是以利益为最大化的企业都是非常关注成本,而IT行业,并不同于一般的制造业,其有一定的特殊性。现在,信息技术的生命周期越来越短,产品更新换代的速度越来越快,所以,IT行业应该更加注重进度的管理问题,一个有效的IT技术开发,其管理的前提就是从进度管理开始,时间就是IT企业至于不败之地的根本。2.IT项目进度的影响因素1997年Goldratt提出制约因素理论,其主要阐述了在流水线作业过程中,决定产出的是流水线中的某一机器在该流水线中的“瓶颈”,为了提高产出就必须而且只需要提高瓶颈的产出。这个理论的提出导致了管理理论的一次革命,从而使得管理者们更加注重从整体更加全面的来看待一个项目,使项目在一个更加协调的环境下完成各方面的有效配置,找出影响项目进度的主要因素是各方面有效配置的关键。现下IT项目越来越多的涉及到各个领域,在这里探讨IT项目进度管理的四个主要的影响因素为:项目进度计划、项目需求的分析、项目团队管理和进度控制,进行IT项目进度管理就是使项目能够按照预定的成本、进度、质量顺利完成,而对成本、人员、进度、质量、风险等进行分析和管理的活动。进行IT项目管理的根本目的就是为了让项目特别是大型项目的生命周期(从分析、设计、编码、测试、维护)都能在管理者的控制下进行,以预定成本按期、按质的完成软件的交付使用的全过程。3.IT项目进度计划与控制IT项目进度管理包括两个内容:进度计划和进度控制。其项目管理的进度机制实际上是一个闭环控制系统,如图所示:软件进度计划软件进度跟踪进度状态是否正常软件进度控制否是IT项目管理主要反映在项目的成本、质量和进度这三个方面,它们反映出了项目管理的实质。其中IT项目进度计划是项目进度中的一个重要的组成部分,这影响到项目是否顺利进行,并且直接关系到项目的成败,它包括项目活动排序、项目历时估算以及制定进度计划等方面。一般来说,一个成功的IT项目就是能够在规定的工期、成本的约束下,满足客户的要求,所以说时间是项目是否成功的一个很重要的要素,从项目的实施结果来讲,如果能够在预定的时间内达到预期的工作目标,就可以说是项目得到了有效的进度管理。针对IT项目并行开发的特点,我们找到一种方法,可以针对并行进度进行预测的方法,从而有效的进行项目进度的计划和控制工作。4.基于马氏链的IT项目进度管理4.1马尔可夫过程的基本原理按照系统的发展,时间离散化为n=0,1,2,…,i…,每个系统的状态可用随机变量表示,并且对应着一定的概率,这种概率就称为状态概率。当系统某一阶段的状态转移到另一阶段的状态时,在此转移的过程当中,存在着转移概率,则称为转移概率。如果转移的概率只与目前相邻的两个状态的变化有关,那么这种理算状态按照离散时间的随机转移系统,称为马尔可夫过程。马尔可夫的数学模型表示如下:设系统的每个阶段含有S1,S2,…Sn个可能的状态;该系统的初始阶段向量记为向量α(0),系统第i阶段的状态向量记为α(i),两相邻系统出现由状态Si变到Sj的状态转移概率为Pij(1≤i≤n,1≤j≤n),由Pij构成的矩阵称为系统状态转移概率矩阵,记为P,即P=(pij)n×n。P的第i行表示系统现阶段处于状态Si,下阶段转移到S1,S2,…Sn状态的概率,所以,n1iijP=1,i=1,2,…n。这里,不同阶段的状态向量分别为:α(1)=α(0)×p,α(2)=α(1)×p,…,α(i)=α(i-1)×p,i=1,2,…n。假设系统发展过程状态向量α满足条件:αp=α,则系统处于稳定状态。α为状态转移矩阵P的不变向量,记α=(X1,X2…Xn),且满足条件:n1i1Xip4.2马尔可夫链理论有限个马尔可夫过程的整体称为马尔可夫链。马尔可夫的运动变化分析,主要是分析研究链内有限马尔可夫过程的状态及相互关系,进而预测链的未来状况,据此作出决策。根据马尔可夫链的构成,其过程具有如下三个特点:一是,过程的离散性,该系统的发展,在时间上可离散化为有限个状态;二是,过程的随机性,该系统内部从一个状态转移到另一个状态是随机的,转变的可能由系统内部的原先历史情况的概率值表示;三是,过程的无后性,系统内部的转移概率只与当前的状态有关,而与以前的状态无关,其所说的是,一个系统的某些因素在转移中第i次结果只受第i—1次结果的影响,与其它结果无关。如果满足以上所说的三个特点,则可用马尔可夫链研究其过程,并且还可以预测其未来。而IT项目管理中的进度管理符合其三个特点,所以说是具有马尔可夫性的。4.3IT项目基本模型F·Padberg最早提出,可以使用马尔可夫链来描述IT项目开发过程的动态性和不确定性从而找到项目进度管理的最优决策。我们由一个IT项目小组进行研究,将这个项目小组的开发任务划分为若干个组件。在项目的进行过程当中,不同小组开发各个组件所需要的时间是各不相同的,并且也是不确定的。而且,在开发过程当中,由于高层设计的变化或是组员在开发过程当中的失误等不可预测的原因,可能导致组件的返工。则,此项目在实施过程当中完全是不确定的。我们可以把每个小组的管理流程规划出来,管理流程如图所示:概念与计划系统设计编码配置单元测试集成测试系统测试安装维护由于IT项目很多时候都是多个阶段并行执行,我们就可以引入马尔可夫链来预测关键路径上各个阶段的执行情况,从而保证项目进度在有效的计划和控制内完成。由此,我们可以根据整个项目和人员情况制定出项目具体任务表,如图所示:序号角色姓名职责1PDT主管曹新鹏组织项目成员对技术可行性进行分析;根据项目需求制定工作计划;领导项目组成员按照计划和项目开发流程完成项目任务2软件工程师曹新鹏负责配置中AGENTAPI接口调整;负责9530到88266驱动调整,包括代码移植、编译调试以及DSP与SLIC联调;在此之后,项目组根据项目分解结构和各种限制约束条件等,编制出项目工作先后关系表和由网络图表示的项目进度计划,如图所示:标识号任务名称工期开始时间完成时间资源名称1GPONSFUVTP2.1移植42工作日××年2月18日××年2月18日2概念与计划阶段2工作日2月18日2月19日曹新鹏3项目进度计划1工作日2月18日2月18日曹新鹏4软件需求规格说明书1工作日2月18日2月18日曹新鹏5技术可行性分析报告1工作日2月18日2月18日胡罗荣6制定质量保证计划1工作日2月18日2月18日卜凯美7TR21工作日2月19日2月19日卜凯美8开发与测试阶段36工作日2月20日4月10日曹新鹏9配置19工作日2月20日3月18日胡家福10WEB页面开发与移植18工作日2月20日3月15日吴世龙11数据配置3工作日2月20日2月22日胡家福12基本配置5工作日2月25日3月1日胡家福13调试设置5工作日3月4日3月8日胡家福14语音媒体5工作日3月11日3月15日胡家福15SIP业务3工作日2月20日2月22日吴世龙16IMS业务5工作日2月25日3月1日吴世龙17系统控制5工作日3月4日3月8日吴世龙18S204与VIP联调5工作日3月11日3月15日吴世龙19总结报告1工作日3月18日3月18日胡家福20驱动24工作日2月20日3月25日胡罗荣21BL23531DSP驱动移植13工作日2月20日3月8日胡罗荣3系统工程师陈杰负责BL23531DSP驱动移植,包括代码移植、编译调试以及DSP与SLIC联调;4软件工程师胡罗荣负责配置部分中ALARM接口移植、AGENT与ALARM接口调试;完成S204与VTP联调的联调工作;5软件工程师胡家福负责数图配置、基本配置、调试设置和语音媒体等WEB页面的开发与移植;完成S204与VTP联调的联调工作;6软件工程师吴世龙负责SIP业务、IMS业务和系统控制等WEB页面的开发与移植;完成S204与VTP联调的联调工作;7语音组主任蒋中负责监督、听取项目主管汇报,协调相关部门进行资源分配,确保项目符合市场需求并顺利进行8质量工程师卜凯美负责项目中质量问题跟踪,组织根因分析,跟踪纠正问题和预防措施的落实情况22代码移植5工作日2月20日2月26日胡罗荣23编译调试10工作日2月25日3月8日胡罗荣249530到88266驱动调整13工作日2月20日3月8日曹新鹏25代码移植5工作日2月20日2月26日曹新鹏26编译调试10工作日2月25日3月8日曹新鹏27DSP与SLIC联调10工作日3月11日3月22日陈杰28总结报告1工作日3月25日3月25日曹新鹏29TR42工作日3月26日3月27日卜凯美30转内部测试及问题解决8工作日3月28日4月8日康秀峰31回归测试2工作日4月9日4月10日康秀峰32TR52工作日4月11日4月12日卜凯美33制定质量总结报告1工作日4月15日4月15日卜凯美34项目总结1工作日4月16日4月16日曹新鹏在这个IT系统开发过程中,严格划分阶段,并将每个阶段的执行情况,提前、持平或推后进行详细记载,根据前面所讲到的转化为串行阶段,记录33个阶段的执行情况,用马尔可夫链进行预测。首先,进行状态划分:每项过程并不一定是在期望时间内准时完成得,将各个阶段的完成情况划分为提前、持平和推后三种状态进行分析和预测,如图所示:序号1234567891011状态提前提前推后持平持平推后推后持平持平推后持平序号1213141516171819202122状态提前提前持平持平持平持平推后推后持平提前提前序号2324252627282930313233状态持平提前持平持平持平推后推后持平推后推后持平其次,计算初始概率:以表()中每个阶段作为离散的时间单位,每个阶段的完成情况分别为提前、持平和推后三种状态,并取S1=提前,S2=持平,S3=推后。则空间状态为M(S1,S2,S3),状态概率是各种状态出现的可能性的大小,用状态向量M(S)表示,Pi表示Si的概率,(i=1,2,…n),上表中共33个数据,其中,S1=7,S2=16,S3=8,所以各个状态的概率分别为P1=7/33=0.21,P2=16/33=0.49,P3=10/33=0.3,状态向量M(0)=(0.21,0.49,0.3)称为初始状态向量。第三步,计算状态转移矩阵:在计算状态转移矩阵时,在最后的一个“持平”的数据不参与计算,这是因为在下一个阶段它究竟转移至那个状态还不清楚,这我们可以得到关于S的矩阵:S11=3S12=2S13=2S21=0S22=10S23=5S31=2S32=6S33=2则,可以得到关于P的矩阵:P11=3/7P12=2/7P13=2/7P21=OP22=2/3P23=1/3P31=1/5P32=3/5P33=1/5则,上述就是状态转移矩阵Pij为:P(0)=51535131320727273预测第34阶段任务完成情况的状态:经过一次转移的概率矩阵为P(1)=P(0)P=5153513132072727351535131320727273=