之前我们分享过《CODING 如何使用 CODING 开发 CODING》的文章,时过境迁,现在 CODING 研发管理系统已经上线了如持续集成、缺陷管理、测试管理等 DevOps 中的重要功能,并增加了对 SVN 的支持。借此机会我们以自身的研发流程为例,来展示一下 How CODING uses CODING to build CODING 2.0。

企业级一站式软件研发协作平台

CODING 现在的团队有 100 多人,分布在全球各地(深圳、北京、成都、西雅图等),均使用 CODING 研发管理系统作为云端协作平台。在 CODING,不仅研发相关的团队使用 CODING 来进行研发管理,市场、运营、行政的部门也同样使用 CODING 进行任务分配与追踪、文件分享等日常工作。

同时通过 CODING 的企业微信/微信小程序,还能实现随时随地同步与协同任务,小程序可以直接查看任务详情、评论任务,还能实现代码合并(MR)等功能,真正做到 Coding Anytime Anywhere。

CODING 研发管理系统是基于项目进行的,我们依据组织架构建立了相关项目并使用【成员管理】添加相应部门的人员。通过项目这种扁平化的管理形式,帮助企业加快反应速度,提高自身敏捷性。

下周即将上线的 CODING 权限管理功能,可以帮助项目管理员方便地根据项目成员角色来分配相应的权限,减少误操作带来的安全隐患。同时支持自定义用户组,增加研发管理的灵活性。

Push Everything,Review Everything,CI Everything

workflow

CODING 研发部门的工作流都是在项目内进行:我们使用任务功能来管理需求,使用文件来保存产品原型,使用代码功能进行开发,使用持续集成来进行自动化测试,使用缺陷管理来收集反馈,同时还使用 wiki 模块对知识进行储存与共享。通过在任务中添加关注者的方式来方便相关同事随时 follow 和 review 任务动态。

CODING 强大的任务系统支持标签、跨项目引用、版本控制等多项功能,并会实时记录用户的每一次操作。同时 CODING 需求管理功能也即将上线,将在任务系统之外为用户提供更细分更场景化的使用方式。

产品

CODING 的产品经理在正常的产品功能排期之外,会定期在缺陷管理中查看用户的使用反馈并对相关问题的修复进行排期。

当产品经理研究决定我们要实现某一个功能/修复缺陷时,会以任务的形式发布该需求。但是在发布需求之前有几件事情需要先做。

给任务定性

产品经理会把任务放入“需求反馈池”看板,并给任务定性:

  • 纯技术问题(含纯技术 Bug),则指派给研发负责人进行跟进。
  • 纯设计问题,则指派给设计负责人进行跟进。
  • (真)产品问题,则准备与发任务的源头沟通分析此问题。

问题分析

  • 伪需求,或者反馈方理解有误,则直接在相关任务中回复,并关闭任务即可。
  • 真需求,则完善对应的背景信息,并将任务拖入“已分析需求池”。
  • Bug 类,可以内部请测试人员来尝试复现此问题。如果可复现,则给此任务打上“Bug 池”、“已确认”标签,再将任务放入“已分析需求池”。

分析完需求后即可创建任务,如该任务涉及大型产品改动,则会由相应产品经理撰写完整的产品说明文档和必要的原型图等文件;方案完成之后,产品经理会根据任务的紧急程度给任务设定优先级,方便后续设计和开发的同事更方便的安排工作。

在产品设计过程中,我们使用 CODING 的文件管理功能对产品进行原型管理和版本管理。

功能开发完成后,产品经理还会配合研发进行 Staging 环境的验收。如在 Staging 环境中发现问题,则需要与发布负责人协商回退或是重新发版,成功完成验收则通知运维上生产环节。

开发

在产品经理完成原型图和产品说明后,便会把任务移交给研发负责人,进行评估和排期,完成排期后研发负责人会根据任务情况安排里程碑。

开发人员开始基于自己的里程碑任务进行开发,其后的代码评审也是通过项目内提交 MR (合并请求)进行的。

CODING 使用了 Feature Branch Workflow,即团队成员共用一个私有项目仓库进行管理协作,开发者在各自的 feature-branch 中进行开发。

Code Review

开发完成后通过提交 Merge Request 进行代码评审,通过代码评审后 merge 进入 master 分支(master 分支是可部署到 staging/生产环境的分支)。

持续集成

当开发人员 push 代码时,将会自动触发已设置好的持续集成,CODING 的持续集成会自动编译并测试该 commit。CODING 持续集成支持在任意阶段触发并支持 cvm 模式。

当测试通过后,我们会更新代码到 Staging 环境。

测试

更新 Staging 的代码后,测试人员开始进行相关测试。现在 CODING 的测试管理功能由 18 年收购的专业测试工具飞蛾( FEIE.WORK)承载,已实现了企业账号打通,可直接在测试管理中点击跳转到飞蛾的工作界面。

接到测试任务后,测试的同时会先在飞蛾中制定相应的测试计划。

制定好测试计划后,即可开始编写相关测试用例并开始执行测试计划。

Staging 环境测试无问题后,该功能会以 Feature Flags(内部测试新功能)的形式发布其到生产环境,通知相关的产品或设计人员开启 Feature Flags 进行内部 Review,如果存在问题或缺陷,我们会新建一个任务进行产品反馈,确保功能及设计细节的正确性。

运营

产品正式上线后,CODING 的运营同事会开始收集用户反馈,通过各个渠道反馈的问题都会在 CODING 缺陷管理功能中以创建缺陷的方式进行归纳。

运营会定期将收集来的缺陷进行分析,将 Bug 类的缺陷转给产品经理进行排期。如在生产环节发现重大 Bug 则会立即和产品经理沟通并通知运维,协商回退版本或者临时修复。

市场

在确认功能顺利上线后,产品经理会在 CODING Wiki 中更新 Roadmap,提示功能已经上线。方便市场部进行 Campaign 的计划。

市场部的同事使用 CODING 任务管理中的讨论功能,可以实时讨论和跟踪项目进度。

让开发更简单

工欲善其事,必先利其器,在现在数字化的商业环境中,企业对于软件的依赖已经达到了前所未有的高度。如何选择一套适合中国软件研发团队的开发工具和高效的研发流程,以解放开发人员的效能,打造更好的产品,已经成为每个企业必须要思考的问题。逆水行舟,不进则退,我们自身使用 CODING 进行开发,旨在不断完善 CODING 的功能,优化提升 CODING 的使用体验,让 CODING 成为最适合中国式敏捷的研发管理系统,真正做到让中国的软件研发团队开发更简单!

同时我们也欢迎各种反馈,如果你有任何需求或建议,请不要忘了提交给我们 :D

官方反馈渠道:
联系电话:400-930-9163
邮箱:enterprise@coding.net

CODING 如何使用 CODING 研发管理系统来敏捷开发的更多相关文章

  1. 杨学明老师推出全新课程--《敏捷开发&IPD和敏捷开发结合的实践》

    课时:13小时(2天) 敏捷开发&IPD和敏捷开发结合的实践 讲  师:杨学明 [课程背景] 集成产品开发(IPD).集成能力成熟度模型(CMMI).敏捷开发(Agile Developmen ...

  2. CODING 研发管理系统上线全球加速,助力企业跨区域协作

    CODING 研发管理系统现已全面支持全类型代码仓库的 全球加速访问. 随着国内互联网红利的日趋枯竭与全球互联网的加速普及.越来越多的企业开始走出国门,将目光投向全世界,搭建跨国体系.跨出国门的中国企 ...

  3. Coding 如何使用 Coding 开发 Coding

    Coding Anytime Anywhere Coding 团队有 70 多人,分布在全国各地(深圳,北京,上海,成都),我们使用 Coding 作为云端办公室,以云端协作的方式管理事务,文件等,我 ...

  4. 产品研发团队如何融合OKR与Scrum敏捷开发?

    「 OKR 」现在非常的火爆,很多公司都在使用,不仅国外的 Google.英特尔等大公司在用,国内的一线知名互联网企业今日头条和一些创业团队也都在使用. 那为什么「 OKR 」这么受欢迎呢,因为把它可 ...

  5. python 字符编码的两种方式写法:# coding=utf-8和# -*- coding:utf-8 -*-

    python运行文件是总会出现乱码问题,为了解决这个问题,在文件开头加上: # coding=utf-8 或者 # -*- coding:utf-8  -*- # coding=<encodin ...

  6. [Python]编码声明:是coding:utf-8还是coding=utf-8呢

    PEP 263 -- Defining Python Source Code Encodings | Python.org https://www.python.org/dev/peps/pep-02 ...

  7. 敏捷开发与jira之研发管理模式

    以IPD方法论为基础,采用原型+迭代的开发模式,并以质量优先为原则,持续对用户做价值交付. 使用JIRA+WIKI+SVN管理整个的研发过程:JIRA管理任务和进度:SVN管理代码和过程文档:WIKI ...

  8. UDAD 用户故事驱动的敏捷开发 – 演讲实录

    敏捷发展到今天已经在软件行业得到了广泛认可,但大多数敏捷方法都是为了解决某一特定问题而总结出来的特定方法或实践,一直缺乏一个可以将整个开发过程串接起来的成体系的方法.用户故事驱动的敏捷开发(User ...

  9. 秦俊:开放 DevOps 敏捷开发套件,助力开发者驰骋云端

    欢迎大家前往腾讯云技术社区,获取更多腾讯海量技术实践干货哦~ DevOps可以让人工智能(AI).大数据(Bigdata).云计算(Cloud)更加高效地落地,越来越多的企业和团队在践行DevOps. ...

随机推荐

  1. Qt之表格控件蚂蚁线

    一.蚂蚁线 摘自互动百科:在图像影像软件中表示选区的动态虚线,因为虚线闪烁的样子像是一群蚂蚁在跑,所以俗称蚂蚁线.在Poshop,After Effect等软件中比较常见. 背景:用过excel的同学 ...

  2. http/2.0时代已经来临了!

    知识分享  文章转自:https://blog.csdn.net/g6U8W7p06dCO99fQ3/article/details/78906348 现在是资源共享的时代,同样也是知识分享的时代,如 ...

  3. H5单张、多张图片保存续篇

    前言 这篇是接上篇内容.还没看的可以看H5单张.多张图片上传这篇文章预热. 图片入库 本章我们就来看看如何让多种图片保存至数据库中.数据库:mysql   后端:.NET Core 我们回顾一下上篇我 ...

  4. alter session set current_schema=Schema

    使用CURRENT_SCHEMA之后,当前会话所参考的默认SCHEMA变为设置的用户,而不再是当前的用户:其实需要稍微理解一下user和schema的区别先:user即oracle中的用户,和所有系统 ...

  5. C# 4.0 的 Visual Studio 2010 示例

    C# 4.0 的 Visual Studio 2010 示例 我们将 C# 示例分为两种不同的类别: 语言示例 LINQ 示例 语言示例 语言示例帮助您熟悉各种 C# 语言功能.这些示例包含在 Lan ...

  6. django框架使用mysql步骤

    在创建好django项目的基础上来讲解使用orm框架 注意:首先在mysql中手动或者通过命令创建一个数据库,我先创建一个名为orm的数据库. 1:在项目文件夹中的settings.py文件中配置my ...

  7. Hadoop系列001-大数据概论

    本人微信公众号,欢迎扫码关注! 大数据概论 1.大数据概念 大数据(big data),指无法在一定时间范围内用常规软件工具进行捕捉.管理和处理的数据集合,是需要新处理模式才能具有更强的决策力.洞察发 ...

  8. java面试基础(一)

    1.基本数据类型.封装类和运算操作(1)简述 & 和 && ,以及 | 和 || 的区别.———&和|是位运算符也是逻辑运算符,作为逻辑运算符时左右两边都会进行判断(不 ...

  9. 为什么要重写 hashcode 和 equals 方法?

    引言 以前面试的时候被面试官问到过这样一个问题: 你有没有重写过 hashCode 方法? 心里想着我没事重写哪玩意干啥,能不写就不写.嘴上当然没敢这么说,只能略表遗憾的说抱歉,我没写过. 撇了面试官 ...

  10. LinkedBlockingQueue源码解析

    上一篇博客,我们介绍了ArrayBlockQueue,知道了它是基于数组实现的有界阻塞队列,既然有基于数组实现的,那么一定有基于链表实现的队列了,没错,当然有,这就是我们今天的主角:LinkedBlo ...