软件开发项目进度控制常见问题
软件开发项目进度控制常见问题
    要有效地进行进度掌握,必需对影响进度的因素进行分析,事先或准时采取必要的措施,尽量缩小计划进度与实际进度的偏差,实现对项目的主动掌握。软件开发项目中影响进度的因素许多,如人为因素、技术因素、资金因素、环境因素等等。在软件开项目的实施中,人的因素是最重要的因素,技术的因素归根究竟也是人的因素。软件开发项目进度掌握常见问题主要是体现在对一些因素的考虑上。常见的问题有以下几种状况:
    1、80-20原则与过于乐观的进度掌握
    80-20原则在软件开发项目进度掌握方面体现在:80%的项目工作可以在20%的时间内完成,而剩余的20%的项目工作需要80%的时间。这个80%的项目工作不一定是在项目的前期,而可能是分布在项目的各个阶段,但是剩余的20%左右的项目工作大部分是在后期。所以软件开发在进入编码阶段后会给人一种“进展快速”的感觉,使得项目经理、项目团队成员、用户以及高层领导产生了过于乐观的估计。有些领导看到软件交付给用户了,就一块石头落地“终于交差了”,同时又可能撤出一些被认为不必要的人力资源。但许多状况下这是为了应付用户不合理的交付期限要求而采用的不得已的措施。这样的结果是拖延了后期的工作,同时假如软件还不成熟的话,会给用户造成不好的影响。
    2、范围、质量因素对进度的影响
    软件开发项目比其他任何建设项目都会有更经常的变更,也许是因为软件程序是一种“看不见”又“很简单修改”的东东吧,用户是想改就改,造成需求的扩散,项目经理有时还不知如何拒绝,加上要说“我能”的心理因素,一般都会答应修改。这样集少成多,渐渐影响了项目进度。
    假如某项工作在进度上表面上达到目标了,但经检验其质量没有达到要求,则必定要通过返工等手段,增加人力资源的投入,增加时间的投入,实际上是拖延了进度。不管是从横向或纵一直看,部分任务的质量会影响总体项目的进度,前面的一些任务质量中会影响到后面的一些任务质量。
领航高架桥    3、资源、预算变更对进度的影响
    资源,最主要的还是人力资源,有时某方面的人员不够到位,或者在多个项目的状况下某方面的人员中途被抽到其他项目、或身兼多个项目、或在别的项目不能自拔无法投入本项目。还有一个很重要的资源,就是信息资源,如某些国家标准、行业标准,用户可能供应不了,而是需要去收集或购买,假如不能按时得到,就会影响需求分析、设计或编码的工作。其他资源,如开发设备或软件没有到货,也会对进度造成影响。
    预算其实就是一种资源,它的变更会影响某些资源的变更,从而对进度造成影响。
    4、低估了软件开发项目实现的条件
    低估软件开发项目实现的条件表现在低估技术难度、低估协调复杂度、低估环境因素这样几个方面。
    首先是低估技术难度。软件开发项目团队成员,有时甚至是企业的高级项目主管也经常低估项目技术上的困难。低估技术难度实际上也就是高估人的能力,认为或期望项目会根据已经制定的乐观项目计划顺当地实施,而实际则不然。软件开发项目的高技术特点本身说明其实施中会有许多技术的难度,除了需要高水平的技术人员来实施外,还要考虑为解决某些性能问题而进行科研攻关和项目试验;
    其次,低估了协调复杂度,也低估了多个项目团队参与项目时工作协调上的困难。软件开发项目团队成员比较强调个人的智慧、强调个性,这给项目工作协调带来更多的复杂度。当一个大项目由许多子项目组成时,不仅会增加相互之间充分沟通交流的困难,更会增加项目协调和进度掌握上的困难。
昶读什么    另外,企业高级项目主管和项目经理也经常低估环境因素,这些环境因素包括用户环境、行业环境、组织环境、社会环境、经济环境。低估这些条件,既有主观的原因,也会
相爱不易有客观的原因。对项目环境的了解程度不够,造成没有做好充分的预备。
    5、项目状态信息收集的状况
    由于项目经理的经验或素养原因,对项目状态信息收集的的把握不足,准时性精确性完整性比较差。另外其它一些原因也会造成这种现象。某些项目团队成员报喜不报忧,不期望别人知道自己工作的不好的状况,例如软件程序的编制,可能会先编制一些表面的东西,现有界面,看起来似乎完成任务了,实际上只是一个“原型系统”或演示系统。给领导造成比较乐观的感觉。
    假如项目经理或者管理团队没有准时地检查发觉这种状况,将对项目的进度造成严重的影响。当然,假如出现这种需要时时刻刻都相互提防的氛围,管理人员就应当从管理的角度,从制度的角度检讨一下,进行改进,让大家实事求是地进行沟通。温伯格说:“无论你多么聪慧,离开了信息,对项目进行成功的掌握就是无源之水、无本之木。”
    6、执行计划的严格程度
    没有把计划作为项目过程行动的基础,而是把计划放在一边,比较随便去做。例如对于项目团队内部沟通或外部沟通,在计划中要说明清晰人员、周期、方式、方法,不能遗漏,但在实际项目过程中,可能出现沟通没有按时或没有完整地达到全部项目干系人的状
况。
    若项目计划本身有错误,执行错误的计划确定会产生错误。如,计划制订者在计划系统框架设计考虑上的错误、进度支配上的失误等。实际的项目实施中,除了这种错误之外,还可能因为项目执行上的错误,造成项目的麻烦。例如,项目的客户及其他项目干系人没有准时为项目中出现的状况采取必要的措施或者所采取的措施的不适合详细的状况、没有效果或者有副作用等。另外,假如在项目中的某项工作(如某个子系统或模块、组件)被转包给第三方开发后,不能进行有效的管理,也会造成进度上的延误。
    7、计划变更调整的准时性
    渐近明细是项目的特点,特殊是对于软件开发项目,并不是一个一成不变的过程。开头时的项目计划可以先制定得比较粗一些,随着项目的进展,特殊是需求明确以后,项目的计划就可以进一步的明确,这时候应当对项目计划进行调整修订,通过变更手续取得项目干系人的共识。计划应当随着项目的进展而渐渐细化、调整、修正。没有准时调整的计划或者是随便的不负责任的计划的项目是难以掌握的。在高技术行业,日新月异是主要特点,因此计划的制定需要在一定条件的限制和假设之下采用渐近明细的方式,随着项目的进展进行不断细化、调整、修正、完善。对于较为大型的软件开发项目的工作分解结构可
采用二次甚至多次 WBS 方法。即依据总体阶段划分的总体 WBS ,需求调研阶段结束、概要设计完成后特地针对具体设计或编码阶段的二次 WBS 。由于需求的功能点和设计的模块或组件之间并不是一一对应的关系,所以只有在概要设计完成以后才能精确地得到具体设计或编码阶段的二次 WBS ,依据代码模块或组件的合理划分而得出的二次 WBS 才能在具体设计、编码阶段乃至测试阶段起到有效把握和掌握进度的作用。有些项目的需求或设计做得不够具体,无法对工作任务的分解、均衡安排和进度管理起参考作用,因此要随着需求的细化和设计的明确,对项目的分工和进度进行准时的调整,使项目的计划符合项目的变化,使项目的进度符合项目的计划。
    8、未考虑不可预见事件发生造成的影响
    假设、约束、风险等考虑“不周”造成项目进度计划中未考虑一些不可预见的事件发生。例如软件开发项目还会因为项目资源特殊是人力资源缺乏、人员生病、人员离职、项目团队成员临时有其他更紧急的任务造成人员流淌等不可预见的事件对项目的进度掌握造成影响(即项目按时完成是基于如下假设:人力资源不会缺乏、人员不会生病、人员不会流淌)。企业环境、社会环境、天灾人祸等事件对项目的进度掌握造成影响。对项目的假设条件、约束条件、风险及其对策等对于进度的影响在项目计划要进行充分的考虑,在项目进
展过程中也要不断地重新考虑有没有新的状况,新的假设条件、约束条件、潜在风险会影响项目的进度。假设是通过努力可以直接解决的问题,而这些问题是一定要解决才能保证项目按计划完成;约束一般是难以解决的问题,但可以通过其他途径回避或弥补、取舍,如牺牲进度、质量等等;假设与约束是针对比较明确会出现的状况,假如问题的出现具有不确定性,则应当在风险分析中列出,分析其出现的可能性、造成的影响、采取的措施。实际上像没有考虑人的疾病、人员流淌这些状况本身也不是什么问题,因为任何人都不可能把全部以外的状况都考虑完整,实际上也没有必要。但有些诸如下班或节假日的加班时间都被支配用于项目工作的状况就会造成更多的项目不确定性。在可能的状况下当然要对全部可能状况都做到有备无患,但是有的时候也要冒一定的风险,同时对于风险的防范也需要考虑假如防范的成本大于风险本身造成的损失和影响,则这种防范是没有必要的。
    9、程序员方面的因素对进度的影响
    程序员方面有两种常见的心态影响了进度的掌握:一是技术完美主义、二是自尊心。
    技术完美主义的常见现象是,有些程序员由于进度压力、经验等方面的原因,会匆忙先做编码等详细的事情,等做到一定程度后会想到一些更好的构思,或者看到一些更好的技术的介绍,或者是觉得外部构架可以更加美化,或者是觉得内部构架可以更加优化,这样
他们会私下或公开对软件进行调整,去尝试一下新的技术。而是否使用这些新的技术对完成项目本身的目标并没有影响,相反可能带来不确定的隐患。这种做法不是以用户的需求为本、或以项目团队的总体目标为本,可能对软件开发进度造成较大的影响。
    自尊心的常见想象是,有些程序员在遇到一些自己无法解决的问题时,倾向于靠自己摸索,而不愿去问四周那些经验更为丰富的人。有些人或许会通过谈天室等方式匿名地向别人求教。假如运气好会很快地解决,否则要花许多实践摸索。而假如向四周的人求教,可能摸索几天的问题别人早就解决了。
    10、未考虑软件开发过程的循环、迭代特性
    对软件开发的各个过程分类过于精细,制定进度计划时各项工作过于紧凑、没有弹性,造成的后果是,定期提交项目进度阶段报告的制度只有在表面上起到效果,根据计划的时间表提交阶段成果也只是在表面上起到效果。因为“上有政策、下有对策”,强行的规定会使人产生一些错误的熟悉:如在项目计划中“规定”某个时间只能做某某类别的事情,那么严格执行的后果就是编码阶段就不能修改文档;另外错误的“里程碑”概念可能会使大家轻易地相信上一个阶段的工作成果都是“通过评审”最终定稿了,而实际上可能只是因为时间到了该提交的人提交、该评审的人评审了。假如上下阶段是不同的人就根本不会去检查其中
是否还有错误;假如上下阶段是同一个人,就可能非正式地修改上一阶段的错误,但占用的时间和精力却是下一阶段的,并且这样的修改时没有记录的。这样关于阶段进度掌握的措施实际上只是在表面上有效。最为普遍的状况是,用户在合同中限定了提交软件系统的时间,实际上这个时间对完成项目任务来说是远远不够的,但计划只能根据合同来进行,所以要不用户让步,要不只能根据时间的商定提交实际上还未完成的软件系统,完成系统的安装,但这时候的“完成阶段任务”只是一个表面现象,系统虽然安装了,但可能是没有经过严格彻底测试的,也可能是只完成了部分的功能,省略了某些功能,有些是整块功能省略,有的是省略了某些功能的某个过程,如数据录入里面隐含的数据录入前缺省值设置、数据录入检验等功能,而是实现了比较粗糙的功能。这样,系统交付并不意味着项目的完成,而在项目交付之后还要花更多的时间。 如何在excel中设置下拉菜单
    11、其他因素
    以上这些因素是影响项目进度的几个主要方面,除此之外还有许多其他的影响因素。其实最主要的因素还是人的因素,这里的人包括全部与项目相关的人。项目经理的素养、管理者的水平、用户的因素、项目成员的因素等等,都会对项目进度造成影响,这是因为由于软件开发的特性。因为篇幅有限无法一一列举,只能在此分析一些常见的因素。
    不可否认,软件开发项目进度可控性还是带有一定运气成分的。特殊是需要用户协作的那些软件开发项目,其可控性与用户的成熟度、软件应用领域的成熟程度和行业标准规范的完备程度有很大关系。关于可控性方面会涉及到一些与客户打交道经验,虽然我们说,顾客是上帝、以顾客为中心,但并不是说我们要把主导权交给他们,而关键是我们如何去主导、引导、把握。因此,项目掌握的好坏与相关人员人际关系方面的经验也有关系。
夕阳西下适合发朋友圈的句子    尽管存在许多不可控的因素,我们的任务是首先分清哪些是可以掌握的,哪些是我们不能掌握的。项目经理一是要尽量扩大可控的领域,削减不可控的领域,二是不要在“不可控”上花太多时间,而是多花一些时间把可控的工作掌握好,做好防范措施,减轻不可控因素对项目进度的影响。
    项目进入实施阶段后,项目经理的几乎全部的活动都是围绕进度绽开的。进度掌握的目标与成本掌握的目标和质量掌握的目标是对立统一的关系。项目的进度、质量和成本构成一个相互制约的三角关系,需要项目经理去平衡。 什么鱼最好养

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。