本来十分懒得码字了,但看了思寒的帖子突然想写一下,我也来灌水了。
生活:
波澜不惊,用一个矫情的词叫做“岁月静好”。但爱人的舅妈被车祸夺去生命和我的大舅罹患癌症(所幸在早期,手术很成功,基本上痊愈)让我更加意识到生命的脆弱和人生的无常,更珍惜安宁的生活。希望所有亲人朋友都永远平安。
去年工作太忙导致疏于活动身体不大健康,于是从今年年初开始跟着热爱运动的同事刻意锻炼。谢谢在航信一直拉着我我跑步的前辈和在雪球加入的“不跑步就发红包”群,今年跑了300多公里,做了1000多分钟的keep。身体状态好了太多。随着年龄的加大,对身体是革命的本钱这句话越来越认同了,16年一定要继续坚持锻炼。
正在为创造新生命努力中,希望一切顺利。
工作:
15年7月份离开了自己服务近8年的老东家“中国航信”,来到了一个很棒的创业型公司“雪球”。
离开的原因主要还是职业路线发展。对于一眼就看到未来5年的样子的恐惧在14年发酵了一整年后终于爆发了。经过和家人的深入沟通和要好几个兄弟的多次恳谈,终于下定决心迈出了跳槽这一步,放弃了很多人“羡慕的稳定工作”,来到了互联网公司。当然,收入回报也是一个很大的考量点。男人毕竟要养家。虽然在航信的薪水据说还可以了(走的时候人力说我是我们那一届两百人里钱最多的之一),但是在北京生活的压力只有生活在这里的非土著同学懂。
工作交接十分快,因为我提前半年做了布局,把手里的活儿全部分给了原来队伍里的小伙伴,并确认了他们可以自组织的搞定一切。因此交接只用了一天。辞职有些不顺,大领导不愿意放我走,结果拖了大约3周,还是部门领导给我求情他才放了我。
对于航信,我更多的是感谢和不舍。感谢部门领导一直以来对我的信任和提携,也感谢身边的每一个同事一直以来给我的家的感觉。离开算是一个自私的决定。
去雪球颇具戏剧性,4月份面试了三个紧随BAT的大公司,并拿到了2个offer(一个拒了我)。因为一直觉得有一个项目没做完,有责任放不下,迟迟没有辞职(其实也是自己不够满意)。6月份的一天,一个航信最要好的哥们跟我说:“我要撤了,找你吃饭。第一个告诉你,别跟别人说”。我心里第一句话就是“我操!怎么是你!”。跟他聊后,我心里那股劲头已经无法遏制了。晚上就翻开招聘网站准备继续投简历。这时候正跟老婆聊天,她问我一只股票如何,我说“你上雪球去看呗(我是雪球铁杆用户)。”。老婆很不乐意的回了我一句:”你整天看雪球,你去雪球上班得了!“。我一个激灵,原来可以这样!搜索一下,果然有雪球的招聘,然后就直接投了。后来就约了面试,雪球的面试在我这几次面试的感觉是最好的,面试我的几个人都体现出了对技术的热情和十分深厚的底蕴,气氛也特别轻松,我觉得这里是个有朝气的团队。
面试过后,CTO很快给我打了一个电话,说还算满意。但是我没有任何移动测试的背景是个硬伤,所以需要二面。于是约了3天后再次面移动。回家后赶紧我找了几个做移动测试的哥们要了相关的资料,用了3天的时间撸完了两本书,三百多页ppt,最终通过了面试。这里要十分感谢 芈珺,Monkey 和邢大棒,感谢你们的资料和支招。
在雪球的工作其实很繁忙,头绪也很多。但是逐步招聘上来的小伙伴都十分给力,他们在移动方面的知识也弥补了我移动测试的短板,给了我补课的时间。我们经常是一起讨论改进、解决方案然后快速实施,每一天都会一小点进步。思寒同学的加入更是让team有了很大的提升,他对技术的极度热爱和对测试的深刻理解让他在team里更多的承担了技术带头人的作用,而我则有很大一部分精力放在了所谓的”杂事“上。虽然作为技术控的我有一点不甘心,但理性告诉我,对于团队来说,这样的配置是更合理的。
经过四个月的缓慢爬坡,也经历了不少挫折,雪球的测试算是初步做起来了(虽然还有很多不尽人意的地方)。这点我还是很欣慰。值得说的是,这绝对是teamwork的结果,得给team内每一个小伙伴点赞。
在雪球,我也慢慢的适应了”互联网节奏“,和很多更年轻的小伙伴一起协作(大多是八五后九零后),他们的能力,冲劲,热情和青春无敌让我只能用”羡慕嫉妒恨“来形容自己的心情。作为一个老人,得继续保持学习和工作的热情,才能长期与之共舞。
年底接到了年初拒绝我的公司的又一次邀约,虽然职位和薪酬很有吸引力,但雪球让我有家的感觉,于是婉拒了。找内部的哥们打听了一下,再一次联系我是因为我以前的行业背景同招聘公司现在上马的项目很吻合,而且有人从内部推荐了一下我。这个例子告诉我,找工作还是偶然性很大的,有的时候能力不决定一切,有太多不相关因素(企业是否正缺人,HR看你是否对眼等)。所以,找工作碰壁的时候不用太妄自菲薄。
读书:
作为一个书虫,今年是这几年读书最少的一年。读的书屈指可数,一来工作越来越忙感觉读技术外的书变成了一种奢侈,花一晚上读本小说或者传记就会有强烈的负罪感;二来好的技术书籍太少了,翻十来页页就有想扔掉的冲动,具体技术现在越来越多的是在读官方文档。盘点一下今年读的书。
非技术类:
《The Martian》
《三体英文版第一部》
《亚特兰蒂斯-基因战争》
《湮灭-南境之国》
《从0到1》
《耶路撒冷三千年》
《人类灭绝》
《Google 重新定义公司》
《Beyond Blame》
6期《新知杂志》
12期《哈佛商业评论》
12期《环球科学》
技术类:
《More Agile Testing》
《驯服烂代码》
《快学Scala》
《重构》 (重读)
《Spring in Action 4th edition》
《Docker Cookbook》
《Learn Git in a Month》
《Restful web apis》
《Java.Performance.The.Definitive.Guide》
《Web Development with node an d Express》
《iOS测试指南》
《移动App测试实践》
其它:
· 完成了北航研究生的一门课程的授课。花费了10周的周末。虽然讲过一轮了,但过程依然很痛苦,每一次讲课都会把上一轮的课件改的面目全非,每一次讲完都觉得自己有太多东西不懂了,需要继续努力。讲课也是一个认识自己局限的好方法。
· 作为GITC2015的演讲嘉宾做了一个关于测试的演讲。是大几十个讲师里唯一一个讲测试的。现场反馈还不错,有一点儿欣慰。
· 给国内某大银行做了一次”敏捷测试“的培训。发现传统行业的很多工作理念还是很有很大上升空间的,希望我的课程能有一定帮助。
· 给几个企业提供了数次免费的咨询(都是朋友找的),提供帮助的同时,也了解了很多企业现在对于测试和质量的现状,其实都并不乐观。
· 获得了Coursera的数据科学的一门课的认证证书(还有九门没有修完)。数据分析重新激起了我的兴趣,也许未来工作会向那方面靠拢,做一些技能储备。
关于质量:
好像已经说过太多,没什么可说的了,但还是抽象的唠叨几句。
多年的工作让我越来越清晰的认识到:质量绝对不是一个环节,一个工种可以搞定的 。从对语言的误用,到对第三方组件的误用;从需求根源就有问题,到需求传递过程中出现的误差;从设计代码基本逻辑设计不合理,代码架构设计不合理;从一些参数配置错误到上线的版本弄混;从架构师不良的设计,到运维人员不规范的操作,质量问题可以产生于任何一个环节。随着系统越来越复杂,单点的问题会累计成片的问题,面的问题,最后产生灾难性事故。这些例子见得太多太多了因此,搞定质量是系统性工程,是绝对的teamwork,人、流程、技术、标准都是不可或缺的。如果只尝试从单一角度解决质量问题, 即使采用再牛逼的技术,下再多的力气,定再多的流程,也可能只会事倍功半。但是我发现,很多团队解决问题总是极度偏向一个维度的。有的组织定义一大堆流程,并严格执行,最后演变成了抠文字的游戏和邮件大战,而对采用落后的技术给生产力、质量带来的极大拖累视而不见;有的团队极度追求技术,什么新用什么,最新的架构、框架全都用上,却发现开发人员一行单测也不写,连类型转换,不捕获异常,少写个等号这样的基础代码级别的bug都要等系统测试阶段再发现;有的团队开发人员极为强悍,从代码工程角度来看架构、设计、代码、单元测试、评审都无懈可击,但是需求竟然是邮件来回沟通,到最后还是为其所累;还有的团队似乎每一个点都照顾到了,还过了CMMI5,貌似一切都很好,但是发现,改一个按钮的需求要搞一个半月才能上线,要知道,开发效率也是质量的一环啊。 这些都是我见过的真实的例子。
如何搞定质量呢?答案是”综合治理“这几个字。至于如何做,其实不同的团队实现起来会大不一样。因为团队结构不一样,产品类型不一样,公司文化不一样,怎么会有万灵药呢?在大多数情况下,质量的长足改进都是对基础的重视和无数次磨练团队成员打造出来的,对于老的团队更需要拿出伤筋动骨的勇气和从一行代码搞起的决心。可惜国内大部分团队的质量体系只停留在一个初级阶段(我做过上百人的访谈,还是有一点发言权的)。我们国内大部分it团队离成熟、高效仍然有很远的举例,需要我辈一起努力。
那么问题来了,在这种前提下,测试人员如何开展工作呢?
我的观点如下:
· 测试工程师的传统工作边界会越来越模糊甚至会被打破。不再固守”系统测试“这片疆土,而把工作前移是一个必然趋势,而前移需要开发技能和开发人员的半成品对接,这是个残酷的现实;测试后移也是趋势,利用生产数据、行为做测试也将是测试人员需要掌握的技能,这里就需要测试人员掌握一些运维知识和数据分析知识,这些也和开发技能难以分开;而随着系统越来越复杂,各种非功能性测试也会越来越重要,而大部分非功能测试同样需要开发技能(如性能测试,安全测试)。没有这部分技能是无法做好测试的。测试对开发技能既要求广,又要求深,其实挺过分的(这从一个点印证了做测试工程师是一个投入产出比很低的选择,这也是我一直坚持的观点)。
· 人的认知和学习能力有极限,作为一个群体,又会是正态分布的样子。因此不可能所有人都是大神级人物(企业也招不来养不起不愿意养),测试会是以teamwork的形式cover各个质量环节的一部分,并形成一张质量网。在纵切面上会有一些人钻得很深,如安全测试工程师,性能测试工程师,做框架的测试开发工程师,系统测试分析师,这样才有可能把精力集中在一点,搞定技术的难点,把事情做下去;又例如有些业务极为复杂的企业,需要很多BA来搞定业务复杂性,有一些BA是偏向测试的;如果组织很大,你就会发现无数流程上的低效率,反模式,这时候其实需要有一些人专注过程,一些测试人员会承担起这些责任。这些都会造成测试人员内部的分工,也会造成测试人员之间的薪酬差异逐步拉开。我觉得测试做测试的同学应该找准自己的努力方向,要学的太多,精力总是有限的,得自己有个人发展路线图。再次强调,测试工作是一个投入产出比不如其他it岗位的工作。
· 不要把自己局限于”我是测试工程师“,这样你的职业路线才会逐渐开拓,你对组织的贡献才会逐渐加大。这个不展开说了,工作久了并有一定灵性的同学都会懂。第三次强调,测试工作时一个投入产出比不如其他it岗位的工作。
· 如果你真的喜欢测试,坚持下去。不然真的可以换换岗。
关于2016年的测试工作:
只想说几句话:我们已经隐约看到了珠穆朗玛峰的峰顶(虽然它在不断长高),但是我们仍然走在山脚下。看到和爬到是两码事儿,仍然有太多的路需要一步一步的走。希望2016年我们的每一步都是踏实的,有成效的。
关于个人的2016:
· 低头看路,抬头看天继续努力前行吧。把自己手头的工作做漂亮,给团队提供良好的服务。
· 保持锻炼和作息规律,有一个健康的身体。这才是一切的根本。
· 多回几趟家,多给老人打打电话。
· 和家人愉快的出去旅游一次。
· keep learning & keep sharing
· 先写这么多不设定硬性指标,list没准会加长。