之前我们分享过《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. jdk源码阅读笔记-HashMap

    文章出处:[noblogs-it技术博客网站]的博客:jdk1.8源码分析 在Java语言中使用的最多的数据结构大概右两种,第一种是数组,比如Array,ArrayList,第二种链表,比如Array ...

  2. WAF开放规则定义权:专家策略+用户自定义策略=Web安全

    在第一期“漫说安全”栏目中,我们用四格漫画的形式介绍了基于深度学习的阿里云WAF到底智能在哪里,能帮客户解决什么问题. 在今天的这期栏目里,我们依然通过漫画这种通俗易懂的方式,与大家分享阿里云WAF的 ...

  3. maven 依赖中scope标签的配置范围详解

    在创建Maven项目时,需要在pom.xml 文件中添加相应的依赖,其中有一个scope标签,该标签是设置该依赖范围 (maven项目包含三种classpath{编译classpath,测试class ...

  4. vue slot+传参

    插槽分为默认插槽和具名插槽: 默认插槽: //父组件<div> <h3>父组件</h3> <testChild> <div>默认插槽< ...

  5. android 系统dialog的应用

    应用示例如下: /* * 提示类型dialog */ private void dialog1(){ AlertDialog.Builder builder = new AlertDialog.Bui ...

  6. 使用StackExchange.Redis 连接redis的pipeline命令使用

    这几天公司老项目用到了这个组件,需要设置初始化ID,发现这个组件没有pipeline命令的方法,去官方文档去瞅了一波,发现也没有给出对应的解决方案,后面自己发现组件里面其实有 其实就是这个接口的一个方 ...

  7. DataPipeline在大数据平台的数据流实践

    文 | 吕鹏 DataPipeline架构师 进入大数据时代,实时作业有着越来越重要的地位.本文将从以下几个部分进行讲解DataPipeline在大数据平台的实时数据流实践. 一.企业级数据面临的主要 ...

  8. Iterm2/Mac自带终端工具快速进入你想进入的虚拟机教程

    一.首先我们在终端本地要写一个登录的脚本,eg: 当然首先要touch login.sh 啦,下面就是脚本文件,比较low,大神勿喷,会更炫酷写法的小伙伴可以自己参考这个思路写,不会的直接复制就好啦 ...

  9. 【English Teradata】Strategizing Vantage Technology

    strategy部署;谋略;战略[ˈstrætədʒi]  strategize制定战略 Strategizing战略化  Technology科技;工艺;工程技术 [tekˈnɑːlədʒi] St ...

  10. 原生的 django 分页

    原始的 django 分页 # 基本 写法 class Paginator(object): def __init__(self, object_list, per_page, orphans=0, ...