一句话总结

About Steve Jobs

做人做事,不为钱,只惟心
高度专注,有所失,为极致

About Google

It's meaningless if not 10x times faster

对一句话总结的注释如下

看完乔布斯传,被其个人魅力所折服,又去下载了2007年2008年的发布会视频,瞻仰了他的具有魔力的演讲。

此人职场的简历十分辉煌,我最敬佩的一点是他的固执,当自己决定了目标和想法之后,就一意孤行放心大胆的去做到底,即使大哭大闹(小时候),即使苦口婆心的去说服,即使暴躁的对待周围的同事,再加上一些强迫症的对艺术的理解,最终完成的产品总是能具有艺术的科技。不过同样因为自己对事业完美追求的固执,也让自己的身体遭了罪,即使在身体不健康的情况下,还是不注意身体健康,对治疗方案也采取最最保守的方式,于是去世了。

Lessons Learned: I want to say something to myself, hey boy, stay focus and keep doing on it, you'll be what you want to be.

看完google未来之境这本书之后,深深的感受到,那样的软件公司,之所以强大,不是没有原因的。我很欣赏他们公司的一些思想和理念。最欣赏的一个观点是:你现在做的工作内容,能否比之前的快10倍?100倍?我们可以想象的到,如果长期在这样的指导下去完成一些软件开发类的工作,很容易让大家头脑风暴,或者激发大家的突破性的想法,打破现有的条条框框,再加上一些硅谷固有的fast fail fast try,done is better than perfect之类的思想,出现颠覆式创新的软件作品(甚至硬件作品)比其他一般公司要容易的多。

推及到自己工作中的感受,我负责维护和改进test infrastructure,已经好些年没有重构过,即使满眼看去都是长得像java的ruby代码。每执行一个完整的end2end测试(由于产品的复杂性)需要至少一个小时,还有不少两个小时以上的测试。而我工作的日常里,堆满了各种各样的小的改进意见和改进需求,我想了想,就算你持续的完成这些不断蹦出来的小改进而从来没有跳出条条框框重新设计的话,又怎样,迟早会被计算机软件行业所淘汰,有的行业确实是需要持续的小改进积累多少年才能成功,可是计算机软件行业,从来都是颠覆式的创新,后浪推前浪,前浪死在沙滩上。贵司test infrastructure一切都太陈旧了,需要来一次革命性的重构,不对,不需要重构了,应该直接重新写一个,用最新的软件设计方法和软件框架。

现状:贵司的那些端到端测试,从代码覆盖率和测试逻辑覆盖率来看,有太多太多的冗余了。举个简单的例子,测试A需要运行一个小时,某个根据产品新功能的新添加的测试B也需要运行一个小时。而A和B的一个小时中,有55分钟都在走着同样的逻辑,测试着一模一样的代码。当有几十个这样规模的端到端测试的时候,可以想象有多少机器时间都是在白白浪费。而现在的测试框架,适应着这样大量的端到端测试,每当要增删改查一些自动化功能,一不小心都会伤筋痛骨,因为代码实在太陈旧了,无法方便的解耦,如果哪一天有了新的测试类型,也将难以适应。

我认为,一个健康的测试系统里,复杂的端到端测试数量应该比较少,虽然它们执行时间长,但是需要保证核心流程核心功能不会失败,有一定数量的中等复杂度的测试(例如subsystem test),然后应该有大量的复杂度很低执行速度很快的小型测试(单元测试也可算是一种)。在这样的测试用例分布下,才会更加容易让这些测试发挥价值,定位错误,尽早发现小错误,更新容易根据产品新功能添加新测试,去掉老旧测试的时候也更加得心应手。只有在这样的测试系统框架下,才可以做到比现有的测试框架高效10倍100倍。

看到此处肯定会有人问了,你有这个想法,你有没有去执行和实施呢。尝试过,沟通无效。