`
bluepopopo
  • 浏览: 92344 次
  • 性别: 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,为了白盒而白盒。

相关推荐

    Gitblit搭建及Git协作开发流程参考

    本文档主要介绍了Gitblit的搭建和Git协作开发流程,旨在帮助创业团队和小型开发团队快速搭建自己的代码服务器。同时,文档也提供了基本的开发流程,代码提交、代码上传、代码merge等流程的命令行指令。 一、概述 ...

    AUTOSAR开发流程

    它不仅定义了软件架构,还规范了硬件接口,以及方法论、开发流程和工具的使用,为整车厂提供了控制开发过程并降低成本和风险的技术途径。 综上所述,AUTOSAR不仅是一种技术标准,更是一种行业共识,它推动了汽车...

    WEB2.0 8国语言门户系统(CMS韩国团队开发)

    WEB2.0 8国语言门户系统(CMS韩国团队开发)是一个高级的网络内容管理系统,由韩国的专业团队研发,目前已被知名的互联网企业NAVER收购。这个系统的特点在于它支持8种不同的语言,使得用户能够创建面向全球不同国家和...

    机器人比赛开发流程 pdf版本

    ### 机器人比赛开发流程 #### 一、RoboCup仿真比赛概述 RoboCup(机器人世界杯足球锦标赛)是一项旨在推动分布式人工智能、智能机器人技术及其相关领域研究与发展的国际赛事。通过提供一个标准化的任务环境,...

    APP产品团队开发官网模板是一款基于HTML5实现的产品APP开发网站模板。.rar

    标题中的“APP产品团队开发官网模板”指的是一个专为展示和介绍APP产品设计的网站模板,这个模板是基于HTML5技术构建的。HTML5(超文本标记语言第五版)是目前网页开发的标准语言,它提供了许多增强用户体验和交互性...

    企业信息化环境下产品协同开发流程再造研究

    目前的研究主要是从产品协同开发过程和流程活动本身出发,注重通过技术、应用的建模方法对流程进行研究,而从人的角度出发进行产品协同开发流程管理及其在实际案例中的应用还有待研究。在国家自然基金的资助下,课题...

    K公司新产品开发流程再造课程.docx

    目前的新品开发流程包括以下步骤: 1. 销售部门收集客户需求和市场信息,编写新品开发说明书。 2. 开发部门根据说明书制定设计方案,包括功能设定、技术标准、费用估算和核心技术评估。 3. 硬件和软件设计阶段,分别...

    K公司新产品开发流程再造.pdf

    目前的新品开发流程包括多个阶段:首先,销售部门根据客户需求、行业动态和技术竞争态势提出新产品开发说明书。接着,开发部门基于此说明书制定整体设计方案,进行硬件和软件设计,并进行调试。生产部门则依据开发部...

    单片机主要开发流程(方便初学者有个宏观的把握)

    ### 单片机主要开发流程(方便初学者有个宏观的把握) #### 一、项目需求分析与规划 在正式开始单片机项目的开发之前,首先需要进行的是项目需求分析。这一阶段主要是对项目的功能需求、性能指标以及预期目标进行...

    软件开发过程方法研究

    一个好的软件开发过程能够帮助团队高效地完成任务,并确保最终产品的高质量。 #### 三、软件开发方法概述 目前主要有两种主流的软件开发方法:面向对象方法和结构化方法。 ##### 1. 结构化方法 结构化方法的基本...

    K公司新产品开发流程再造.doc

    目前的新品开发流程包括以下几个阶段: 1. 销售部门首先提出新品开发说明书,基于客户需求、行业动态和技术对比。 2. 开发部门制定整体设备设计方案,包括功能定义、技术标准符合性、费用估算和核心技术验证,随后...

    组建java团队.pdf

    在组建Java开发团队的过程中,涉及到多个关键步骤和知识点。以下是对这些知识点的详细解读: 1. 组建团队的过程: 组建团队首先要确定使用的技术栈,以适应业务需求和项目规模。团队成员的角色通常包括不同级别的...

    专题资料(2021-2022年)K公司新产品开发流程再造.doc

    【目前的开发流程】部分详细阐述了新品开发的各个步骤,从销售部门提出开发说明书,到开发部门的设计、硬件和软件开发,再到生产部门的批量生产和工程部门的施工准备,最后是产品的定价和推广。整个流程涉及多部门...

    基于CMMI的Y公司软件开发流程优化探讨.docx

    本文主要探讨了基于CMMI模型的Y公司软件开发流程优化问题,旨在提升软件开发效率和质量,适应日益激烈的市场竞争,尤其是物联网和锂电池应用领域的发展需求。CMMI(Capability Maturity Model Integration,能力成熟...

    麦肯锡-新产品开发流程.ppt

    根据给定文件的部分内容,我们可以总结出以下几个关键的知识点: ...以上是关于麦肯锡新产品开发流程的主要知识点概述,这些原则和流程不仅适用于xx集团,也适用于其他希望优化新产品开发过程的企业。

    分支管理规范-GIT分支流程开发规范

    - **使用git flow简化操作**:git flow是一个基于Git Flow工作流的辅助工具,可自动化创建、切换和结束分支,简化开发流程。 6. **发布代码流程** - **发布Release**:从develop分支创建release分支,开发团队完成...

    源代码统计工具(适用目前主流开发语言)

    通过统计代码行数,注释比例等,团队可以更好地评估项目状态,优化开发流程,并且通过对代码数据量的分析,可以对项目的规模有清晰的认识。在实际开发过程中,这样的工具能够提高团队的工作效率,促进项目管理的精细...

    流程设计 开发 向导

    ### 流程设计开发向导知识点详述 #### 一、RunaWFE开发者指南概述 **RunaWFE**是一款开源的工作流管理系统,自2004年起由ZAORuna发布并持续维护至今,目前版本为3.0。该系统采用LGPL许可证发布(许可证详情可参考...

    微软为软件开发流程植入安全基因.docx

    为了从根本上解决这个问题,企业需要改进软件开发流程,在应用开发的整个过程中持续关注应用安全。微软在这方面有着丰富的经验,并创建了一整套名为“安全开发生命周期”(Secure Development Lifecycle for ...

Global site tag (gtag.js) - Google Analytics