软件中项目管理应用以及对于软件信息交流的政策技术事项来说都是大家十分关注的话题,软件的运用要点大家也应该充分的掌握等等。
摘要:当代的软件项目管理理论似乎对开发团队的信息交流问题缺乏足够的关注,在这方面多数是强调团队合作的作用。实际上,信息交流模式存在很多内在的规律,研究分析这些因素将有利于软件项目管理工作的改进,有利于为软件业的发展提供有益的思考。
关键词:软件项目,软件信息,软件论文
1引言
1970年Sackman对12名程序员用两个不同的程序进行试验,结果发现程序长度差别为6:1,程序运行时间差别为8:1,程序编制时间差别为9:1,程序编码时间差别为18:1,程序排错、调试时间差别为28:1。在实际开发中,软件项目开发成员之间存在差距是非常普遍的。对此通常的做法是采用内部交流,如员工培训、技术会议、成员讨论等方式,达到减少团队成员的差距的目的。
推荐期刊:《软件和信息服务》软件科技期刊,创刊于1984年,由中国电子信息产业发展研究院、北京中电报发展有限公司主办。计算机科学技术刊物。
软件开发是一种有特定目标的团队合作活动,而团队只有通过有效的交流才能发挥其集体的力量。在开发活动中信息交流普遍存在,而且扮演着非常重要的角色。它协调成员行为,使工作同步,与团队行为方式及其效果密切相关。因此,如何有效管理和控制信息交流变得非常重要。但信息交流往往难于控制和管理:如果没有良好的管理,开发团队很容易陷入工作低效、信息混乱的境地,并导致种种负面影响——工作中断、思路中断、时间消耗等。调查显示,每周工作40小时的开发工程师,实际开发时间平均仅有16~18小时,其它很大部分时间消耗在人员之间的交流上。相反,一个团队的信息交流简单、通畅、损耗小,其工作往往协调一致,各种活动有条不紊。信息交流对软件开发有深刻的影响。
2广义信息交流及其模式分类
从狭义上讲,信息交流仅限于人与人在语言、思想上的直接交流,在广义上则包括一切信息的发送、接收、传递以及这个过程的相互作用(如引伸、扩展、缩小、曲解、联想等等)。在软件开发中,所有从自身以外主动获取信息的活动都属于信息交流的范畴;交流对象不一定是人,可以是机器、经验知识库、软件系统(如DSS)等等;但交流主体一定是人。广义信息交流在软件开发过程中极为普遍,所有任务都在特定的信息背景(专业知识、任务、计划、规范化、管理指令等等)下由各个成员共同完成。
3信息交流模式特征及其条件
根据信息交流的特性,可以将其分为三种特征明显的模式。
3.1强信息交流模式
强信息交流模式的特点是交流非常频繁,不仅发生在项目成员(包括项目经理)之间,而且发生在成员个人网络之问(如某成员与项目组以外的专家、个人进行的交流);信息交流方式表现为面对面或人与人的交流,缺少工具支持;存在很大的损耗,交流虽然活跃但处于无组织的信息混乱状态,过多的交流损耗大大降低了团队的工作效率,成为管理上的瓶颈。
图1中:
1.Nx:小组成员
2.M:项目经理或项目小组负责人
3.P:上一级负责人
4.C:内部评审小组
5.箭头及其方向:信息传输路线和方向(下同)
图1表示了一个典型的开发团队的强信息交流模式。可以看出,控制通道M—P或P—c的信息交流相对集中而简单,但项目小组内部的交流则非常频繁,交流频度(复杂度)是n(考虑交流的双向性,n为项目成员的数目)。由于项目的执行核心分散到每个直接开发软件的各个项目小组成员身上,在强信息交流的模式下,交流频度太高导致整个小组的开发效率低下。同时项目经理M由于忙于应付各方面的交流而导致小组内部缺乏管理。因此这是一种内耗巨大的信息交流模式。大型项目往往容易陷入这种状态,这也证明了为什么大型项目更依赖于有效的管理的事实。
3.2弱信息交流模式
这个模式的信息交流非常有限,只存在项目经理与程序员之间的交流,程序员之间几乎没有信息的交流,更没有项目小组以外的支持;没有利用工具促进交流。由于缺少交流,各自为政,效率低下。项目人员缺乏管理和组织,成员之间存在信息交流障碍,没有内部评审小组对计划进度的严格监督,如图2所示。
这种情况之下交流已经非常少,但仍然有损耗,这种无法避免的损耗就是自然损耗。
3.3自然损耗的强信息交流模式
上述两种信息交流模式都存在着固有的问题,但他们各有所长:强信息交流通畅无阻;弱信息交流损耗接近于自然损耗。若交流模式同时具备这两个特点,则该模式就是自然损耗的强信息交流。该模式既有强信息交流的优点,又克服了其损耗大的缺陷:一方面成员个体之间的信息通道非常畅通,另一方面每个个体受到来自团队内部其他成员的干扰大大减少。
但形成这个模式是需要条件的,存在大量的管理良好的易于获取的充分共享的经验知识库,即图3中的共享库,是其中的一个必要条件。共享库使得大量的信息可以不通过传统的交流获取,提高了信息传递的速度,降低了人与人之间的直接交流的频度。
共享库是一个关键的角色,在这里泛指一切有助于提供有效信息服务的信息集,但应排除团队本身,否则又回到强信息模式的状态。内部资料库、可以提供咨询的专家组、决策支持系统、Internet资源等等都可以成为有效的共享库。其特点是共享,可以同时提供多通道的服务。
另一方面,项目组成员之问必须排除个人色彩,交流通道流畅,不存在任意交流,每次直接交流都是必要交流——共享库无法提供这种信息才由直接交流解决,这是强信息交流模式的一个条件,同时也是自然损耗强信息交流模式的一个条件。
4自然损耗的强信息交流模式对软件开发的启示
信息交流模式的重要性质提醒我们:软件开发中如何避免信息交流的混乱?如何管理好团队的信息交流模式?如何降低信息交流的损耗?信息交流的三个特征模式的为此提供了有益的启示。
4.1从广义信息交流来看软件开发的发展趋势
仅仅从狭义信息交流来看,软件开发的信息交流并不起眼。为了得出建设性的结论,我们必须从广义信息交流的角度来研究问题。基于此,我们认为下面四点均是软件业按照信息交流模式规律发展的证明:
·运用工具促进交流
计算机网络使单机环境向网络环境扩展,大大扩展了信息传播的方式和速度;局域网已经成为各单位的必不可少的环境,特别是Internet已经成为事实上最大的信息源。分布式数据库系统、邮件系统、文件传输协议、即时交流工具、搜索引擎都是基于网络的信息交流工具。这些工具使人们获得所需信息的能力大大提高。
强大的集成环境:普遍认为它是人们应付软件危机的产物,但从信息交流的角度来看这是软件开发工具发展的必然趋势。它代替程序员做了大量的信息获取、知识输出、信息协调、交流的工作,为降低交流频度起了巨大的帮助作用。可以预见集成开发环境将有更惊人的发展,而且逐步会把其他软件和目前仍然要人工来完成的工作纳入其范围,如配置管理、版本控制、更友好的联合开发环境、自动测试、智能辅助工具、自动化的文档管理技术等等。
·构建更大的信息单元(信息粒度)
软件由模块或对象组成,而模块和对象则由更多的信息单元(包括数学公式,元数据等)组成。多个信息单元可以集成为具有特定功能的更大的信息单元,使得使用信息时不必考虑更多的与目标无关的细节,从而增加信息交流的强度。这种信息单元的扩大化就是软件复用思想。早期的软件开发比较原始,基本上是完全个性化的(比如某个具体功能的汇编语句),随后逐渐出现了直接调用各种工具包、系统函数的情况,直至更正式的复用:面向对象、构件等技术的提出和应用;软件业在软件复用方面做了巨大努力,出现了不同的技术和标准,主要有OMG定义的CORBA和Microsoft公司的DCOM以及SUN公司的Java平台。复用构造了更大的信息单元,为降低信息交流的开销创造了有利条件。
·支持信息共享
驱动软件业发展的一个重要思想是共享,共享在信息爆炸时代充分体现了其优越性。没有共享,信息再多也只是一个孤岛,严重影响信息流通和交流。早期的开发工具缺少共享支持,随着软件需求的快速膨胀,出现了所谓的软件危机。为了应软件危机,出现了支持充分共享的开发平台,这些开发工具普遍出现了可视化、网络化、智能化、自动化的趋势,为共享提供了技术支持,而共享的根本目的在于破除交流的障碍,为实现无损耗的强信息交流模式创造了条件。
·利用智能化
智能化一直是软件工业的一个研究热点,而且将会发挥越来越大的作用。软件开发要减少人的交流开销关键在于减少人的有意识的参与活动。机器智能可以代替人面对面的交流、教育、培训,它不受时空的限制,可以即时提供,可以并行工作,可以随需应变,从而大大减少直接交流带来的损耗。比如智能化的搜索引擎可以提供更好的搜索服务。
由此可以得出一个结论:追求“减少交流损耗”是软件业发展的一个内在的趋势,减少交流损耗是提高效率的重要条件。
4.2保持活跃的信息交流。减少损耗
在软件开发活动中信息不对称普遍存在。信息不对称导致的结果是成员之问的开发速度无法一致,只有充分交流才可以降低信息不对称性,才能加速知识的流通和传播。但实际上,由于信息交流的损耗问题,不允许这种交流无限制地发展,这就需要管理控制和工具辅助,避免并非必要的直接交流的发生,使强信息交流的损耗降低到自然损耗的水平,实现自然损耗的强信息交流模式。