公司动态

放任型的教练

2015-05-052515

  《程序员》:据我所知,在加入北森之前,您曾在Yahoo!和MySpace工作,当时是怎样的情况?

 

  张庆化: Yahoo!是我的份正式工作,从初级工程师,直到担任了搜索竞价事业部架构师。那时主要负责竞价排名后台财务系统的计费管理,由于所有的系统都是和钱打交道,因此整个系统的设计在事务完整性和一致性方面的要求特别高,重点就是要保证整个体系能够支撑起Yahoo!相关搜索业务的实时计费和第三方代理商后台计费。在技术方面主要是基于SOA架构体系,采用COM+进行事务管理,以保证事务完整性;在业务方面,通过实时数据和备份数据的同步,解决线上系统和内部系统的数据操作,采用MSMQ(微软消息队列)进行消息同步。现在回顾起来,这套架构挺不错,既能确保对性能的要求,同时也兼顾了数据一致性和完整性。

 

  后来,我加入了MySpace创业团队,开始时主要去美洛杉矶MySpace总部将网站迁移到,后续还负责分布式缓存DataRelay以及开放平台的搭建。MySpace本身相当开放,它所有的代码权限对工程师都是开放的。我也是从MySpace开始,才真正接触到完全互联网级的开发。在我看来,MySpace是在.NET技术领域使用微软解决方案成功的一家企业。与在Yahoo! 所从事的偏重于企业软件不同, MySpace多的是性能、海量数据、并发等方面的要求。火爆的时候,MySpace同时支撑在线用户数达2亿多。

 

  《程序员》:给我们讲一下MySpace开放平台的事情?

 

  张庆化:当时开发者对开放平台比较陌生,而MySpace可以称得上是家在搭建开放平台的公司。MySpace开放平台名为MDP,主要是遵循Google的Open Social规范,偏重于JavaScript和Flash开发,多的是与第三方公司合作。个人开发者则主要从事Flash开发,大约有几百个。MySpace曾经组织过一个开放平台创意与编程大赛,吸引了不少开发者参加。

 

  《程序员》:离开MySpace,为何选定北森?

 

  张庆化:在大学的时候,我就曾在北森做过兼职。当时北森刚刚起步,员工不到10个人。在那段时间,我学到了很多,也与创始团队建立了比较深的感情。于是,在后来的日子里,每年我都会和北森的老板进行一次交流,了解双方的进展,说句不太恰当的话,我是看着北森一步一步发展起来的。在2009年的那次交流中,北森老板提到说想要做人才管理SaaS平台,而当时SaaS还是新鲜事物,出于技术人员喜欢挑战的天性,我对有机会负责这个项目产生了浓厚的兴趣,于是顺其自然我就加入北森。

 

  《程序员》:那确实是很早就开始云计算实践了,这个过程怎样?

 

  张庆化:大家都说在做SaaS、云计算,但具体到真正的行业业务领域,并没有几家有成功的业务模型,多的是在做存储或虚拟化。我们的人才管理云计算平台,让用户真正通过互联网就能使用我们的服务,这就意味着必须要满足高性能、高并发等互联网技术的底层要求。而我们是面向企业的,因此必须按照企业软件的特点去实施,例如灵活定制、多租户隔离等。通过不断摸索,我们终形成了是 “人才管理云计算平台架构=互联网底层架构+企业软件+运维监控平台+云安全”这套架构。

 

  《程序员》:在研发这套架构的过程中,您都遇到了哪些挑战?怎样解决的?

 

  张庆化:挑战非常大,技术和人两方面。但是必须承认,有挑战才有可能产生价值。

 

  技术方面。,技术框架设计挑战。设计并开发人才管理平台之初,多的是SaaS,云计算还没这么流行,但应用场景已经很清晰了,北森有三千家客户,要将这些用户都迁移到平台上,意味着系统会有上万人同时访问,所以在搭建体系框架之初就得考虑高性能和高并发双重因素。

 

  其次,企业软件一个重要特点就是个性化,这要求我们要确保租户隔离,在保证灵活定制的基础上确保企业信息的独立性和安全性。的挑战也是关键的设计就是如何把两者集成到一起。当然,原则是既定的:互联网的技术用于体系底层搭建,在此之上考虑企业软件的灵活性。形成了互联网底层架构和企业多租赁架构深度整合。

 

  再者,时间挑战。公司的目标是在一年内推出平台。这就意味着所有的产品线都要一起铺开,同时进行才能确保如期完成,这个蛮有挑战的,毕竟当初北森整个技术底层是空白的。为此,我们建立了一套开发模式保证体系:利用互联网的开发模式缩短开发周期;确定好底层架构,在此基础上支撑六条产品线同时进展;产品方面以迭代模式进行的,比如说短的一个迭代周期一个月个产品模型就出来了,这对于商业软件开发还是挺具有挑战的,在这个模型的基础上进行不断的调整。还有,技术体系挑战。我们要做到整个底层架构体系要相对独立,不能够和我们的业务体系牵扯得很深。就意味着我们在做底层划分的时候,要体系支撑产品线,但不能制约产品线。

 

  ,运维挑战,以前当线上出现系统出现问题的时候,都是客户打电话来,我们才被动知道。现在我们有专业的SystemOPS团队和AppOPS团队,目标就能够高效的保障我们的系统7X24小时正常运转,我们开发了“鹰眼系统”通过该系统来监控线上业务系统,在线上出现问题的时候,时间收集到线上环境状态,并解决!

 

  人的方面:,的挑战是工程师的思想意识。比如说,对于互联网产品会大量使用开源技术,但开源技术可以用在什么场景,需要工程师有这个意识。为此我们采用了敏捷项目管理模式,当遇到问题时工程师会贴到白板上,定期地一起来评估,给予指导。还有,我们在进行产品设计时,会遵循CAP原则,为满足其中的两种特性就必须要牺牲第三种特性。这个原则让我们的工程师形成了一个认知体系——开发的服务必须可降级,所以每位工程师在设计体系时,需要评估服务能否能做到降级、当这个服务降级时是否会影响到其他服务。这些都在思想意识层面挑战着工程师。

 

  其次,促进工程师成长。现在已经处在海量数据时代,很多业务场景都需要大量的计算,传统的方式在实时处理方面已捉襟见肘。为此,我们将有经验的工程师召集在一起,进行头脑风暴,拓展思路讨论出可行的方案,并确定负责人,大家可以主动认领。而当这个解决方案得以实现时,我们也会给予工程师奖励,比如微软TechEd门票。用有挑战性的工作促进工程师的成长。

 

  《程序员》:就是说您现在还在做一线的编码工作?

 

  张庆化:是这样的,这可能与其他公司的CTO不太一样。我对整个技术团队的定义是:技术团队的任何一个人,当然包括我在内,都必须能够以身作则地从事真正的开发工作,没有纯粹管理者的工作。我现在还会把30%的时间花在写代码之上。我始终认为,只有切身参与到团队的实际工作中,才能做好对公司整体的技术把控力。

 

  《程序员》:既然您不把自己定义为纯粹的管理者,那您是如何开展管理工作的?

 

  张庆化:在团队成立之初,多的是讲解我的经验,亲自编码把体系架构写出来,给成员做出一种模型来学习、沿用和发展。随着我们体系的逐步发展,我的管理风格也发生了变化,目前是“放任型”的,“放任”并不是放任不管,而是建立在原则加信任两个基础之上的。

 

  互联网企业的特点要求我们必须“快”,多地建立原则,尽量减少流程类等约束发展的东西。我们有各种各样的原则,比如 “线上稳定大于一切”。因为我们是提供云计算服务的,当线上一个产品出现问题时,工程师会很明确地知道,必须停下任何开发工作去解决线上问题,以保证给客户提供快速、优质的服务。还有其他原则,比如“言出必行”,对我们团队来说这就意味着执行力,就是项目Deadline不许变,不允许任何团队去挑战这个事情。如果是由于需求没有规划清楚,我们允许可变的是过程中的需求,不可变的是完成时间,这样才能确保我们的进度。因此,我在不断完善技术体系,制订好开发规范,在过程中尽量地减少流程。

 

  “用人不疑,疑人不用”,我信任团队的每一名成员。这样使大家工作起来有多的自主性,工作效率会高。我们有明确的白板文化,每天的站立会议,我也会定期去参加,当然我只是一个旁观者。相对来说,我现在多的是他们的一个“资源”,他们有什么疑问可以找我来协助解决,包括编码。我的期望是我们每一个团队都能自主性地驱动各种事情的发生,朝着自组织团队方向发展。

 

  在我看来,管理者应该是一个教练的角色,多的是协助团队的成功,毕竟,团队的成功才是你的成功。

 

相关动态
查看更多相关动态