Jazz让软件交付变得更为透明

孙振方是北京天宇郎通通信有限公司的配置管理主管,他在软件设计研发和软件配置管理方面有着七年的经验,也为很多大型企业成功设计了自动构建系统。在他看来,构建管理的重要性至少占到配置管理的1/3,而在实际的构建过程中,却存在着很多的问题:没有一个协作的平台显示构建的变化状态,每个构建机器上的构建日志无法统一,开发人员需要排队领取构建资源,而且在以前,他们需要单独的团队来开发软件构建的管理工具,造成人员的极大浪费。

肖勇是北京恒讯时代信息技术有限公司高级咨询顾问,在系统集成分析和系统设计方面有着丰富的经验,就他过去的从业经验而言,很多软件开发的失败一方面是因为开发者没有办法统一、协同地创建并管理软件分析设计工作,另一方面,是由于大量的开发人员不是很了解架构背后的商业点,这让他们在开发过程中不能很好地维系架构,不能将架构很好地映射到开发之中。

李璐是IBM的软件开发经理,在过去开发和测试的职业生涯中让她头痛的事情是无法设计一套适合项目的开发流程,让管理者能够根据实际的项目开发过程和进度加入或减少一些流程。另一方面,由于项目开发的规模较大,作为项目管理者,她无法了解每个人的具体工作情况,了解哪些资源还可以利用,还有哪些工作是可以改进,并且需要改进的。

他们所谈到或碰到的问题并不是个案,有很多与他们从事相同工作的人也有着这样的困惑。软件开发过程的不透明、团队协作效率较低,造成了客户对交付的软件应用不满意。IBM公布的数据显示,在全球范围内,只有37%的用户对软件应用是满意的,只有42%的客户对软件交付的质量是满意的,而在中国,这个数据还要低一些。简单地说,就是大部分客户对开发的质量、项目的执行和开发速度的需求一直在改变,而目前所交付的项目能够使客户满意的不到一半。

随着软件交付由最初的个人操作系统作业,到小型局域网,到目前的Web2.0技术,客户对软件交付的要求也越来越高,包括提供可用性,提高团队效率,改进产品生命周期和可跟踪性,减少总体拥有的成本和对兼容性的支持等等。在这样的情况下,客户对于软件开发协作平台的需求是非常迫切的。也正是在这样的背景下,IBM推出了基于Jazz平台的产品,希望能够通过这个开源的产品,来改善软件交付的质量和应用。

协作构建软件

目前的软件开发规模很大,动辄数千人,甚至在某些时候是一个全球分布式的开发,大家可能不在同一个时区,语言也多样,那么如何保持开发者互通信息?如何知道每个人在项目里是什么角色,能在什么时候完成什么工作?开发者之间通过什么方式进行协作,能保证在你完成了你该完成的工作以后,别人完成他自己的工作,最后所有人的任务叠加在一起,顺利地完成项目?这些都要求团队成员之间有很好的协作。

而在Jazz平台上,通过内部即时通信工具和电子邮件,团队成员可以进行交流。团队成员在自动登录时可以看见登录成员,并自动获得影响其自身工作内容的变更,了解其他人工作的完成情况,让整个团队直接在基于工作内容的上下文下直接协作。

另外,就是工作任务动态分配,让一个庞大的群体以一种有序的方式来提供一份高质量的代码。在过去,有一些开发工具能够让开发者了解开发任务分成几大部分,各大部分有多少任务,但这样的工具没有提供开发者协作功能,让开发者及时了解到每个人的工作状态是什么。毕竟,捕捉静态的人在开发工作中的信息是很容易的,但是要捕捉在一个动态的开发过程中人的变化就不容易了,而这正是开发者在基于Jazz平台进行开发工作的过程中能得到的最大的益处。包括项目的管理层,也可以在Jazz平台上看到项目进展到什么程度、出了什么问题。对于用户来说,也可以及时看到当需求发生变化时,开发人员的代码和测试是如何随之改变的。

流程自动化和透明化

作为一个开发经理,一部分最重要的职责的一部分就是每天保证能够了解其团队的每一个人在做什么,每一件事情如何进行;需求在哪儿,客户是谁,需求以何种形式交付到系统里,根据这样的需求又应该产生哪些文档,开发进程如何满足这些需求;每日构建的状况到底如何,有多少成功的构建,有多少失败的构建?基于这些构建的测试的曲线是怎样的,如何通过各种各样的报表能汇总出这结果,迅速地传达给整个产品管理的团队,并且对这样的进展做出及时的反馈。

在开发的每个阶段都有很多的需求一直在变化,把整个软件开发生命周期各种不同的情况串联在一起,包括做一些配置管理,让参与者的工作流程更透明、更自动化,是每个开发团队都需要的。

在Jazz平台上开发软件,可以定义整个项目的名称、项目描述,并管理组员,这可以通过加电子邮件的方式,也可以通过定义整个项目人员的角色以及限制他们的操作权限来进行管理。比如,可以对一些审批人员进行限制,他们可能只有审批代码的权限,但没有更改代码的权限,包括测试团队,可以根据不同的需求增加角色,并且给每个角色赋予一定的权限。

同样,在团队任务中,还可以做很多基于模板的定义。在创建整个项目的时候,你可以选择已经内置打包的各种模板,同时也可以在团队开发过程中根据自己的经验去定制或修改模板作为整个团队的模板去使用。这就体现出整个流程和过程的透明化

而在工作过程中,开发者可以对类型项目进行定义,比如把一些工作项目定义成开发团队的,有的定义成测试团队的,也有的是属于需求团队的。同时也可以定义出完成的时间、周期。

灵活的过程定义

在软件构建中,没有严格的流程对项目完成肯定是不利的,那么用一套非常规范的流程来控制构建,是不是就能有很好的效果?

通过实践可以看出,用规范化的流程来控制开发并不能取得好的结果。开发不仅有大项目,同样也有小项目,在实际的项目中,如果按照固定的开发流程来做,没办法定义那么多人,也没有办法定义到每个人具体的工作,同时开发工作也会非常没有效率,因为本来一个人可以干10件事,如果按照这样来定义,他可能只能干一件事。这就是一个管理流程过于复杂的问题。

而作为管理者,需要知道自己的流程是复杂的还是简单的,管理者应有办法能够更灵活地按照实际情况来定制一套适用的开发流程,让每个开发者以自由的方式参与这个协作,但又在一定程度上保证管理的效率。管理者应在一定程度上可以授权一些人去管理一个子过程,而自己又可以减掉一些流程,加入一些由于开发过程或难度变更而引入的新流程。这是流程灵活的需要

而在Jazz平台上,开发团队可以通过不同的项目规模来进行流程的制定。企业级的客户,比如摩托罗拉、诺基亚,都有自己的规定和管理,他们也可以通过Jazz的方式来界定自己的流程、模板库。从最基本的个性化制定,到大型企业的制定,在Jazz平台上都可以实现。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章