近日,由Worktile和环信联合主办的「2019敏捷大会--北京站」在北京东升国际科学园成功举办。环信作为国内明星创业公司,从0到1打造了国内最大的即时通讯云平台和领先的智能客服云平台,环信联合创始人马晓宇作为一个拥有20年经验的"高龄"程序猿以此为例做了《SaaS敏捷开发实践》主题分享,从一个云服务创业公司的角度,分享了该如何去实现敏捷开发,同时也给新晋创业公司提了四点建议。

d53900fe427dc876aa96f1c681114b6.jpg

环信联合创始人马晓宇结合在外企工作的经历,谈到外企是如何实现敏捷开发的。他用“变态”(褒义)二字形容日本企业的工作流程,日企对开发流程、质量、测试、文档都有严格的要求,写程序可能花一周,但文档至少要两三个月才能通过,这也保证了能够产出质量如一的工作效果。电信行业对开发流程是365天X24小时的要求,系统能否长期持续运行则是这个行业面临的挑战。而创业公司每天则面临着来自不同客户各种各样的需求和挑战。

1.png


2.png

1.SaaS需求管理,有何轻重缓急之分?

创业公司的需求来自项目经理、研发、客户等方方面面,也会经常面临各种各样的bug。就bug的轻重缓急而言,马晓宇总结了三种类型的bug,即严重bug,功能bug,性能bug。

ppt1.png

结合自身的创业经验,马晓宇认为比较严重的bug,需要团队立刻去执行,去解决;而功能性的bug需要团队进行排期,可能会花几周的时间去迭代修复的;谈到性能bug,他认为是最难解决的,举例来说,当我们在设计的时候,系统一上线就能支持百万用户甚至亿级用户的自由伸缩,往往是不现实的。环信的系统从最开始上线,到现在经历了多个版本迭代,最终从测试用户,上百用户,到现在的几千万日活。所以,在SaaS需求管理上需要去平衡不同功能的需求程度。

2.关于SaaS迭代开发,应注意什么?

创业公司在服务端上线周期基本上是一个月,上线有两个注意事项,一个是回退方案,即做到要求的方案都可以回退,遇到问题时可以及时做到回退。另一个是兼容性问题,一个产品面对不同的用户存在这不同的兼容性问题,这时我们需要做开关,如果产品上线可能造成某方面的损失,可以选择做降级开关来处理,保证部分功能实现。

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

2.png

3.SaaS灰度发布系统是如何运作的?

做SaaS有一个基于租户的灰度发布。一是AB测试,AB测试是一种用于提升产品转化率、优化获客的方法。当我们想测试哪个注册页面转化率高时,我们就可以上线两个版本的页面,通过一周、一月的注册数据监测比例来衡量哪个页面效果好。在做云服务,SaaS时,就是基于租户的验证,同样可以适用这种方法。
前后端灰度,就是所有的前端根据cookie中的租户id,转发到不同版本的后端服务。如果进来之后,cookie解决这个租户ID,就可以写个脚本,根据当前给的配置对应的版本打造对应的服务,这是一个常用的功能。3.png

移动端灰度,就是移动端登录后,从路由服务器请求访问地址。以做移动端的经验来说,某一个用户想登到指定的版本如何来做?我们可以做DNS解析,就是手机端不是先去试图访问服务,而是先去访问我们做的解析入口,当前是哪个租户,用户ID是多少,移动端什么版本,应该访问哪个后台版本,然后整个服务会打造相应的后台版本。如果公司有海外客户,就可以通过DNS解析到海外的配置,移动端的路由可以根据不同用户的区域做不同的配置,链接到不同的服务和版本。

2.png

最后谈到给新晋创业公司的建议,马晓宇总结了四点:一是核心要保持稳定,即自身系统的上线流程不能影响到客户的业务流程,可以采用错峰上线、降级开关等措施;二是善于提炼客户需求,产品功能需要满足大多数客户的需求;三是成本控制,可以从架构设计出发,尽量用成熟的组件,设计一个低成本的架构;四是注重用户的体验,在移动端,需要多注意产品的兼容性问题。


在接下来的演讲环节,讲师为嘉宾倾囊分享,嘉宾与讲师思维碰撞,干货满满:

worktile.jpg

Worktile高级架构师,WTC成员,孙敬云

分别从研发的困境、DevOps是什么、对DevOps工程化的个人分析以及DevOps的实战入门这几个方向来为大家带来《DevOps实战:工程化管理你的DevOps平台》

“有很多的工具用起来真的是无孔不入,什么东西都能帮你解决,基本上不需要你打开任何的东西,你只需要键盘鼠标点一点就能解决。但是我相信没有最好的实践,只有最合适的实践,每个团队如果想实践DevOps,只有你不断的探索,你才能找到你自己团队中最合适的那个DevOps解决方案。因为:认真可以把一件事做对,用心可以把一件事做好。”

石墨.jpg石墨文档研发负责人,李子骅

围绕关注“非功能需求”与“DevOps相关”两个关键性的话题为大家带来分享《敏捷思想在产品周期的延伸》

“产品周期指数指的是我们产品的迭代周期,我们知道一个产品可能会有需求的提出,需求的评审,需求的确定,以及我们实际的开发测试和交互。我们知道从01年敏捷开始到现在已经有越来越多的项目在使用敏捷。其实现在敏捷已经变成一种常态,这个时候讨论敏捷的被大家的忽略点就变得非常有意义。”

王明兰.jpg

著名精益&敏捷转型专家—王明兰

从我们现在所处于的不确定性、异变性的时代环境着手,为大家带来分享《打造VUCA时代的敏捷型组织》

“VUCA最早来源于冷战时期,由美国哈佛商学院提出。讲的是在现在这个时代,世界越来越不确定性,越来越异变,越来越不可预测,我们已经进入到了VUCA时代,我们再也不能用原来的那种传统的、计划驱动的方式来工作,因为时代太不确定性,大家要拥抱变化。敏捷本身也是从2001年敏捷研修院起来也是在那样一个时代背景下,越来越发展壮大。如果倒回来很多年之前,敏捷不会发展壮大,因为我们还没有进入这样的时代。”

b69ab31dcf039bafc44d80e5e4cb792.jpg