马晓宇 --环信联合创始人/执行总裁
我们是一个做云服务的创业公司,所以我就云服务创业公司的角度,来谈谈我们是怎么去实践敏捷开发的。确切地说,就是讲讲我们这几年的这些教训...
1-创业公司敏捷开发流程有哪些?
日本企业:我的第一份工作,我发现它这个文化,或者它这个流程设计的是和他们的特点非常相关,如果大家接触过日本,就会知道他们有一个特点,两个字—“变态”。
为什么这么说呢?这可能是褒义,因为他们对文档,对质量,对流程,对测试要求就是两个字:变态。所以他们的整个流程就是非常变态。
大家如果写过概要设计、说明书这些的,你可能写程序花最多一周,但是写文档至少两三个月才能通过。但是这个好处是说保证随便的一个普通工程师,刚大学毕业,他进到这个企业,进到这个组织,他就能产出同样质量的一个软件,所以这个是很多公司其实做不到的。核心团队人员离职了,尤其创业公司,有时候面临挑战就会比较大。但是在这种变态流程里,它其实不缺人,因为每一个人都是螺丝钉。
电信软件:发现又不一样,我们一般做系统,出问题重启,但是电信它的要求是,希望这个系统一年不重启...
开源社区:一般一年开一次会,整个一个团队大概七八个人,多的十几个人在世界各地,每年年初或者年底开一个会,这个会上就讨论今年什么,都比较虚。组织形式非常松散,因为大家可能有一个共同的目标,客户的期待也特别大,所以就是没日没夜的去工作。
手机软件:挑战和其他的不一样,就是多了一个兼容性。因为手机系统当时我们有一个参数,就是说你一个软件发出来之后,你有多少个客户,升级之后,它要回厂,回到服务站去解决问题。
具体指标我记不清,每次都会检查,就是如果回到服务站的用户多了,这个软件就赔钱了。我们原来做移动的APP、SDK也面临同样挑战。
创业公司:生存挑战,我们找各种流程,找一个能适应我们文化的,最关键的其实想找一个能帮助我们生存下去的流程。
其实创业的话,就会觉得每个月有一天特别难受,那就是每个月给员工发工资的时候。几百人怎么去赚到这个钱,然后去给大家发工资。
那这个生存挑战怎么解决呢?可能就是四个字,“降本增效”,但这个比较虚了,都知道降本增效,但是实际怎么做啊?我给大家送一句话:“降本增效,就用Worktile”
我们用Worktile比较早,在2014年左右就开始用,早期的付费用户,觉得挺好用的,之后又在敏捷大会看了新版本新界面,感觉功能更加强大了。
2-SaaS需求管理,有何轻重缓急之分?
创业公司的需求来自 项目经理、研发、客户 等方方面面,也会经常面临各种各样的bug。
就bug的轻重缓急而言,我总结了三种类型的bug:
严重bug: 需要团队立刻去执行,去解决;
功能性bug: 需要团队进行排期,可能会花几周的时间去迭代修复的;
性能bug: 这是最难解决的,举例来说,当我们在设计的时候,系统一上线就能支持百万用户甚至亿级用户的自由伸缩,往往是不现实的。所以,在SaaS需求管理上需要去平衡不同功能的需求程度。
3-关于SaaS迭代开发,应注意什么?
创业公司在服务端上线周期基本上是一个月,上线有两个注意事项:
一个是回退方案, 即做到要求的方案都可以回退,遇到问题时可以及时做到回退。
另一个是兼容性问题, 一个产品面对不同的用户存在这不同的兼容性问题,这时我们需要做开关,如果产品上线可能造成某方面的损失,可以选择做降级开关来处理,保证部分功能实现。
移动端的上线需要注意发版问题,当做工具云时,在很短的周期内出了一版,但是没有测到严重的bug,随即上线后续更新的版本,这就会在用户体验上大打折扣。
4-SaaS 云服务的自动测试如何做?