马晓宇 --环信联合创始人/执行总裁

我们是一个做云服务的创业公司,所以我就云服务创业公司的角度,来谈谈我们是怎么去实践敏捷开发的。确切地说,就是讲讲我们这几年的这些教训...

1-创业公司敏捷开发流程有哪些?

日本企业:我的第一份工作,我发现它这个文化,或者它这个流程设计的是和他们的特点非常相关,如果大家接触过日本,就会知道他们有一个特点,两个字—“变态”。

为什么这么说呢?这可能是褒义,因为他们对文档,对质量,对流程,对测试要求就是两个字:变态。所以他们的整个流程就是非常变态。

大家如果写过概要设计、说明书这些的,你可能写程序花最多一周,但是写文档至少两三个月才能通过。但是这个好处是说保证随便的一个普通工程师,刚大学毕业,他进到这个企业,进到这个组织,他就能产出同样质量的一个软件,所以这个是很多公司其实做不到的。核心团队人员离职了,尤其创业公司,有时候面临挑战就会比较大。但是在这种变态流程里,它其实不缺人,因为每一个人都是螺丝钉。

电信软件:发现又不一样,我们一般做系统,出问题重启,但是电信它的要求是,希望这个系统一年不重启...

开源社区:一般一年开一次会,整个一个团队大概七八个人,多的十几个人在世界各地,每年年初或者年底开一个会,这个会上就讨论今年什么,都比较虚。组织形式非常松散,因为大家可能有一个共同的目标,客户的期待也特别大,所以就是没日没夜的去工作。

手机软件:挑战和其他的不一样,就是多了一个兼容性。因为手机系统当时我们有一个参数,就是说你一个软件发出来之后,你有多少个客户,升级之后,它要回厂,回到服务站去解决问题。

具体指标我记不清,每次都会检查,就是如果回到服务站的用户多了,这个软件就赔钱了。我们原来做移动的APP、SDK也面临同样挑战。

创业公司:生存挑战,我们找各种流程,找一个能适应我们文化的,最关键的其实想找一个能帮助我们生存下去的流程。

其实创业的话,就会觉得每个月有一天特别难受,那就是每个月给员工发工资的时候。几百人怎么去赚到这个钱,然后去给大家发工资。

那这个生存挑战怎么解决呢?可能就是四个字,“降本增效”,但这个比较虚了,都知道降本增效,但是实际怎么做啊?我给大家送一句话:“降本增效,就用Worktile”

我们用Worktile比较早,在2014年左右就开始用,早期的付费用户,觉得挺好用的,之后又在敏捷大会看了新版本新界面,感觉功能更加强大了。

2-SaaS需求管理,有何轻重缓急之分?

创业公司的需求来自 项目经理、研发、客户 等方方面面,也会经常面临各种各样的bug。

就bug的轻重缓急而言,我总结了三种类型的bug:

严重bug: 需要团队立刻去执行,去解决;

功能性bug: 需要团队进行排期,可能会花几周的时间去迭代修复的;

性能bug: 这是最难解决的,举例来说,当我们在设计的时候,系统一上线就能支持百万用户甚至亿级用户的自由伸缩,往往是不现实的。所以,在SaaS需求管理上需要去平衡不同功能的需求程度。

3-关于SaaS迭代开发,应注意什么?

创业公司在服务端上线周期基本上是一个月,上线有两个注意事项:

一个是回退方案, 即做到要求的方案都可以回退,遇到问题时可以及时做到回退。

另一个是兼容性问题, 一个产品面对不同的用户存在这不同的兼容性问题,这时我们需要做开关,如果产品上线可能造成某方面的损失,可以选择做降级开关来处理,保证部分功能实现。

移动端的上线需要注意发版问题,当做工具云时,在很短的周期内出了一版,但是没有测到严重的bug,随即上线后续更新的版本,这就会在用户体验上大打折扣。

4-SaaS 云服务的自动测试如何做?

如果现在做互联网服务越来越的是避不开移动端,除非用微信 H5,否则怎么测应用的在百万及甚至几百万用户的压力下,你应用的响应,如果做测试知道这个是特别花钱的,因为你实际模拟一个用户,这个一台机器基本上是六万,一台机器模拟六万个客户,这是我们的常规测试,如果模拟百万用户实时连接,要求二十台机器,十台是60万,二十台机器,但这个对创业公司服务器的成本还是有的。

所以我们怎么做呢? 阿里云是现在也支持了,早期是10%,现在已经按量付费,去使用服务器资源,计费周期是到秒的,所以我们真正去做移动端压力测试的时候,建议大家搞这么一套系统,这个还花的我们一段时间,我们整个有一套脚本,这个脚本从运行就启动一个阿里云,是有API,申请ECS,比如跑一个百万的,可以把服务器申请出来,我们把所有的模板部署上,部署之后先做一个简单验证,整个环境通了,这样就可以去真正模拟,因为一般的模拟场景是百万用户,同时先登服务器,建一个百万的TCP连接,之后模拟一些场景,有的是发消息,有的是客服业务,有的送花有的点赞这些场景模拟完之后,要把测试结果报告,这套有了,这个测试就完了。

但是提醒一下,你可以自动释放服务器,但一般我们做这个操作的时候,我们整个测试结果出来之后,我们看一下,如果说不达到期待,调一下脚本,甚至去改一下服务再测一下。如果没问题,后边就有一个脚本能自动释放,所以整个其实可以全自动的,而且当时我算了一下,如果你是使用,比如按天,不到三天,费用肯定是比包月便宜,即使拿到一个比较高的折扣,大家做移动端自动测试,尤其是这种要做并发的话,我建议就用这种按量,这个是给我们省了不少钱。

5-部署和运维的敏捷保障

做云服务,做SaaS的有一个,基于租户的灰度发布。

1.AB测试

AB测试是一种用于提升产品转化率、优化获客的方法。当我们想测试哪个注册页面转化率高时,我们就可以上线两个版本的页面,通过一周、一月的注册数据监测比例来衡量哪个页面效果好。在做云服务,SaaS时,就是基于租户的验证,同样可以适用这种方法。

2.前后端灰度

所有的前端根据cookie中的租户id,转发到不同版本的后端服务。如果进来之后,cookie解决这个租户ID,就可以写个脚本,根据当前给的配置对应的版本打造对应的服务,这是一个常用的功能。

3.移动端灰度

移动端登录后,从路由服务器请求访问地址。以做移动端的经验来说,某一个用户想登到指定的版本如何来做?我们可以做DNS解析,就是手机端不是先去试图访问服务,而是先去访问我们做的解析入口,当前是哪个租户,用户ID是多少,移动端什么版本,应该访问哪个后台版本,然后整个服务会打造相应的后台版本。

如果公司有海外客户,就可以通过DNS解析到海外的配置,移动端的路由可以根据不同用户的区域做不同的配置,链接到不同的服务和版本。

6-学费/教训

说说学费,从现在看,不管是流程,现在要保证最重要的四个方面:

1-核心要保持稳定

即自身系统的上线流程不能影响到客户的业务流程,可以采用错峰上线、降级开关等措施;

不管是做即时通讯,还是做客服,如果这个系统出问题,都会影响它的业务。

2- 善于提炼客户需求

产品功能需要满足大多数客户的需求; 如果你客户比较多的话,跟销售打交道,容易被忽悠,销售说“你把这个做了就给钱了”或者“如果你把这个做了就行了”。我说哪个重要,销售都说重要。

所以这里面有个技巧,你得需要真正对这个产品有理解,对这个业务理解了,就是用户要的只是他现在想要的,但是如果能把不同的需求,提升到通用的需求,里面加一些开关,能满足大多数的需求,这个是很重要的。

3-成本控制

可以从架构设计出发,尽量用成熟的组件,设计一个低成本的架构; 如果你们做云服务,一开始不觉得,但是如果突然运维给你一个七位数的帐单,一个月。你就认识到,你的架构需要改了,但是如果你看到这个帐单的时候,可能有点晚了

4-注重用户的体验

在移动端,需要多注意产品的兼容性问题。一般用户不会因为体验问题会跟你断约,前面这些事情都是说有可能不给你做,后面的体验做好能给他服务的更好,体验就是刚才说过,可能主要就是注意一下移动端的兼容性,虽然换手机频率高,但是兼容性问题还是比较大的。

文章来源:Worktile敏捷博客

欢迎访问交流更多关于技术及协作的问题。

文章转载请注明出处。

环信联合创始人: Saas敏捷开发实践!的更多相关文章

  1. 转: 环信联合创始人:App主流反垃圾服务难点和技术实现全解析

    转:http://science.china.com.cn/2016-03/24/content_8659834.htm 发布时间: 2016-03-24 13:15:02  |  来源: 全球财经网 ...

  2. TFS 2015 敏捷开发实践 – 在Kanban上运行一个Sprint

    前言:在 上一篇 TFS2015敏捷开发实践 中,我们给大家介绍了TFS2015中看板的基本使用和功能,这一篇中我们来看一个具体的场景,如何使用看板来运行一个sprint.Sprint是Scrum对迭 ...

  3. [敏捷开发实践](2) 用于开发和维持复杂产品的敏捷开发框架Scrum

    [敏捷开发实践](2) 用于开发和维持复杂产品的敏捷开发框架Scrum 1,Scrum概述 上篇中提到敏捷开发有两种主流的方法,一个是XP,另一个是Scrum,本篇简要介绍Scrum方法.Scrum是 ...

  4. 《HP大规模敏捷开发实践》读书笔记

    读这本书的心得,敏捷是实践出来的,哪怕不懂srcum**等方法,只要坚持心中的价值观,朝一个方向改进,哪怕不能“任何时候都拥有符合发布要求的代码”,今天比昨天好,也是成功.     通过业务分析确定开 ...

  5. TFS 2015 敏捷开发实践 – 看板的使用

    看板在现代应用开发过程中使用非常广泛,不管是使用传统的瀑布式开发还是敏捷开发,都可以使用看板管理.因为看板拥有简单的管理方法,直观的显示方式,所以很多软件开发团队选择使用看板进行软件开发管理.本文不在 ...

  6. WePY - 小程序敏捷开发实践丨掘金开发者大会

    声明:内容转载他处,如有侵权,可协商下架 本主题虽然在其它地方讲了很多次,但还是有非常多新内容.因为很多东西正在做或者想要做.本次分享主要分为以下几个部分: WePY 的介绍 WePY 的用户 上面展 ...

  7. android-使用环信SDK开发即时通信功能及源代码下载

    近期项目中集成即时聊天功能.挑来拣去,终于选择环信SDK来进行开发,选择环信的主要原因是接口方便.简洁.说明文档清楚易懂.文档有android.ios.和后台server端.还是非常全的. 环信官网: ...

  8. Scrum敏捷开发简介

    Agile 敏捷开发实践中,强调团队的自我管理.在 Scrum 中,自我团队管理体现在每天的 Scrum 会议中和日常的协同工作,在每天的 Scrum 例会中,团队成员一般回答一下几个问题 : 昨天完 ...

  9. 环信及时通讯 Laravel 扩展包

    laravel-easemob 环信及时通讯 laravel 包开发,用于环信用户.群.聊天室等功能 github 地址   安装 加载包 "link1st/laravel-easemob& ...

随机推荐

  1. JAVA RPC (九) netty服务端解析

    源码地址:https://gitee.com/a1234567891/koalas-rpc 企业生产级百亿日PV高可用可拓展的RPC框架.理论上并发数量接近服务器带宽,客户端采用thrift协议,服务 ...

  2. 【Robot Framework 项目实战 04】基于录制,生成RF关键字及 自动化用例

    背景 因为服务的迁移,Jira版本的更新,很多接口文档的维护变少,导致想要编写部分服务的自动化测试变得尤为麻烦,很多服务,尤其是客户端接口需要通过抓包的方式查询参数来编写自动化用例,但是过程中手工重复 ...

  3. 《梁宁·产品思维30讲》课程学习笔记(内含全套音频+ppt资料

    科技进步.产品迭代.公司演化.组织变迁……不变的是用户的情绪和人性. 那些信奉“用户驱动”的人,从普通人变成了行业大佬,建立了自己的世界.乔布斯.马化腾.马云.雷军.张小龙.周鸿祎.傅盛……这些改变世 ...

  4. selenium 配置 chromedriver

    参考文档: https://blog.csdn.net/yoyocat915/article/details/80580066?tdsourcetag=s_pcqq_aiomsg http://npm ...

  5. 【Java/MySql】使用JDBC访问MySql数据库的Maven工程

    下载链接:https://files.cnblogs.com/files/xiandedanteng/FindNotnullColumns20191102-1.rar pom.xml里写: <p ...

  6. osg(openscenegraph).chm帮助文档

    openscenegraph 3.6.3 链接:https://pan.baidu.com/s/1cQkiTPQx5MIIfxe5FTfjYw 提取码:7w4z openscenegraph  3.4 ...

  7. tensorflow查看ckpt各节点名称

    from tensorflow.python import pywrap_tensorflowimport os checkpoint_path=os.path.join('output/res101 ...

  8. jenkins通过ssh登不上远程主机

    https://blog.csdn.net/cdnight/article/details/81078191 就是需要切换jenkins用户,用jenkins用户生产的秘钥拷到其他主机上

  9. Android view的一些认识

    转载:9102年末,我对Android view的13条认识: (顺手留下GitHub链接,需要获取相关面试等内容的可以自己去找)https://github.com/xiangjiana/Andro ...

  10. windows10专业版激活方法

    1.首先在桌面左下角的“cortana”搜索框中输入“CMD”,待出现“命令提示符”工具时,右击选择“以管理员身份”运行. 2.此时将“以管理员身份”打开“MSDOS”窗口,在此界面中,依次输出以下命 ...