11月的时候在csspin2009上的大会发言,主办方给整理的演讲记录,不过不对着PPT,估计很多地方都看不明白,作为自己的一个保存吧。
这几年一直在做这个事情:过程管理的工具,说起来我也算很执着了,不断改进,力争做到最好吧。
======================
支持软件过程改进的工具和实践
中科方德软件有限公司
软件工程工具与服务事业部,总经理 袁峰
2009年11月20日
袁峰:各位下午好!现在时间比较紧张了,所以我也不过多的介绍一些背景。我给大家介绍一下,中科方德我们在这块,有一个事业部,叫做软件工程和工具服务事业部。我们做了一款软件过程管理方面的工具Qone,类似IBM Rational的软工工具套件,但是我们相对来说更便宜,此外,我们也配合工具推出了一系列服务。我今天给大家介绍一下我们过去一年做的工作,可能大家会感兴趣。
我这两天查了一些关键词,我查“软件过程工具”查不到太多东西,我查“CMMI工具”,大家可以看到,这是查询到的一个贴子:我们公司做CMMI,效果不好,流程表面化……流程执行体系不好,没有工具。归纳一下就是CMMI实施效果不理想,缺乏自动化的流程执行体系。
这是另外一个帖子,说了工具的好处,比如说证据留住了,效率提高了等等,包括有度量的自动化。由于有了工具的支持,不需要大家去编数据和文档了。没有加班的现象。而通常的CMMI实施,一般在公司会引起大的轰动。这是他的一个观点。
另外我注意到一个观点,他提到这个工具是自己开发的,软件开发公司嘛,自己开发一个很easy。我总结就是,“没有枪没有炮我们自己造”,实际上是有枪有炮的,IBM的可能是炮,我们中科方德的是枪,我希望是AK47,呵呵。
有人认为工具不一定适用,工具有没有用?这是我在一个软件过程改进的论坛上查的,支持的观点比较多。这些道理比较清楚。也有一个贴子说:都在谈工具的好处,没有人说工具怎么用?给点实质的东西。我归纳一下:工具有适应面;不仅需要工具解决问题,还需要有一整套的解决方案,比如说过程规范。
中科方德我们这个团队做软工,其实是中科院软件所出来的一个团队,我们这么多年一直做这块,说实话也有很多其他的机会,做项目赚点钱,我们还是抵制了诱惑,我今天介绍一下我们的理解和感想。
我的大纲是这样:首先讲一下我自己的理解,简单说一下工具的现状和需求。然后介绍一下我们的工具,也介绍一下工具在我们自己内部的一些使用,工具要和规范结合起来,我也把我们的规范带来了。最后我想我们是乙方,是工具开发厂商,我跳到甲方的角度考虑,如果你想买工具有什么考虑?我们处在你的地位想一想,反过来看我们自己。
首先几个概念。第一现在的过程改进,在中国我们说过程改进就说CMMI,CMMI好像是过程改进的代名词,实际上不是这样的。
我们工具的全称叫做中科方德软件过程管理平台Qone,这个名字比较绕口。我春节看到一本营销的书叫做《定位》,说一个产品的推出,一定要跟人家熟悉的概念关联起来。我举一个例子,我们有一家客户,用了我们的工具,我们过去看,推得很成功,企业搞了很多宣传,我一看宣传材料,把我们工具的名字改一个,叫做CMMI集成平台。我问为什么改一个?客户回答:我们的部门比较多,我跟每一个部门说我们用Qone,大家也不知道Qone干什么的,我说我们用了CMMI集成平台,大家都知道是干什么的了。这对我是一个启发,这是有道理的。
但是反过来说,我们自己开发的初衷是不是要做一个CMMI集成平台?我介绍一下我的理解,不管是CMMI,还是ITIL,ISO9000,不同的模型、方法论,所关注的都是软件开发中一些共通的东西。我的代码需要做管理了,就有管理工具;我要做需求跟踪,需要需求的管理工具;再比如说缺陷管理,风险管理…… 我们认为对这些事情的管理,需要一些工具的支持,同时每个企业、每个团队都应该有自己的一套过程。
每个团队有自己的文化跟人员特点,导致这个过程特定的,是MyProcess,怎么定义这套流程呢?当年没有CMMI,一个较大的团队需不需要管理?微软这么大的团队要不要管理?也是需要的,也许无形中就契合了CMMI的要求。也有可能我们没有过多经验积累,CMMI有很多Best Practices的积累,我们根据这个框架,并结合我们企业的实践,制定我们的Process,反过来是符合这些模型要求的——具体是怎么一个先后关系并不重要。
以我们这个团队为例,我们曾是CMMI四级资质的一个团队(这个级别有一个有效期),我们现在不断做过程改进。我给大家看一眼,我们内部的过程规范,会有一些细节快过一下……
开发一个产品,你自己的产品,一定要自己用得好,才能给别人推,如果自己用不好给别人推就有点过分了。自己的狗食自己吃,我们自己的Qone从01年、02年开始我们一直在使用。Qone一开始是863科研项目的成果,我们不断地改进,我觉得这是我们自己的一个精神。而且我们的过程规范,也是完全和这个工具相结合的。
工具的现状,我们也查了,其实没有一个特别的专门的说是CMMI工具,或者过程管理工具。通常会说,配置管理工具,变更管理工具,缺陷管理工具,需求管理工具等等,有不同的工具。我们这几年在国内接触企业比较多,我们的客户情况比较了解。通常都会已经有一些工具,比如上了CC、CQ,或者已经上了Bugzilla、DOORS,就是这样一些专门的工具。
那么接下来的需求呢?我觉得可能有这样几方面,简单总结一下:
一、有些企业有一些自己特定的管理需求。比方说开发团队人很多,项目混乱,需要建立一个资源池,以及使用项目群进行管理。比方说成本管理等一些特定的管理需求,这是对工具的一个需求。
二、企业上了很多管理工具,各种各样的,有的是做项目管理的,有的是做缺陷、需求等等。但是他们之间的数据没有关联起来,所以是一个个信息孤岛,这些信息的整合能够提升更多价值。我待会儿讲一个具体的例子。
三、很多企业都提出这样一个要求,能不能有一个集成的整合平台?所有事情都在上面做,要让我把数据从这里拷到那里,手工去拷,肯定有很多不一致的问题,应该由工具来做,这是很切实的要求。这也是我们做工具的时候,一个努力和发展的方向。
首先讲一个例子就是需求和任务的关联。在我们的产品里面,有需求管理工具,有点像DOORS,现在被IBM收购的DOORS,但是我们跟DOORS不太一样,DOORS只做需求管理,我们把需求跟任务关联起来。这里给大家看几个例子,有两方面的关联:
一方面,比方说有一种开发模式叫做Requirement Driven Development,先把需求分包,跟着需求进行任务分配或者工作拆分,直接分成我们相关的一些工作安排。当我建立这种跟踪关系的时候,有相关任务数据在里面,对应的实际工作量怎么样?可以去做相关的分析。需求变更的时候,对任务的影响,可以为我的管理提供更多的决策支持。
另外是需求和工作产品的关联,这个是比较通常的,一般都会做。做了以后可以建立变更影响分析。和通常的分析工具不同,我们的工作产品,和配置库做关联,我们有一个接口,CC、CVS、SVN我们都支持。配置的一些变更管理,配置的流程管理和需求之间,需求发生变更,导致配置库里面做控制,这些工作我们都可以做,这是非常有意思的管理上后续可以做的事情。
有一些同行比较了解我们过去的工具,Qone这个工具,有些同行不是很了解,我简单介绍一下。中科方德这个公司时间不长,06年开始注册,但是工具的时间很长。因为软件所一个团队一直在做研究,目前有300多家用户,我们这个团队,不是讲我们公司,是讲我们软工事业部团队本身,现在有83人,我们不干别的,只干这个事情。应该是国内第二大团队,仅次于IBM。我知道现在国内的软件市场,实际上是很艰难的,我自己这两年也是受了很多的煎熬。
现在这个团队是我们一个很大的财富,分布在各地的技术支持有十多个人。还有兼职的,这些是能够给我们客户提供的。而且我们这样一个团队不断开发一些新的东西,我觉得这些是我们客户可以跟着我们进一步受益的。这是对我们历史一个简单的回顾。
这页片子是我们的一个大概的体系结构。核心包括了几个主要的模块,比如说项目管理、过程管理、度量分析、需求、测试等等。
那么外围,很多企业过去已经有了相关的工具,我们保护过去的资产,所以我们要和原有其他的工具做一个集成,现在集成的工具有CC、CVS、SVN、CQ、Project等等。包括我们数据也提供接口,我们有一个企业客户,问我们说,现在要求的数据太多,老让你们研发不好意思,能不能提供API给我们,我们自己做报表?我们说可以,我们很愿意,我们愿意让我们整个系统结构成为一个开放的,可以让大家自己去定制自己的需求,然后在上面工作。
我们的一个想法是,这个工具是一个灵活的,不依赖于,不局限于某一个方法或者理论,我可以符合它,但不是约束于CMMI,我可以符合ISO9000,PMBOK,GJB。
我们有这么一些主要的模块,有些是必选的,有些是可选的一些模块,比如说质量管理、过程管理、度量管理都是可以选择的。还有需求、社区,我们实际上是面向这个开发团队,需要的一些支撑开发交流的工具,这些工具都是我们现在和未来要开发的范围,细节我就不做太多介绍了。
这里可以看一下,像工作台,个人工作台,短信发送,有些地方是有这种应用需求的。我们在高铁大项目,科技部和铁道部里面同样有一个需求,就是我经常给各个总师发短信息开会,你们这个平台要支持,这个是客户和领导的需求,我们就支持。所以有一些实用的小功能。
项目管理这块我们做得比较细。从立项之后,项目所有的这些计划、拆分、任务报告等等,工作产品的管理、配置等等,全部包括在里面的。包括一些评审、审计这些都是对应我们过程改进做了一些功能。我们在座同行一看这个就比较了解了。度量分析这块是我们比较强大的一块,覆盖了95个指标。还有数据中心,刚才我举例子说的需求管理模块,还有一些其他的比如系统管理模块。
今天时间不多,我简单给大家过几个截图,这是我们需求管理模块的一个图,包括需求跟任务关联,变更的审批流程,可以自己定义,你希望你企业的需求,变更的时候有哪些角色进行审批,流程是什么样的,可以自己灵活定义。角色也是可以定义的,你可以自己定义,每个角色在系统里面的权限。
工作流的自定义,比如说我有一个会签流程,有一个请假单,等领导批,都可以通过邮件来支持,这块也是灵活开放的。高层的视图,高层关心的数据,通过dashboard做一些整合。由于我们现在有一些客户对安全的要求越来越多,做了一些权限变更的时候,留下日志,不能随便获得权限。
个人视图,过去有客户提到,你们的产品好是好,就是太大了,功能太多,我找不到。因为这个需求,一方面我们改进易用性,另外一方面我们把所有菜单配置权限放开,界面自定义也都做了,所有的首页界面可以自己界定。
我们的数据中心,你对哪些数据感兴趣?包括我刚才说的自定义菜单,各种配置管理工具、测试工具、需求管理工具等等,我们现在都支持这样的整合平台,包括一些数据灵活管理,要导出、出报告等等。
因为EPG很关心,我的过程要制定,要在企业、团队统一的发布,我们有发布的平台。另外还有评价,你可以打分,类似于评价体系。这是我们大概过一下,等会儿我有一个小广告。
IBM刚才发言的老总,IBM有研究院,对于国内大多数企业来说,可能没有这样的条件。但是对于我们来说,好一点。因为我们本身从软件所出来的,软件所本身是一个大研究院,我们还有一个研发团队在研究所里面为我们提供源源不断的支持。这里举一个例子,这是一篇最近要答辩的博士论文的题目:需求演化影响分析框架及相关技术研究。这是做什么的?我可以简单介绍一下,需求管理,为什么很多企业用不好?因为每一项跟每一项之间建立关联,手工建立关联,一旦变更的时候重新建立关联,虽然带来可追溯性,但是工作量太大了,导致很难用好。如果我们可以自动建立这些需求跟踪关系,不要做到全自动,辅助,我想价值也是很大的。我们所有的研究工作和我们实践结合的,所以在我们平台上做了一个实现,就是自动建立需求跟踪关系。这只是一个例子,是我们在研究的一个例子。
我们团队内部自己用的Qone,是不公开对外的,因为我们自己在上面开发一些小功能,所以不到我们产品序列里面,未来可能进入我们产品序列里面,这是我们做的一些尝试,希望跟大家一起交流。
因为今天时间很有限,我们在下周五在软件所办一个用户大会,欢迎大家去听,那个时候介绍更多。门外有展台,有兴趣可以去了解。
刚才谢耘老总也提到,在敏捷和规范中找一个折中点,一定要走中庸之道。我们做了一些尝试,我们自己的实践,可以给大家简单看一下,我们自己定的很简单,这是一些大概的过程,这么看比较简单。立项有什么流程?计划有什么流程?执行的过程中主要是报告体系……这是我们内部的模板,作为一个新的项目管理人员,可以在这里得到所有的信息。
时间到了,我说快一点,大家感兴趣的话我们可以下来详细交流。我是感觉每一个团队应该有这么一个规范,相关的东西应该很容易得到,同时用很好操作的方式告诉大家,这是我们的一个经验。
我刚才说了从乙方的角度来考虑,从甲方的角度来考虑,工具采购的时候选什么?刚才有人说自己是一个软件公司,自己开发得了,这是一种勇敢者的游戏,比较冒险。除非你希望一个团队长期专注在这一块。为什么?我这里分了一个利和弊,你自己开发有好处:完全符合自己要求。但是坏处你是不是真的打算长期做这么一个团队。比如说你的管理方式是不是未来不改变了?改了以后你的工具要不要跟着改?比如新的浏览器出来要不要跟进?等等……
我们中科方德,我们的工具是值得信赖的。我们在用户那里广泛使用,多年使用可以让大家放心,你不是第一个吃螃蟹的。我们在军方,通信金融交通软件等,各个关键行业的一些代表行业,都得到很多的应用。
另外我们现在已经建立了一个覆盖全国的分支机构,我们在各地都有一些技术支持,实际上我们是觉得一定要把服务放在第一位,如果有机会的话,我也希望可以给大家提供良好的服务。谢谢大家!
分享到:
相关推荐
在csspin-master文件夹中,可能包含以下内容: 1. `src` 目录:源代码文件,可能包括CSS样式表、JavaScript脚本以及可能的图像资源。 2. `dist` 目录:编译后的、可供生产的代码,可以直接引入到项目中使用。 3. `...
在`webkul-csspin-d429a0f`这个压缩包中,可能包含以下文件结构: - `css/`:存放所有CSS样式文件,包括预设的加载器样式和可自定义的变量。 - `js/`:如果有的话,可能包含用于控制加载器显示的JavaScript文件。 -...
【前端开发者工具、库和资源】是提升开发效率的关键,这篇文章汇总了67个实用的前端工具和资源,旨在帮助开发者优化工作流程,减少开发时间。以下是对这些工具和库的详细解读: **JavaScript库** 1. **Particles....
根据提供的文件信息,该文档内容涉及关于Lattice FPGA X03L系列...对于任何有志于从事硬件设计和FPGA开发的初学者,这是一个很好的起点,通过这样的开发板和原理图的实践学习,可以迅速提高电路设计和硬件调试的能力。
1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。
# 基于Qt框架的智能家居管理系统 ## 项目简介 本项目是一个基于Qt框架开发的智能家居管理系统,旨在提供一个集成的平台来监控和管理家庭环境中的各种传感器数据,如温度、湿度、烟雾状态、红外状态等。系统通过图形界面实时展示数据,并提供警报功能以应对异常情况。 ## 项目的主要特性和功能 1. 实时数据监控通过Qt和Qwt库创建的曲线图,实时显示温度和湿度数据。 2. 多传感器支持支持温度、湿度、烟雾、红外等多种传感器的监控。 3. 警报系统当传感器数据超过设定阈值时,系统会触发警报,并通过界面显示警告信息。 4. 用户交互提供滑动条和复选框,允许用户调整警报阈值或关闭警报。 5. 网络通信通过TCP套接字与服务器通信,获取和发送传感器数据及网络拓扑信息。 6. 蓝牙数据读取支持通过蓝牙读取传感器数据并更新界面显示。 ## 安装使用步骤 1. 环境准备 确保已安装Qt开发环境。 安装Qwt库以支持曲线图功能。
1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。
基于springboot高性能计算中心的高性能集群共享平台源码数据库文档.zip
# 基于JavaFX的图片管理系统 ## 项目简介 本项目是一个基于JavaFX的图片管理系统,旨在提供一个用户友好的界面来管理和浏览图片。系统支持图片的预览、重命名、删除、复制、粘贴等操作,并提供了多种排序和展示方式。 ## 项目的主要特性和功能 1. 预览窗口 目录树展示 缩略图预览 单选、多选(Ctrl+左键)、框选功能 图片信息显示(如文件名、大小、最后修改时间等) 2. 右键菜单 复制粘贴图片 单选和多选重命名 删除图片 3. 展示窗口 图片放大缩小 左右切换图片 幻灯片播放功能 4. 排序功能 按文件名排序 按文件大小排序 按最后修改时间排序 5. 其他功能 图片信息封装(ImageBean) 文件树节点管理(FileTreeItem)
# 基于Windows窗体的披萨店厨房管理系统 ## 项目简介 这是一个基于Windows窗体的应用程序,主要用于披萨店的厨房管理。该系统通过WebSocket与服务器进行实时通信,显示从服务器接收到的订单信息。用户界面简洁明了,易于操作。 ## 项目的主要特性和功能 1. 实时通信: 通过WebSocket与服务器进行实时数据交换,获取订单信息。 2. 订单显示: 在窗体上实时显示订单信息,包括订单号和菜品等。 3. 界面简洁: 用户界面设计简洁,易于操作。 4. 定时刷新: 定时器用于定时从服务器获取消息,确保数据的实时性。 5. 错误处理: 在连接过程中遇到技术问题时会显示错误消息框。 6. 退出功能: 提供退出按钮,点击后程序会退出。 ## 安装和使用步骤 1. 下载项目源码文件: 从相关仓库或网站下载此项目的源码文件。 2. 准备开发环境: 确保你的开发环境已经安装了必要的软件和工具,如Visual Studio等。
基于springboot高校创新创业课程体系源码数据库文档.zip
基于springboot汽车美容与保养网站源码数据库文档.zip
基于springboot校友录管理系统源码数据库文档.zip
Cocos2d-x教程视频使用Eclipse在Ubuntu下搭建Cocos2d-x 3集成开发环境提取方式是百度网盘分享地址
该资源内项目源码是个人的课程设计、毕业设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过严格测试运行成功才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。
基于springboot服装生产管理信息系统源码数据库文档.zip
# 基于Spring Boot和Redis的高并发秒杀系统 ## 项目简介 本项目是一个基于Spring Boot框架开发的高并发限时抢购秒杀系统。系统实现了基本的登录、查看商品列表、秒杀、下单等功能,并针对高并发场景进行了优化,包括系统缓存、降级和限流等措施。通过Redis、RabbitMQ等中间件技术,确保系统在高并发情况下的稳定性和性能。 ## 项目的主要特性和功能 ### 核心功能 用户登录用户可以通过手机号和密码进行登录,系统支持两次MD5加密确保密码安全。 商品列表展示用户可以查看所有商品的列表,包括商品的详细信息、库存数量、秒杀价格等。 商品详情展示用户可以查看单个商品的详细信息,包括秒杀状态和剩余时间。 秒杀下单用户可以参与秒杀活动,系统通过本地标记、Redis预处理、RabbitMQ异步下单等技术确保高并发下的系统稳定。 订单详情用户可以查看自己的订单详情,包括订单状态、商品信息等。 ### 技术优化
基于springboot校园论坛系统源码数据库文档.zip
飞利浦CT机自动推送配置
本教程介绍了 PHP 的基础语法、函数与面向对象编程、文件操作、以及与 MySQL 的交互。通过实例与练习,帮助您快速入门 PHP 开发,为动态网站和 Web 应用打下坚实基础。