justep 2013-08-07
http://robbinfan.com/blog/19/first-year-in-csdn
在我来公司前,CSDN无产品设计和研发流程,无论部门内部还是跨部门产品研发,都是业务人员直接找负责该产品线的程序员下命令修改;大的产品研发,业务人员找UI设计人员做一套页面就发给程序员要求XX时间完成,相互之间缺乏沟通:一方面程序员反感和抵制没头没脑的需求和毫无计划性的产品变更,觉得自己被使唤来使唤去在公司没地位;另一方面UI设计人员被迫承担了本应该是产品经理的需求搜集和产品设计工作,盲人摸象的做完就交差;最后是业务人员抱怨UI设计人员和程序员根本不配合,觉得他们都是大爷哄着才能干活。结果团队之间部门之间推卸责任,事情做不好只怪对方不给力,自己全然没责任。
针对这种状况我设立了产品团队,亲自兼任产品经理把所有产品都抓过来统一管理。无论部门内部还是跨部门产品研发,统一走产品设计流程:所有产品先经我批准,然后在产品团队立项,走产品原型设计流程,接着才是UI设计和页面制作,最后才是程序员研发。从源头上狠抓产品原型设计,在原型设计阶段反复推敲和修改,慎重的对待每项产品功能,避免了后续UI反复推翻页面设计,程序员反复改产品的大问题。从CSDN产品角度来说这段时间做了一些小的产品改进,如主题课堂,织梦内容发布系统,投票评论留言,新浪微博整合等,但主要工作在梳理CSDN混乱的产品线,通过两次清理,关闭了100多个废弃或者很少被使用的子网站和域名,关闭了很多鸡肋性质的频道,以及核心产品的鸡肋功能。
这几个月虽然做了大量的部门建设工作,员工士气得到了很大的提高,但员工流失仍然在继续。而且我反复强调的工作理念得不到良好的贯彻执行,员工完成的任务质量离我心中的标准差距很大。
2010年8月底我彻底base在北京办公,这个时候部门员工只有10个人:3个程序员,3个社区运营和客服,2个网站运维,1个产品设计,1个UI制作,巧妇难为无米之炊。所以9月和10月在公司支持下进行了一轮大规模招聘,总共招聘了10名新员工,重新build了整个部门团队,开始取得了一些成绩,但也遇到了非常大的困难。
在产品和研发方面:彻底重写了CSDN用户管理功能(以下称passport),数据库也迁移到了Linux下MySQL;编写整个CSDN的搜索部分代码,提供了全文检索;对CSDN网站全站导航进行了重新设计和改造;开发了新的针对移动的cmdn社区(后废弃)。
由于CSDN各产品线都是独立的,因此需要统一的用户注册登录管理产品passport。在过去,passport代码极其臃肿,不同产品线的登录代码直接hard code在源码中;数据库使用SQL Server,大量有用无用的存储过程调用,用户表数据量庞大,而且非常多无用冗余字段,查询缓慢,用户时常无法登录;而且CSDN用户注册和登录页面的用户体验极其糟糕;最后CSDN很多产品以各自的方式调用passport,导致passport不得不维护多套协议适配各种产品。因此欲改进CSDN网站,必先动passport,而一动passport,则牵一发而动全身,CSDN所有产品都可能出问题。因此在动手重写passport之前,我耐心等待了好几个月,一方面一遍一遍做CSDN产品线梳理,尽可能找出所有耦合产品提前解决隐患;另一方面等待各部门高管一致表态愿意承担各自产品线出问题的代价来支持重写。
新的passport产品从2010年9月设计到2011年元旦上线花了3个月时间,passport产品看似需求简单,代码量不大,然而却有非常多的细致工作:重新设计整个用户登录验证功能,以确保更高的账号安全性;尽可能的测试所有CSDN需要登录验证的产品线,跨不同编程语言,以确保兼容性;由于账号数据库达到了1700多万条,必须使用缓存来提高用户账号数据查询效率;详细的登录日志记录、授权记录以及账号审核功能以确保误操作的可追溯和找回;庞大的数据量从SQL Server迁移到Linux下MySQL的迁移效率问题;重新设计用户注册,登录和账号设置,改进用户体验等等。新的passport产品上线并不引人注目,但意义非常重大,它是第一个真正讲究产品设计和用户体验的CSDN产品,而且解决了passport问题,其他产品才有可能改进。
这段时间遇到的最大困难是我始料未及的团队融合问题:9月和10月集中入职了10名新员工,整个部门有一半都是新人,但到11月有5名新员工离职。公司招聘新人留不住是个很严重的问题,这也是我进CSDN以来遇到的最严峻的挑战。新员工离职虽然有很多原因,但最核心问题在于两点:
新员工入职过多过于密集比例过高,我没有高度重视新员工的融入问题。后来关于新员工融入也有很多经验和教训:新人入职前两周对公司的印象决定了他对公司的最终印象;新人入职第一个月适应与否决定了他在这家公司会待多长时间。那段时间集中入职了10个新人,没有制定系统的新人融入计划,而我又有一周多时间不在北京,新人茫然无措。
虽然经过我前几个月的调整,但当时部门都是工作多年的老人,老的风气和习惯已经形成了很顽固的不良文化,新人很难适应这种不良的文化和环境,同时又被个别老员工灌输了太多公司n年前沉芝麻烂谷子的负面八卦,工作情绪受到很大的影响。
公司文化说起来很飘渺,但它又实实在在影响每个员工。一个新员工进入一家公司,要么被公司的文化同化,要么自己适应不了离开。而这次是大批新员工入职,老的公司文化和新员工群体之间的融合问题突然变得很尖锐,大批新员工离职就是一个很糟糕的信号。我当时感觉到这是个生死攸关的挑战和契机:如果任由这种情况发展下去,老的公司文化会迅速吞噬掉新的员工,然后整个部门回到一开始死气沉沉的状况,我所有的努力都会化为泡影。一鼓作气再而衰三而竭,这次如果不能借新员工入职来冲击和改变老的公司文化,而是任由新员工全部流失,以后未必能有第二次机会和心气去改变整个团队的风气,因此我下定决心把整个部门风气彻底扭转过来,并且针对性采取了一些措施:
我原来有自己独立的办公隔间,但坐在隔间里面不方便和员工直接交流,也不利于发现团队的问题。所以我就干脆搬到员工的工位坐,这段时间主抓哪个团队的工作,就搬到那个团队中间的位置坐,随时随地和员工沟通,检查员工工作,及时解决团队出现的问题,并且这样做也可以身体力行的教会员工怎样正确的做事情,怎样达到我要求的工作标准,怎样成为一个优秀的员工,怎样避免犯不应该出现的错误;此外我给自己设置了3个月的冻结期,从11月到春节前除了必须在上海出席的SD大会之外,杜绝一切外事活动,专心致志在公司蹲点练好部门的内功;在抓团队工作的时候,深入到业务层面提高工作要求,如对研发团队我会做详细的code review,对产品团队我会仔细检查每个产品原型设计。
经过3个月的不懈努力,整个部门的风气被彻底扭转过来了,新人和老人开始融合成为了一个集体,团队的执行力得到了巨大的改变。过去我下达的一个命令,要我自己一个环节一个环节盯下去才能完成,这个时候下达一个命令,整个团队就会动起来自己按部就班的执行下去,并且这种风气反过来开始影响老的员工,推动老员工开始转变。我所管理的部门从3月底接手的时候被公认是公司最差的部门,到年底变成了公司风气最好的部门。
虽然部门的风气已经开始走上了健康的自我循环,但部门缺岗仍然很严重,过完春节之后整个部门有20个员工,这个时候遇到的最大问题就是招聘荒了。今年2月-3月是整个IT行业招聘都特别困难的时期,一方面由于各大互联网公司特别是电子商务和团购网站的疯狂招聘,另一方面IT人才供给开始减少,连大公司招人都很困难,更不要说我们了。在4月之前长达1个半月招聘期间一个新人都没有招到,而且由于各种原因陆续有人离职,到4月,部门员工又缩减到14人,团队又需要重新build了。
从2月到5月份我的核心工作就是招人和build团队,整个招聘状况从4月份开始转变,4月-5月招聘了大量的新人,同时也有很多公司内部转岗的员工,到现在,整个部门人员已经扩张到了11个团队总共36人。由于有了去年的惨痛教训,对新人入职进行了高度重视,因此虽然入职本部门有22个新人,远超过原部门员工14人,但新人融合情况非常好,整个部门蒸蒸日上:
由于一方面高度重视新人适应期,另一方面经过去年底的风气扭转已经形成了良好的部门文化氛围,因此除了个别拿我们当去大公司跳板的无良新人,绝大部分新人都很好的融入了部门,并且随着新鲜血液的不断加入,很多新人工作的冲劲和心气对部门文化氛围不但没有冲淡,反而对部门文化进行了很大的加强,而这种更加活跃,更加积极主动承担责任做事情的态度反过来又不断激励了部门老人改变自己的作风,以更加积极的态度工作,新人和老人之间的互相促进起了美妙的化学反应。
在部门团队build方面,扩张到了11个团队:3个产品团队:产品设计,产品UI,平台UI;4个研发团队:PHP,Ruby,.net和搜索;3个运营团队:社区运营,内容审核,高校俱乐部,此外还有系统运维团队,这11个团队经理直接向我汇报,整个部门职能团队基本齐全了。在我来CSDN之前,公司没有产品设计团队,产品设计方面一片空白;社区运营团队也十分残缺,干的活根本就达不到运营的基本要求,所以我针对性的build了产品团队和运营团队:
CSDN博客是其中开发周期很长的产品,由于我主要精力都放在招聘和团队建设上,放松了对博客产品的管理,而手下产品经理的能力和权威尚不足以独自掌控博客产品,因此到5月底,产品开发陷入了失控的边缘。这个时候我召集产品,UI,研发和运维团队进行了博客产品特别团队的立项,下了死命令6月底产品必须公测,由我主持所有相关人员每天下班前开会,review每天进度,同时产品经理每天根据会议情况写日报抄送给大家,我亲自抓每个产品细节和每天项目进度。两周之后,产品状况得到了彻底扭转,此时我让运营团队也加入特别项目组,开始进行博客上线前期的运营准备,包括邀请用户内测,定期发布公告,整理博客专家等等,最终博客产品顺利上线并且取得了良好的效果。
CSDN博客产品的成功推出和后续成功的运营对团队有很大的鼓舞作用,它并非各团队配合最好的产品,但从博客产品开始,我手把手教运营团队如何处理一个产品从上线前准备,到上线,到上线后持续运营,以及如何制定专家运营策略,博客推广策划,如何掌握运营节奏等。在CSDN博客产品上线之前,CSDN的运营还没入门,从博客产品开始有了真正意义上的运营。此外产品,UI,研发和运营团队从博客产品开始进行充分的磨合,中间暴露了很多问题,也取得了一些宝贵的经验:今后核心产品的研发从立项开始,我就会召集产品设计,产品UI,产品研发和运营四个团队参与,从一开始就紧密配合,共同完成好一个产品的设计,研发,上线和运营流程。