我的软件开发团队作为Rational 全球软件开发团队中的一员,在基于Jazz的Rational Team Concert上做了细致的体验,并且已将整个软件的开发和管理过程部署在其上。在每天的开发任务中不知不觉地依赖上它,喜欢它的透明,它的敏捷,更喜欢它的协作之美,并且从中深深地感受到一种高度集成化的有效的软件开发协作模式和手段正在极大的改变全球化企业的软件生产效率。
作为一个软件开发的管理者——开发经理,我们时时都被同样的几件头疼事所困扰:我的产品开发该遵循什么样的流程?我的需求在哪儿?我的每个团队成员应该为此做什么?他们今天在做什么?什么时候能完成既定的开发任务?我的产品什么时候才达到既定的质量目标可以发布?我的产品哪里有问题?这些问题在一个具有全球分布式的软件开发模式下显得更加重要。时间差异、文化差异、技能分工不同,如何掌控全局?
信息透明化
Rational Team Concert能够带来最大程度上信息的透明化,用户可以基于个人不同的工作内容和需要订制阅读这些信息,通过Web方式访问个人仪表盘来管理和分类这些不同的内容。
在易用性方面,用户可以随时添加新的Viewlet然后拖拽到不同分类的标签页,实现分类查看;在功能方面,用户可以随时了解到团队开发过程中的各种动态变化:今天开发任务中谁提交了新的代码?一共作了多少次构建?哪些失败哪些成功?到现在为止我们的迭代开发完成了多少?通过制定查询条件(Query),用户可以把自己个性化查询的需要随时呈现在面前。
Rational Team Concert能够带来最大程度上信息的透明化,用户可以基于个人不同的工作内容和需要订制阅读这些信息,通过Web方式访问个人仪表盘来管理和分类这些不同的内容。
在易用性方面,用户可以随时添加新的Viewlet然后拖拽到不同分类的标签页,实现分类查看;在功能方面,用户可以随时了解到团队开发过程中的各种动态变化:今天开发任务中谁提交了新的代码?一共作了多少次构建?哪些失败哪些成功?到现在为止我们的迭代开发完成了多少?通过制定查询条件(Query),用户可以把自己个性化查询的需要随时呈现在面前。
基于Work Item的沟通协作
在基于RTC的协作开发过程中,信息可以通过每个项目中制定的工作项(Work Item)进行及时有效的传递。每个参与项目的开发人员管理人员之间可以随时通过Work Item中的负责人(Owner) 进行任务的再分配,添加注解 (Add Comments),通知新的Owner相关工作内容。在任务发出的同时,新的Owner会收到来自系统的邮件,通知自己成为某件任务的Owner。如果需要其他人对这个问题加以关注,那么把他们变成这个工作项的订阅者(Subscriber)是一个不错的办法。
在传统的工作方式中可能会用一种或多种工具记录要做的事情,然后通过Email的方式与团队成员交互,这无形中为软件开发增加了更多沟通成本。更可怕的是,一旦任务需要交接或在更多不同的人和团队之间交接时,我们甚至不知道他们之间讨论过什么、得出了什么结论、有哪些文档曾经可以作为参照。
在过去多年的软件开发中,尤其是在大规模的跨地域的软件开发中,我看到众多的开发团队为了沟通忙得昏天黑地。可想而知,解决这样的沟通问题是多么的重要。
而通过Work Item 的机制,开发人员完全可以将全部的需求、代码开发、测试等内容作为工作项的一部分进行统一管理。使用Email、即时通信 (Sametime)、Wiki、任务提醒等手段,使得团队中的沟通围绕这些核心工作项随时发生。
在软件开发这个极其动态的过程中,很难在一开始把项目计划的一步到位,那么在变化中随时建立新任务和任务之间彼此的联系就直接影响团队的开发效率,基于Work Item 的协作机制,所有人对当前的工作项都可以一目了然,还可以通过建立自己的工作项和其他工作项之间的关系来反映任务间的相关相似性和重复性。
在基于RTC的协作开发过程中,信息可以通过每个项目中制定的工作项(Work Item)进行及时有效的传递。每个参与项目的开发人员管理人员之间可以随时通过Work Item中的负责人(Owner) 进行任务的再分配,添加注解 (Add Comments),通知新的Owner相关工作内容。在任务发出的同时,新的Owner会收到来自系统的邮件,通知自己成为某件任务的Owner。如果需要其他人对这个问题加以关注,那么把他们变成这个工作项的订阅者(Subscriber)是一个不错的办法。
在传统的工作方式中可能会用一种或多种工具记录要做的事情,然后通过Email的方式与团队成员交互,这无形中为软件开发增加了更多沟通成本。更可怕的是,一旦任务需要交接或在更多不同的人和团队之间交接时,我们甚至不知道他们之间讨论过什么、得出了什么结论、有哪些文档曾经可以作为参照。
在过去多年的软件开发中,尤其是在大规模的跨地域的软件开发中,我看到众多的开发团队为了沟通忙得昏天黑地。可想而知,解决这样的沟通问题是多么的重要。
而通过Work Item 的机制,开发人员完全可以将全部的需求、代码开发、测试等内容作为工作项的一部分进行统一管理。使用Email、即时通信 (Sametime)、Wiki、任务提醒等手段,使得团队中的沟通围绕这些核心工作项随时发生。
在软件开发这个极其动态的过程中,很难在一开始把项目计划的一步到位,那么在变化中随时建立新任务和任务之间彼此的联系就直接影响团队的开发效率,基于Work Item 的协作机制,所有人对当前的工作项都可以一目了然,还可以通过建立自己的工作项和其他工作项之间的关系来反映任务间的相关相似性和重复性。
过程方法论的最佳实践
对软件开发的过程管理而言,最大的挑战在于如何使业界先进的方法论和自身的成熟度和现有工具完美结合。Team Concert 在这里提供了良好的实践,包括各种敏捷开发实践的过程模板,例如Eclipse Way、OpenUP 和Scrum。既可以让开发团队基于最基本的敏捷模式开始短迭代的计划和开发,还可以支持自订制。例如,有哪些新的开发角色(Roles)可以在具备何种授权后(Permissions) 进行何种特定的操作(Operations)。
一旦订制完成,流程在整个团队中就会变得透明,每个开发者在开发过程中会时时被系统自动提醒下一步要做的事情应该如何继续。
例如,一旦程序员提交的代码决定需要被审核,在代码被试图直接提交到相应过程中的时候,系统会自动提示用户此代码未被审核,用户便可以马上提交审核,此时过程中参与审核的开发人员会收到通知开始进行审核。整个过程高度透明并且自动化地在系统中运行,无须任何额外的文档和沟通工具的开销。
对软件开发的过程管理而言,最大的挑战在于如何使业界先进的方法论和自身的成熟度和现有工具完美结合。Team Concert 在这里提供了良好的实践,包括各种敏捷开发实践的过程模板,例如Eclipse Way、OpenUP 和Scrum。既可以让开发团队基于最基本的敏捷模式开始短迭代的计划和开发,还可以支持自订制。例如,有哪些新的开发角色(Roles)可以在具备何种授权后(Permissions) 进行何种特定的操作(Operations)。
一旦订制完成,流程在整个团队中就会变得透明,每个开发者在开发过程中会时时被系统自动提醒下一步要做的事情应该如何继续。
例如,一旦程序员提交的代码决定需要被审核,在代码被试图直接提交到相应过程中的时候,系统会自动提示用户此代码未被审核,用户便可以马上提交审核,此时过程中参与审核的开发人员会收到通知开始进行审核。整个过程高度透明并且自动化地在系统中运行,无须任何额外的文档和沟通工具的开销。
数据报告支持下的管理
Rational Team Concert 提供的各种报告对管理人员非常重要。管理首先来自于对项目各个阶段各种活动状况数据的实时收集和掌握,强大的软件管理来自于对过程内外历史数据的跟踪和挖掘,所以Team Concert提供了对数据仓库的强大支持。数据仓库独立于Team Concert 的数据库,存储开发过程的历史数据。随着时间的推移,当前的开发数据不断变成数据仓库中的历史数据,成为决策的依据。
我们可能会关心在过去的产品版本中有多少缺陷?平均的修复速度是多少?基于现在已经发现的缺陷我们应当计划多少时间去修复?我的团队工作效率如何?强大的管理在于这些经验的不断积累,因此Team Concert中提供的报告模板能帮助用户更快捷更专业的开始管理。最基本的报告视图包括每日构建的基本状况、源代码中各个部件的分析数据、代码量大小和其在不同部件中的分布、工作项的各种分类视图等等。
有多少开发任务,每个团队成员负责哪部分,优先级怎样? 有多少重要问题成为开发的瓶颈? 缺陷的发现率怎样? 所有这些数据,对决策者起着至关重要的作用。项目的成功与否,在于我们及时调动了资源、合理调整了任务的优先级、把具备关键技能的开发者及时调配到关键任务上,使得瓶颈问题迎刃而解。
合理灵活的报告方式,分析和易于监测是Team Concert 提供的强大功能,但更是软件企业从作坊式生产到逐步向有规模有成熟度软件企业过渡的关键。
Rational Team Concert 提供的各种报告对管理人员非常重要。管理首先来自于对项目各个阶段各种活动状况数据的实时收集和掌握,强大的软件管理来自于对过程内外历史数据的跟踪和挖掘,所以Team Concert提供了对数据仓库的强大支持。数据仓库独立于Team Concert 的数据库,存储开发过程的历史数据。随着时间的推移,当前的开发数据不断变成数据仓库中的历史数据,成为决策的依据。
我们可能会关心在过去的产品版本中有多少缺陷?平均的修复速度是多少?基于现在已经发现的缺陷我们应当计划多少时间去修复?我的团队工作效率如何?强大的管理在于这些经验的不断积累,因此Team Concert中提供的报告模板能帮助用户更快捷更专业的开始管理。最基本的报告视图包括每日构建的基本状况、源代码中各个部件的分析数据、代码量大小和其在不同部件中的分布、工作项的各种分类视图等等。
有多少开发任务,每个团队成员负责哪部分,优先级怎样? 有多少重要问题成为开发的瓶颈? 缺陷的发现率怎样? 所有这些数据,对决策者起着至关重要的作用。项目的成功与否,在于我们及时调动了资源、合理调整了任务的优先级、把具备关键技能的开发者及时调配到关键任务上,使得瓶颈问题迎刃而解。
合理灵活的报告方式,分析和易于监测是Team Concert 提供的强大功能,但更是软件企业从作坊式生产到逐步向有规模有成熟度软件企业过渡的关键。
左右逢源的客户端支持
Web 2.0 的特性在Rational Team Concert 中得到了很好的体现。Team Concert 提供的Web客户端大量基于Ajax 技术,在今年后续即将发布的产品中用户还将看到更有趣、更灵活的界面设计。
另外,产品构架中提供了基于REST 为框架的接口模式,为Web服务之间的开放的数据交换提供了最大程度的保障, 使未来构建基于Jazz 架构上的开放式的软件生命周期服务和无缝集成现有工具及平台成为可能。这是IBM Rational全线产品迎合2.0 时代到来的起点。Rational Team Concert Eclipse 客户端和Web 客户端在软件开发环境中的共存,更让软件开发和管理人员各得其所、融为一体,充分体验软件开发协作之美。
Web 2.0 的特性在Rational Team Concert 中得到了很好的体现。Team Concert 提供的Web客户端大量基于Ajax 技术,在今年后续即将发布的产品中用户还将看到更有趣、更灵活的界面设计。
另外,产品构架中提供了基于REST 为框架的接口模式,为Web服务之间的开放的数据交换提供了最大程度的保障, 使未来构建基于Jazz 架构上的开放式的软件生命周期服务和无缝集成现有工具及平台成为可能。这是IBM Rational全线产品迎合2.0 时代到来的起点。Rational Team Concert Eclipse 客户端和Web 客户端在软件开发环境中的共存,更让软件开发和管理人员各得其所、融为一体,充分体验软件开发协作之美。
(本文来自《程序员》0808期)