中小型软件开发项目一般都具有任务急、工期短的特点,要在确保满足时间、质量、成本和效益的情况下交付给客户满意软件产品, 必须保证团队与客户、团队成员之间能良好的沟通与协作。沟通与协作是团队开发活动的基础,它贯穿于软件开发的整个生命周期。是软件开发项目速度、成本、效率的关键。
随着Web服务技术和面向服务的体系结构(SOA)的发展,要求软件开发必须从使用本地丰富的内部应用资源向联接外部广泛分布的服务资源过渡。
这一转变却正面临一些新的困难,新时期的软件开发必须回答如下三个问题:如何使包装为Web服务的软件资源协同工作、如何在技术演进的过程中保持平台的中立性、如何在当前动荡的Internet时代适应需求的变化?
通过与这三个问题相对照,不难发现:传统的软件开发方法难以重用和协同软件资源,难以保持平台的中立性,也难以满足变化的需求。因此,迫切需要一种能够克服这些困难的新方法,那就是——协作开发。
今天的大多软件工作能否获得成功,取决于团队的协作,而不是个人的突出表现,特别是在中小型软件企业当中,创建并维护一个高绩效的团队,以产生潜在的杰作是非常重要的一项工作。团队成员彼此都影响着整个团队的成功,他们必须要向着一个共同的目标而合作。
孤军作战已经成为历史
几年前,“软件开发是一项团队活动”是Rational提出的口号之一。可以说,直到今天,这个标语更为正确了,个体开发者在单独完成一个重要项目的时代已经成为过去了。
然而,简单地将一些人分配给某项目并不意味着你拥有了一个团队。要想创建一个有效的工作组,团队成员必须相互“检入”且配合。敏捷开发中提到,团队成员应当可以认识到彼此的优点和缺点,并相互配合以取得成功。
多年来,人们仅将软件局限在应用工具的狭小区域,这种片面的理解致使人们很难联想起大规模的软件工业。因而,软件开发往往与编写程序等同起来,而调研分析、建模、测试、部署和全局管理等工作却被忽略。
这种局面在一些中小型软件开发项目当中非常明显,特别是对任务认识的片面性也体现在对软件开发角色的划分上,程序编写者(开发人员)是主力军,代表了一切。如此以来,在开发工作中就呈现“独木难支”的局面。
可见,今天的软件开发已不单是一种技术或工具的应用,抑或一种灵感的迸发。资源的调配、协作的布局、流程的设置在软件开发中占据越来越重要的地位。技术、工具、人和管理方法以开发对象为核心,要达到水乳交融的境界。
在潜心经营软件开发工具多年后,IBM Rational力求通过整合将软件开发的要素粘合在一起,提供一种功能强大的平台,促进软件工艺的发展。
从角色入手管理团队
虽然充分的协作开发具有很多优势,但这在事实运行当中却存在很多问题,例如,对于一个管理者而言,一类挑战是在既有协作团队中增加新的成员。有些小公司起步于一个核心团队。当公司发展壮大时,该核心团队需要吸收新的成员,这时,就有可能发生一些冲突。结果可能是,新成员会被驱逐出来或者核心团队成员选择放弃并离开公司。
以下有几个方法,可以避免出现类似的情况。
首先,当新成员加入一个团队时,请确保他们的个性与本团队相匹配。
第二,不要聘请超级明星。尽管他们可能带来好的效果,但是你想要他们做的大部分工作可能对于有经验的人们而言已是重复工作,而且也不能够充分他们的才能。
第三,或许最重要的是,当团队中加入新成员时,为他们指派一些可以帮助他们掌握窍门并理解文化的良师。这将有助于他们更快地融入团队并产生一种归属感和成就感。
从项目当中的角色管理入手,也是提高协作开发效率的一项重要举措,IBM Rational所倡导的整合开发平台,是将与软件开发相关的所有人员凝聚在一起,通过一套整合的流程和全面的质量控制机制,形成一个功能强大的开发平台。
高品质软件是多道工序锤炼的结果,创造高品质软件的开发平台必须整合完成所有这些工序的角色,以使其倾力协作。角色的整合建立在清晰的角色定位之上,从开发实践中IBM Rational定义了项目经理、系统分析人员、架构设计师、开发人员、测试人员、部署人员六大角色,他们的工作环环相扣,形成一个缺一不可的团体,每一个角色都能在开发平台上找到自己的位置,并能获取适合自己的工具。
沟通与协作不仅指开发团队的内部成员之间,,也包括开发团队与用户、客户之间的互动。在软件开发的全过程中, 沟通与协作是一切活动的基础,它将会扮演越来越重要的角色,而采用专业的平台与工具,不仅将会让团队的沟通写作更加有序、高效,更能够保证整个软件项目的质量与客户满意度。