任何项目的最终交付都必须符合项目的投资目的,客户对项目的投资是否能够达到预期的目标是依据项目的最终交付物能否满足投资的期盼,无论是自动化时代的效率改善或信息化时代的信息价值,最终交付物所包含的功能是否全面代表项目最终交付本身的质量优劣。要降低开发过程的修改和变动,我们必须建立明确的项目范围,清楚分析范围中所需要执行及处理的事情,然后才能够整理出系统的功能需求,设计科技的应有方法,最终交付能够演示出如何满足投资者的投资目标,才能够完成项目的交付。
在90年代中后期,我们需要回应亚洲某一国政府准备建设一套智能身份证系统的项目投标邀请。标书要求一套整体解决方案,内容相当详细地说明整个项目所影响的有关部门和项目的最终目的,很明确地说明这套系统的智能卡除了取代传统的国民身份证外,更可以取代驾驶执照,也可以作为邻近国家所接受的旅游证件,更可以代替金融卡用来支付小额费用,如停车费,公交车费等。当时我们的最大挑战是如何能够提供一套合适的硬件配置和网络架构合理地分置于该国各省、市的负责单位中应用,而硬件的整体配置和网络架构的需求也直接影响软件架构的设计,更直接影响未来扩容需求,系统建设和维护的投资成本。
有关国民身份证和驾驶执照的发行和应用已经有一套基本业务流程,但是利用智能卡取代后,某些操作流程将会带来局部调整。那些操作需要进行调整,那些可以保留,是我们需要推论科技的应用能够提升效率外,还能够带来那些价值进行假设性的评估。但作为旅游证件和代替金融卡这两方面是全新的业务模式,这些概念性目标如何能够融合到这套系统中,如何评估这套系统的工作量,需要那些硬件和网络配置,让我们对这份标书的回应缺乏应有的信心。
最后我们同意组合一个十多人的业务分析团队对各种应用方法建立了全面的应用流程,结合该国的人口分布和各应用目标的未来操作流程,总结出一套比较合理的硬件配置和软件架构,让我们在标书回应内容中能够明确说明这套系统将来如何可以满足项目的最终应用要求,对操作流程的前提条件和任何假设透过SOW来说明整个项目的范围和整个项目的最终交付物,让我们的报价远远低于其它竞争对手,轻松地赢取这份合同,并且在完成交付后能够为单位带来合理的利润。
在2000年负责加拿大一家金融机构的零售业务部门建立一套客户关系管理系统,当时这个项目的基本要求很简单,也很明确,高层管理人员希望这套系统能够提供以下的应用价值:
除了第一及第二两个目标及一部份第四个目标可以直接利用科技达到目的之外,其它目标如何才能够实现?整个项目交付的内容是什么?范围在那里?
要把这个项目完成最后交付,单依靠技术人员的思维明显不够。所以我们组合了一个工作小组,其中包括金融零售业务的分行负责人,数名老客户,及业务分析师。依据每一个项目的交付目标进行头脑风暴,利用WBS的方法一步一步进行分析,从老客户的那里我们开始知道他们希望银行提供那些服务才能够让他们感觉满意,才能够让他们不会考虑去其它银行储存或处理资产;从业务负责人那里理解他们如何能够透过那些信息找寻商机,开展新业务或强化服务以满足客户的要求,从其它财务管理或投资管理的负责人那里知道如何才能够让客户的储存和资产能够带来更大的回报,从这个过程中我们最终找出项目的交付物定义,并获得管理层的确认。整个过程建立了项目组件分拆的初步模型,当时称为项目结构分解(Project Breakdown Structure,PBS),把项目的每一个目标分解为交付的模块,让我们能够按照模块的组合提供整体解决方案。经过这些年的应用及改善,最后成为今天所描述的项目组件分拆法(Project Component Decomposition Method,PCDM)。今天的高级软件技术人员必须放弃过去单纯的科技应用方法,必须改变思维,考虑如何能够利用科技的应用带来任何价值或效益,才能够把握信息化时代的软件要求。
项目组件分拆法的主要目的是把项目分拆成主要的模块或组件,这些模块或组件在完成整合后将成为整个项目的最终交付。透过PCDM的应用,可以在最短的时间内建立项目的最终交付定义。对于一些概念型项目,在项目起动阶段把握项目的最终交付,能够更有效地建立项目的范围,规范地管理开发过程中所要求的变动。
任何项目都有一定的投资目标,这些目标也一定会为项目完成后能够为项目赞助人带来预期的信息价值或预期的应用效益,否则项目赞助人没有必要对项目进行投资(当然一些政治性项目除外)。所谓最终交付物是依据项目立项时有关项目赞助人或投资人对项目的未来效益或项目在完成后所能提供的信息价值所需要的软件模块或组件。概念型项目往往有相当明确的价值期盼,但缺乏一套明确的操作过程让技术人员进行有效的分析,建立系统的功能需求。
第一个层次的目标说明需要项目投资者或项目赞助人的参与和确认,需要项目经理去理解项目的投资目标(参考上述客户关系管理系统建设的七大应用价值),第二及第三层次的分拆工作需要组合一个小组进行头脑风暴会或研讨会方式,项目经理负责指导及协调,小组成员包括系统分析员,系统设计师,业务分析员(可选)及主要项目干系人(未来应用系统部门负责人)共同建立有关“如何做说明(实现方法及手段)”和“做什么说明(解决方案)”。最后是项目经理,系统分析员及系统设计师共同整合有关解决方案,成为项目的交付说明或交付物定义。每一层的分拆成果必须获得小组成员的共识和确认才能够开展下一层的分拆工作。
为了让读者能够更清楚有关项目组件分拆法的应用,在这里特别利用一个案例为大家示范说明:
一家临近沿海旅游景点的度假酒店希望能够推出一些比较有特色的休闲活动。希望利用现有计算机对这些特色休闲活动进行有效管理。
这套系统需要能够提供以下的功能:
建立活动的细则,目前计划推出三种活动,但未来可能增加或删除活动种类: 项目管理者联盟,项目管理问题。
海底世界:每位三百元,每次两小时,在海边附近珊瑚区进行潜水活动,体现漂亮的海底景色。更可以选择深水探险(每位五百元,历时五小时),到较深的海底观赏沈船的遗迹,但需要旅游者曾经接受过潜水训练,有关经验或训练信息必须确认及记录在档案中。
非洲探险:每位四百元,包括午餐,参观邻近的郊野开放动物园,观赏动物在自然环境下的生活状态。参加者必须被告知这个活动需要在早上七时出发,下午四点三十分回到酒店。
越野单车:在附近越野单车径体现越野单车的挑战。每位两百元,每次三小时,不包括越野单车租金。租用越野单车另加一百五十元。参加者必须在报名时说明是否需要租用越野单车(16岁以下不能参加)。 项目管理者联盟文章,深入探讨。
活动报名:记录报名者参加那个活动,那天参加,参加人数,姓名,预付金等信息
储存有关活动信息,并随时可以对活动进行查询项目管理者联盟,项目管理问题。
提供简单财务管理,说明各团参加人数,总金额,预付金,印发收据等操作能力
由于酒店负责人常出差,所以需要把一些表单转换成网页,让负责人可以透过手机对有关信息进行查阅,把有关活动及财务信息转移或传送到负责人的智能手机上。
建设一套简单的应用软件,利用目前酒店的计算机设备,