`
bluepopopo
  • 浏览: 91632 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

目前的团队开发流程

阅读更多
我所在的团队是以二次开发和维护一套大型件产品为主。不谈项目与产品的区别,只说目前的开发流程。看看大家对这种开发方式有什么建议。

1.产品有多个版本,以不同的分支并行开发。处于开发阶段的一般都是最高版本。每当发布小版本,则该小版本所有的defect item 都需要在高版本中拷贝一份(譬如clearquest clone),以便高版本中也进行修改。这样使得修正过后的代码与高版本branch同步,同时意味着高版本也修正了这些defect. 当然需要重新在高版本中再进行测试和验证。

2.因为产品有很多用户,所以很多时候需要考虑的是向后兼容性,而不是发现个defect则不管三七二十一修正了是。如果改动的影响较大,则考虑将该defect推迟至最高版本修复。至于目前,尽量让客户接受以变通方式来绕过这个defect.

3.针对每一个记录在bug tracking系统的defect,在提交变更代码之前需要在team内部做一次review。仿照PSP(Personal Software Process)的方式,建立了review checklist.譬如有一项就是,该defect 是否真的需要在当前版本 fix.

4.每一次的版本发布,需要整理所有已修复的defect,然后基于time line挑选出最紧急和必要的项。QA也只会去测试包含在该发行版的defect, 唔,回归测试也是必需的。

5.在产品发布后,记录信息以供将来参考和回顾。如defect rate, productivity, good practice.

很明显客户与管理层非常重视产品质量,所以为了提高团队的开发质量,团队做了很多的努力,譬如建立代码团队审查制度,尽量做到no review no checkin,还有开发人员必须做unit test。

问题还是有的,很重要的一个就是生产率的降低。很多的时间都耗在了review,unit test - 其实并不是严格意义上的单元测试,因为这是一个遗留的大型平台软件系统,很多模块没法用mock。典型的就是GUI的bug. 因为有这样的手动"单元测试"要求,导致测试很繁琐,开发人员是非常的反感。

题外话,目前的工作基本不涉及严格意义上的需求和设计,有的只是理解defect,安全的解决defect,可别inject一个新的defect. Oops, 这是我们的核心KPI.
分享到:
评论
6 楼 aibozeng 2010-05-12  
我也想知道有哪些好方法!!!!!!

我只知道:
(1)UI的自动化测试,建立这些脚本时是很费劲,但对于你们这种已经开发了很长时间了,产品基本定型了的场景,还是值得的。因此,能自动化的,就自动化。当然复杂的Dialog还是手工测试。
(2)后台业务逻辑部分,充分利用 unit测试代码(如junit),这也适合产品基本定型的。
(3)改一个 defect 的质量如何,关键还是 “人”。改之前,先写个方案,让 懂业务和技术的“大师”级过目。因此,这样你的项目培养保留有这么几个“大师”,就顺利多了。千万别指望2000元/月的程序员能给你带来很多期望
5 楼 scholers 2010-05-09  
这样的系统很多,和我们目前的系统类似。
在已有的条件下,对原来系统的修改有的时候变成不可控的
4 楼 bluepopopo 2010-05-08  
bluepopopo 写道

所谓review,是人工处理,所以人工测试一遍花费多少根们无法预测(基本上比自动化多花费200倍以上的时间)。还有什么“手动单元测试”、以及我估计你们对gui的测试几乎为零(受Martine之流的影响,许多人还借口说gui无法自动化测试),很自然地把这种原本必须用测试技术解决的东西推卸、强迫给人工来解决。


mock1234,你的推测很准。 其实如此频繁code review也是不得已而为之,基本上这套软件产品从设计开发之初就没有一套针对developer的自动化回归测试套件。

引用
如果坚持只要是写出来的测试就一定要随时回归并长期保持维护(维护这些测试,而不是维护其实现代码),达到一定的量(例如超过100个),那么自然而然地就会催发出很好的可扩展性架构,而不是只顾眼前。


同意,其实我的问题就是tdd如何构建在大型遗留系统中,特别是各模块众多,且各部分已经十分成熟。说服管理层?首先各版本目前的缺陷率在一个可接受范围内,其次本来开发维护流程就是已经是剪裁的up(迭代开发,增量发布 . . .),再去推动一个暂时效果不明显的tdd?? 呵呵。

至于gui的自动化测试,技术上可行,但好像成本有点高。

引用
review和unit test是绝对必要的,尤其是你们系统足够复杂。

是,不同的人对与一个复杂的系统有不同理解层次,特别是开发人员有时看问题有盲点,如问题理解的不够全面,没有控制 change scope.
3 楼 a_lion 2010-05-08  
review和unit test是绝对必要的,尤其是你们系统足够复杂。
可以在review和UT的上动动脑筋,提高效率。
2 楼 cnfree 2010-05-06  
mock1234 写道
我只给你们提一个建议:gui开发中完全可以做到对于程序员写的代码进行至少100%语句覆盖地自动测试,而且跟功能测试所花费的力气差不多,并不复杂。


100%语句覆盖地自动测试???我只能说这个GUI太简单了……某些Dialog非常复杂……当然这个和设计有关
1 楼 giginet 2010-04-26  
搞不好就变成了为了review而review,为了白盒而白盒。

相关推荐

    Maven最新版是一个流行的Java项目构建系统 目前,绝大多数开发人员都把Ant当作Java编程项目的标准构建工具.rar

    这些自动化的流程可以帮助开发人员更好地管理项目和团队,减少手动干预流程的错误和时间。此外,Maven还可以帮助开发人员管理项目依赖关系,自动下载和安装所需的依赖项,从而使项目构建更加高效和可靠。Maven还提供...

    SeHo自助酒店终端管理系统!简化目前酒店入住繁琐的酒店登记退房过程。.zip

    简化目前酒店入住繁琐的酒店登记退房过程。用户自助入住,一键退房,营业额统计,权限管理,团队入住,门锁和制卡功能,通过app或者前台页面预定酒店。搭配一个酒店管理系统进行系统交互,搭载在微信公众号平台,...

    软件工程:软件过程研讨要求

    软件过程有多种,不同方法学有不同的工作流程,目前著名的软件过程模式有三种,即RUP统一软件过程、AGILE敏捷软件过程、MSF微软软件过程计划驱动、基于过程控制、迭代演进是该过程的主要特征。对于有稳定架构的软件...

    SVN高级视频教程

    SVN可以为团队开发提供代码备份、协同修改、冲突显示、增量式版本控制、权限控制、分支操作等功能。 本教程是在上一版基础上的升级,改进点包括:在Linux系统部署SVN服务器程序、更丰富的命令行操作、Eclipse特定...

    敏捷开发的艺术

    , 不管你目前已经是敏捷团队的一部分,还是只对敏捷开发感兴趣,本书都为你提供了开始实践敏捷开发所需的实用技巧。随着你的经验的增长,内容也随之深入。本书教你首先理解敏捷开发的规则,然后打破这些规则,最后当...

    web-dev-path:我们是一支具有 Web 开发背景的专业团队。 我们的目标是为寻求开始 Web 开发之旅的人们提供全面的途径

    目前,我们正在开发。 该平台将是一个分享有关 Web 开发想法的地方,非营利组织可以通过分享他们的项目和需求以及与志愿者初级 Web 开发人员建立联系来为他们的网站获得一些帮助。 这是事情会在那么远。 如果您是...

    BAMS-JAVA快速开发框架 2.5

    BAMS的业务构建是基于流程引擎Activiti+代码生成器来共同完成流程业务和非流程业务的快速开发。感谢咖啡兔、临远对activiti的深入研究 希望BAMS能够对那些正在或即将开发自己团队的J2EE应用快速开发平台的个人或...

    流程优化管理培训资料.pdf

    BPI June,2003 confidential 益华时代 目录 第一部分:流程优化管理简介和流程图设计 第二部分:流程障碍的识别、特性分析和排除管理方法 第三部分:流程管理绩效的衡量指标管理成果内容 第四部分:跨职能团队管理 ...

    敏捷开发实践-我们这样实践Scrum

    公司背景:通讯公司,团队最初不了解Scrum,开发团队有最初的几个人发展到几十个人。由一个Scrum团队发展到多个Scrum团队,有专门的PO团队。。。 目前文档完成的内容包括: 团队建设、评估会议、Sprint 计划会议1...

    Scrum敏捷开发-经验篇

    Scrum是敏捷开发的一种,是一种以人为本,迭代式增量软件开发的过程,以英式橄榄球争球队形(Scrum)为名,因此可以想象,整个团队是高效而富有激情的。以人为本,即Scrum开发特别强调沟通,要求团队所有人员都坐着...

    我的软件开发学习指南及路线图及评论地址

    我结合个人的阅读、思考以及前辈们的建议,把自己目前认为不错的我的学习路线图拿出来跟大家探讨探讨,无论是从软件开发的整体还是部分来考虑,我认为这些“关键过程”很具有指导意义,希望帮助到小伙伴们。...

    iOS DevCamp幻灯片分享:社区类iPhone应用开发的技术实践 | 麻麻帮 陈剑飞

    简单中的不简单,iPhone应用开发实践总结:社区类iPhone应用开发的技术实践 | 麻麻帮 陈剑飞 主题简介:很多iPhone应用产品的开发,并没有...目前团队获得来自创新工场的天使投资,重点关注移动终端的亲子育儿社区。

    AutoCode代码生成器(ASP.NET版)

    即开发人员可以把代码放到任何一个地方,且变量的使用也是无度的、无规律的,这对目前讲究团队开发的流程管理来讲,简直就是一种灾难,本软件将彻底解决您的后顾之忧,通过本软件的自动生成功能,生成的ASP.NET代码...

    SQL Server数据库在线管理系统

    目前用phpmyadmin软件进行在线管理,而SQL Server(mssql)也需要类似这样一款在线管理工具,就这样由BBSGOOD团队开发的针对mssql管理的SSOM系统诞生了. 该系统可以在线管理已创建的SQL Server(mssql)数据库,目前主要...

    Appfuse教程Appfuse开发.pdf

     通过关注AppFuse,我们可以看到目前国外的主流开发都使用了哪些技术,开发方式是什么样的,可能达到什么样的结果,而在以前,是很少能够看到这样完整的例子的。  AppFuse的另一个启示是:我们可以依靠开源软件的...

    大数据项目组人员配置.pptx

    包括:大数据需求分析、平台选择、技术架构设计、应用设计和开发、应用测试和部署等大数据实施全流程的跟踪,并在实施过程中带领技术团队,为设计和开发大规模集群的数据处理系统提供技术和管理。 技术研发类 大数据...

    项目管理中如何建立高绩效的研发项目团队

    本文在对团队的定义和特征进行阐述基础上,分析了绩效管理...OrTeamworking)在目前的企业界成为人们所热衷讨论的话题,它和经营过程重构(BPR)一样是自九十年代以来企业界和理论界的一个热点。企业的研究和开发(R&D)是企

    我的软件开发学习指南及路线图

    我结合个人的阅读、思考以及前辈们的建议,把自己目前认为不错的我的学习路线图拿出来跟大家探讨探讨,无论是从软件开发的整体还是部分来考虑,我认为这些“关键过程”很具有指导意义,希望帮助到小伙伴们。

    skinBeauty QQ/MSN界面演示程序源码(含开发包)

    A:  SkinBeauty是软件研发行业,提供给企业研发团队/个人在项目开发过程中使用的界面图形处理开发库。  负责实现产品界面的美化功能。   --缩短开发周期,节约开销成本,让界面更专业 在软件...

Global site tag (gtag.js) - Google Analytics