信息化 频道

帕累托法则破解软件开发资源配置难题

    【IT168 信息化

    近年来随着项目预算的紧缩,许多开发团队开始对资源配置管理的精度、细度和效率都提出了更高的要求。因为软件项目的成功除了项目经验和团队配合之外,起决定因素的还有项目资源配置是否合理。毕竟很难想象一个内耗严重、散沙一盘的资源配置能将一个开发项目带向成功。俗话说,三军未动,粮草先行。粮草在软件项目管理中就是资源配置和优化问题。

    近期,我在一个软件开发项目中就遭遇到非常头痛的事情。由于资源配置管理不善,使到项目经常出现多个任务为得到有限的关键资源而发生冲突和争论。在经过多次的不愉快冲突和争论后,我明白到在软件开发管理中,核心问题之一是如何实现有限资源的非常好的配置,以实现项目目标的最大化。本文结合我在这次项目中得到的教训和经验,先分析帕累托法则在资源配置中的用途,然后再讨论一个开发团队应用帕累托法则破解软件开发资源配置难题的步骤。

    一. 资源配置不当引发的问题

    在软件开发项目管理中,资源配置是占据着重要的地位,现在我是深深的理解到这句话的真正含义。因为资源配置是否有效,将会直接影响到项目的成败。如果把软件开发所需的资源画成一个金字塔,在塔的底部是用以支持软件开发的工具,如硬件及软件工具平台;中间塔身是项目的时间进度资源;而在塔尖是最基本的资源:人。但让人感到遗憾的是,我在这次的开发项目中对这三类资源都配置不当,后果是使到项目陷入困境。

    (1)塔尖:人力资源配置不当引起的问题

    在软件开发的各种资源中,人是最重要的资源。因此,在安排开发活动时必须考虑人员的技术水平、专业、人数以及各阶段中对不同人员的需要。人力资源配置不当引起的问题主要是:①用人不当:主要指在项目过程中对于人员的任务安排没有完全发挥个人优势,导致工作效率低下和人员积极性降低,从而导致工期延长、项目成本增加和难以满足质量标准等问题。②职责定义不清:是指由于在项目过程中涉及到的工作众多,人员工作安排难免存在交叉,在这种情况下容易形成工作死角,即某项工作没有人员来做。③工作量安排不均衡:这种问题经常在大型项目中出现,是指由于项目工期长,项目经理在工作安排中很容易出现工作量不均衡的现象,即有些人员工作超负荷,而有些人员工作量不饱满,从而导致内部的人员矛盾。

    (2)塔身:工期时间安排不当引起的问题

    时间资源是指在整个开发过程中部分或某时段的工作时间,这也是考虑项目是否成功的因素之一。一般来说,在工期进度的管理标准中,工期-资源优化的目标有三种:时间规定,资源均衡的优化;资源强度不变,时间最短的优化;资源强度可变,时间最短的优化。也就是说资源是有均衡、低于限量、可变等三个目标,所以时间资源也有最短、固定、可变等三个目标。工期-资源配置是否合理是说上述几种情况选择性的组合是否达到项目目标的要求。

    (3)塔底:硬件及软件工具配置不当引起的问题

    软硬件工具平台是作为开发项目的一种设备资源来投入的。在软件开发中一般需要使用到许多软硬件平台工具,因此应当仔细地验证这些资源是否有效的被利用。因为硬件及软件工具配置不当会引起严重的资金浪费,使到开发成本高企,从而造成项目投资回报率的下降。

    硬件及软件工具包括:①项目管理工具集,项目管理人员使用这些工具可生成工作量、成本及持续时间的估算,和定义开发策略及达到这一目标的必要步骤。②支持工具:包括文档生成工具、网络系统软件、数据库、电子邮件、通报板,以及在开发软件时控制和管理所生成信息的配置管理工具等。③分析和设计工具:这些工具可帮助软件技术人员建立目标系统的模型,还可帮助人们进行模型质量的评价,或帮助软件技术人员在错误扩散到程序之前排除之。④编程工具:是指编辑程序、程序设计语言的编译程序及调试程序时的工具,这些都是CASE(实例)必不可少的部分。⑤组装和测试工具:测试工具为软件测试提供了各种不同类型和级别的支持,它们能帮助减少在测试过程中所需要的工作量。
 

    二. 什么是软件开发非常好的资源配置方法?

    (1)什么是资源配置?

    所谓资源配置(Resource allocation),最简单地说就是将合适的资源放到合适的位置上。因此,资源配置是指为了按时和保证质量的完成项目,而调用各种资源或采取各类有效方法使各个资源发挥其积极有效作用的过程,同时还包括对相对稀缺的资源在各种不同用途上加以比较和选择的过程。因为相对于软件项目的需求而言,资源总是表现出相对的稀缺性,从而要求人们对有限的、相对稀缺的资源必须要进行合理的配置,以便用最少的资源耗费,获取非常好的的效益。

    因此,软件开发资源配置就是要做到“人尽其才,物尽其用”。资源配置的核心内容包含两个层面:①是资源分配比例的效果,是指资源配置后能否高效和低成本的为目标任务及时提供所需资源,这与项目的管理环境、技术环境等密切关联;②是资源的使用效率,一般是指生产效率,它可通过加强内部管理和提高应用效率来实现。因此,资源配置不当或使用失误都会导致双重的浪费。

    (2)资源配置的有效性受限于约束

    在软件开发中与资源有关的三个重要内容:制定WBS(任务分解结构)、依据WBS绘制网络进度计划图、资源估算。其中,WBS不仅是资源需求种类和数量估算的依据,同时也是制定网络进度计划图的基础,而网络进度计划图则是资源需求时间估算的依据。WBS是指将一个复杂的、庞大的、不知如何下手的项目划分成了一个个独立的、能预测、能计划和控制的任务单元,每个任务单元就是每个资源需求种类和数量估算的基础。但一个项目并不是所有的任务都能够开展,其主要的限制就来自于关键资源的可利用性和资源的稀缺性,即资源的约束。因此,在项目开发过程中各个不同的任务为得到有限的关键资源会经常的发生资源争夺或冲突。所以,资源配置的核心问题是要进行资源的约束分析。

    资源约束分析是指将有限的资源在多个任务间进行优化配置的分析过程,目的是为了最大化的满足不同任务对资源的需求,从而实现项目目标的最大化。资源约束一般可用资源载量分布图来表示。资源载量分布图是用于控制和维持资源能力与资源需求的平衡,以最大限度上增加项目输出的一种视觉图表。在项目开发过程中,该分布图能作为控制和管理项目资源需求的依据,也能用于确保项目的资源需求与资源供给之间保持平衡,避免产生资源的瓶颈现象。

    (3)什么是帕累托80/20失衡法则?

    一般来说,在人们的心理中通常有着这样的直觉:对一件事而言,所有的原因大致上是一样重要的,所有的机会都有着近似的价值,我们应平等对待。可是,帕累托法则却给了大家一个反直觉的失衡的世界,它打破了人们的常规直觉认识。帕累托法则(Pareto Principle)是由意大利经济学家维弗雷多•帕累托提出来的。

    帕累托法则认为:原因和结果、投入和产出、努力和回报之间存在着无法解释的不平衡。它认为所有的事情都可以分为两种不同的类型:多数的,它们只能造成少许的影响;少数的,它们却能造成主要的、重大的影响。原因与结果、投入与产出、努力和回报之间的关系往往是不平衡的,若以数学方式表达这个不平衡,是一个80/20关系。当然这一数据仅仅是一个比喻和基准,真正的比例未必正好是80%/20%。它的本质是说明少量的原因、投入和努力会有大量的收获、产出或回报。只有少数几件事情是重要的,其余的大部分都是微不足道的。80/20法则的作用在于点破了“关键的少数”这个突破口,这个法则对软件开发过程中的资源配置也有着重要的指导意义。
 

    三. 如何在资源配置中应用帕累托法则?

    在软件开发项目的资源配置中,一般需要开展三个方面的工作,即识别各个任务的资源需求、分析项目的资源约束、以及制定资源配置的具体计划。其中,应用帕累托法则是识别资源、准确掌握资源约束和制定资源配置计划的基础,也是资源配置的关键部分。在资源配置中应用帕累托法则可以参考以下四个步骤:

    (1)识别资源需求

    项目资源一般包括人力资源、设备资源、环境场地和时间资源等,准确识别每个任务对资源的需求是资源配置的基础。这里的资源需求不仅仅是某个任务对资源种类和数量的需要,还应包括时间轴,即在每个时点或时段上的资源种类和数量的需要。项目经理应在项目启动阶段时建立资源地图,了解各种资源的特性,并以此为依据安排资源的使用进度,从而保证项目进度和开发质量。

    (2)利用资源载量分布图分析资源约束

    每一个项目的资源总是有限的、稀缺的,因此项目资源需求的峰值就可能意味着是资源的瓶颈。所以,资源配置的关键在于准确的分析项目资源的各个约束,尤其是在关键节点对关键资源的需求和约束。从前面分析我们知道,WBS能估算资源需求种类和数量,网络计划图能画出各种资源需求的逻辑顺序以及发生的时间段或时间结点,两者结合就能生成资源载量分布图。因此,这一个步骤主要是对资源载量分布图进行约束分析。具体是采用定量和定性的方法,运用帕累托80/20法则逐个或逐类评估资源需求和资源约束发生的概率及其影响程度,并按照优先原则确定必须要进行管理和控制的20%主要任务。

    (3)针对20%主要任务,制定资源分配框架

    从帕累托法则我们可知,只要20%的重要资源需求与资源约束能达到非常好的平衡点,就能实现资源的非常好的配置。所以,资源配置的优先目标是要实现20%重要资源需求与资源约束的动态平衡。例如,可通过对项目策略、开发流程、人员岗位等采取有针对性的资源分配框架,建立优先级的分配机制,在特定的范围内优先满足20%的核心任务。此外,还可让开发人员拥有一定的适当调配资源的空间,以便更有效地实现项目目标。

    (4)实现资源配置和目标效益的动态平衡

    一般来说,随着项目进度的不断推进,每一个阶段会有不同的侧重目标,而资源配置的目标是要保证项目目标的顺利实现。所以,资源配置的投入重点也应要进行动态修正,要把握好资源配置和项目目标的同步,以实现资源投入和目标效益的动态平衡。

    总之,资源配置管理是一门科学,更是一门艺术。在开发过程中要时刻优化核心资源的配置,因为资源配置和工期计划一样也是一个逐步细化和不断调整的过程。帕累托80/2O法则应用到软件开发项目中的资源配置还有许多值得探讨的细节,但只有海纳百川敢于创新,才能在资源配置的实践中找到非常好的方案。
 

0
相关文章