高质量软件,从点点滴滴做起

从过程的连续光谱来看,我们大概处于中间位置偏左的位置,更偏向一个轻量级团队的敏捷过程,但是也包含计划驱动过程中的因素。我们的小组是自管理的,没有专门的QA和SA,我们自己去想出最好的工作方法,但是在执行中我们的计划还是相对确定的,每个季度做什么都会有一个比较明确的计划和里程碑,并且对问题领域都相对熟悉;我们的过程是迭代式,一般一个季度至少会交付一个稳定可执行的新版本,我们在文档上做的不是特别好,很多都依赖于团队成员之间的“隐性知识”;同时我们对问题的改进基本还是有一个流程和机制,会持续的跟踪问题并改进。

下面分阶段总结下我们的一些实践经验。

一、分析和设计阶段

1、在这个阶段,我们会明确准备做什么,界定问题的边界,对功能进行一个取舍。一般在一个版本完成之后会马上开始这个过程。大家都想一想接下来做什么,经过几轮PK后确定重要紧急的事情优先做,定义下一个版本的功能列表

2、功能列表出来之后,我们会针对每个功能提出各种方案做比较,在此期间,我们会邀请更大团队范围内的专家参与方案和设计的评审,剔除不切实际以及明显有缺陷的方案,针对一些风险点提出改进建议和防范措施。

3、在设计方案出来之后,我们会分配功能的开发任务,根据每个开发人员熟悉的领域,自主领取或者被动分配任务。这个过程不是一成不变的,考虑到团队内部知识交流的必要性,也可能让不熟悉某个领域的人去做他不熟悉的事情。

二、构造阶段

1、整个系统已经有一个关键的抽象机制,针对我们的服务器有一个核心的pipeline机制,针对我们的客户端,有一个核心的发送消息流程。将所有的功能模块组织在这个关键机制周围,形成一个强有力的整体。

2、开发完成不仅仅意味着功能代码的完成,还包括测试代码:单元测试和集成测试。如果你没办法做到全面的覆盖,那就要求必须覆盖运行的关键路径和极端场景。

3、单元测试我们使用JUnit,适当使用Mock可以简化测试。但是Mock对象如果太多,也许会失去测试的价值,这里有一个权衡。

4、在整个构造过程中,我们贯彻每日构建、持续集成的原则。使用hudson做持续集成,时刻关注测试状况,有问题及时反馈给开发者。

5、有一个功能强大的集成测试框架,模拟实际环境做各种测试,它的目的是尽量在接近真实状况下去执行系统并尽早暴露问题。

6、每个功能完成之后,立即发起review,请同事和你一起复审代码。复审代码的作用不仅是发现bug,改良设计,也是一个知识交流的最佳途径。我们经常能通过代码审查发现一些设计上的缺陷,以及功能实现上的BUG。我们团队应该说是非常看重代码审查的作用。

7、使用findbugs和clover等工具,分析代码质量并改进。

8、在发布之前,做一次集中的代码review,每个人介绍下自己的功能实现代码和设计,一般我们会申请一个会议室和投影仪,并邀请团队之外的人加入review。

9、在发布之前,有一个系统的压测流程,针对每个版本更新压测方案,并预留一到两周的时间做性能压测。压测不仅能尽早暴露性能隐患,还可以发现系统在特殊情况下的一些BUG。压测除了关注系统的吞吐量、GC情况之外,还应该关注硬件的性能指标。

三、发布和总结
1、发布之前,最好让使用我们系统的用户使用新版本做一个回归测试,一方面是测试兼容性,一方面也可以及早发现BUG。

2、我们的发布流程:线下、beta、线上。每个阶段通常都持续一到两周,才会进行到下一阶段。并且是从相对不重要的系统,到关键系统的顺序进行发布。

3、发布之后,通过日志、运行时监控、用户反馈等方式收集系统运行状况,发现BUG,修正BUG,补充测试,测试通过,重新发布。

4、每个版本发布后,需要总结下本次发布过程中遇到的所有BUG以及经验教训,并提出可能的改进建议。

5、需要一个跟踪线上问题的BUG跟踪系统,可以用JIRA之类的trace软件。跟踪不仅是记录,最好列出解决的时间点,在哪个版本确定解决,甚至确定交给谁去解决,并持续跟进。

本文来源于"阿里中间件团队播客",原文发表时间"  2010-12-30"

时间: 2024-11-10 07:10:11

高质量软件,从点点滴滴做起的相关文章

阿里云持续交付-快速可靠地交付高质量软件

文/戴蒙 拥有3万多人的阿里巴巴,线上有上万个应用,上亿的用户即时在线,每天有几百个应用在线上更新,就像在时速200公里的高速公路上横穿马路维修栅栏一样,时刻保持着心惊胆战,而保护这个过程的体系就是阿里巴巴持续交付工具与实践. 现代开发企业中如何做好持续交付是一件异常重要的事情,在互联网企业中更是如此.而阿里巴巴在这么多年的研发管理基础上,对如何做好持续交付提出了一套全新的模型与实践. 阿里技术保障部产品专家戴蒙在"2016云栖大会上海峰会"专场<"互联网+"

评审技术在高质量软件开发中的应用分析(下)

接评审技术在高质量软件开发中的应用分析(上) 三.评审在高质量软件开发的实际应用 3.1 高质量软件开发项目介绍 高质量软件,如电信软件.金融证券类软件等,有较严格的要求:可用性要求非常高,并且不会因为系统维护和扩展而带来运营中断:支持使用现有管理工具和标准进行远程管理:能够提供更出色的性能以及运营在高可用性集群上的能力,减少任何单点的软硬件失效现象.五个九(99.999%)意味着一个系统的宕机时间一年不超过5分26秒.因此高质量软件项目是一种对可用性.可靠性.稳定性要求非常高的软件项目,要求软

百度百科高质量外链怎么做

摘要: 大家好,我是孟天林,今天在这里和大家分享一下百度百科高质量外链发布,一直以来,我们做外链是件很头痛的事情,我们每天发布的外链 要嘛就是被删除,要嘛就是被收录并没有带 大家好,我是孟天林,今天在这里和大家分享一下百度百科高质量外链发布,一直以来,我们做外链是件很头痛的事情,我们每天发布的外链 要嘛就是被删除,要嘛就是被收录并没有带来一定的权重.不仅耗费很多时间,同时也做了很多无用的工作. 对于百度百科这样高传递权重的平台,是值得我们去做网站外链的,百度百科作为百度旗下的中国第一个百科全书,

李维 《高质量软件开发》

李维 <高质量软件开发> 下载

什么才是高质量外链?高质量外链如何做

我做网页制作教程行业的网站建设开始也是这样的态度,也坚持在内容方面建设了好长一段时间,但是网站毫无起色.实践给了我经验,所以外链建设又重新被我重视了. 我做网页制作教程行业的网站建设一直坚持一个道理,不管人家怎么说,我一般都会自己去实践一轮,在实践中我可以总结经验,调整以后的工作方向.所以在我的实践证明,外链的建设对网站的帮助是非常大的,像我们从事的网页制作教程网站的优化,又是企业站点,有时候外链就完全觉得了排名. 人有好坏之分,外链也有好坏之分,大量的垃圾外链建设对网站的伤害是非常大的.我的网

如何用正确的方法写出高质量软件的75条体会

1. 你们的项目组使用源代码管理工具了么? MVM:应该用.VSS.CVS.PVCS.ClearCase.CCC/Harvest.FireFly都可以.我的选择是VSS. 2. 你们的项目组使用缺陷管理系统了么? MVM:应该用.ClearQuest太复杂,我的推荐是BugZilla. 3. 你们的测试组还在用Word写测试用例么? MVM:不要用Word写测试用例(Test Case).应该用一个专门的系统,可以是Test Manager,也可以是自己开发一个ASP.NET的小网站.主要目的是

高质量外链对关键词排名的影响

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 今天笔者以亲身经历来谈谈高质量外链对关键词排名的影响. 笔者有一个小站,是路由器设置网,之前一直都坚持原创文章和坚持高质量外链,从正式更新到现在有一个多月时间了,主关键词有的已经进了第二页,比如192.168.1.1路由器设置这个关键词.现在百度的算法对关键词排名有了更高的要求,首先是文章的原创性,其次是高质量的外链,并且更加注重了文章的原创

如何打造高质量的外链 什么样的外链是高质量

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 自从百度官方的站长平台Lee发布谈外链作弊和什么是无效外链之后,大家对于如何建设高效的外链都摸不着头脑,甚至连a5站长论坛的签名也取消了,这更是让很多人费解.业内人士猜测,百度此次的动作其影响力也不会比绿波算法和6.28事件小. 事实是否如此呢?根据笔者的了解,a5取消了签名的目的主要是为以后的发展做考虑,因为每天有很多人在论坛里面灌水,都发

SEO技巧学习:如何做最效率的高质量外链

首先,要明白做外链的目的是什么,因为每个外链店都相当于一个投票指向;因此外链需不需要做?答案是:肯定需要做.因为做的有效外链越多,那么,网站得到的投票指向也越多,百度就会认为这个被指向的网站有价值.但是,需要做也并不代表就是要乱做,也并不代表数量越多越好;(当然,如果能保持高质量的情况下数量多也是好的.但是,事实上呢?有多少人能做到都是高质量的外链了?)所有的人都以为自己是在做SEO,而实质上呢?又有多少人的网站因此被K了?而这些,大多却都是因为每天发的大量的垃圾外链导致;而不少的人还惺惺地说"