欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

我来CSDN的这一年

程序员文章站 2022-03-01 12:46:26
...
从ITeye(JavaEye)被CSDN收购,我从上海搬家到北京上班,眨眼之间已经过去了一年多。回顾过去这一年,生活环境发生了巨大改变,工作的职责和角色也重新定位,面临了一些新的困难和挑战。总体来说,感觉自己这一年过得很充实,很有成就感,在公司的大力支持下,计划做并且花了时间和精力努力的事情基本都做成了,如果要给自己打分的话,我会打80分。那剩下的20分代表本计划去做却没有时间或者精力做的事情。希望在未来的一年,可以把我剩下的20分也做好。

2010年3月 - 2010年8月

2010年3月底我到CSDN报道,接手了公司研发部门和产品运营部门,负责CSDN(包括ITeye)网站所有产品,研发,系统运维,网站运营的工作,不过一直到8月我经常不在北京:一方面经常往返北京和上海处理公司并购的事情;另一方面因为母亲病重常常回家照顾。这段时间主要是熟悉公司的状况,了解部门业务和员工。当时部门士气很低落,两个部门总共17个员工,在我接手部门前已经有两个员工提出了辞职,后来陆续有员工离开,到8月底部门剩下了10个人。考虑到自己也是新人,需要时间了解和适应公司,另外刚刚空降,应安抚老员工保证部门正常运转,因此这段时间做了几项有针对性的改良措施:

1、两个部门人员很少,部门之间协作却存在互相推诿;我和基层员工隔了部门主管,团队经理两个层级,不利于深入业务层面进行调整。因此进行了组织架构调整:合并两个部门取消部门主管层级,改设5个团队,团队经理直接向我汇报,减少管理层级,提高执行效率。
2、逐步建立和完善部门规范的管理制度,如:使用JIRA进行整个部门的工作任务量化管理;建立定期周会,周报和月报制度;我亲自制定了部门绩效考评内容、评分标准和奖励等级;要求团队间工作配合必须邮件书面确认抄送给我等等。
3、针对公司过去跨部门配合出现的混乱状况,明确了本部门和公司其他部门合作流程,并要求跨部门合作必须抄送我和相应部门高管,得到我邮件确认才准执行。
4、针对公司过去产品无规划无设计的状况,设立产品团队,制定产品设计流程,我兼任产品经理主抓产品,并开始培养产品设计人员。

在我来公司前,CSDN无产品设计和研发流程,无论部门内部还是跨部门产品研发,都是业务人员直接找负责该产品线的程序员下命令修改;大的产品研发,业务人员找UI设计人员做一套页面就发给程序员要求XX时间完成,相互之间缺乏沟通:一方面程序员反感和抵制没头没脑的需求和毫无计划性的产品变更,觉得自己被使唤来使唤去在公司没地位;另一方面UI设计人员*承担了本应该是产品经理的需求搜集和产品设计工作,盲人摸象的做完就交差;最后是业务人员抱怨UI设计人员和程序员根本不配合,觉得他们都是大爷哄着才能干活。结果团队之间部门之间推卸责任,事情做不好只怪对方不给力,自己全然没责任。

针对这种状况我设立了产品团队,亲自兼任产品经理把所有产品都抓过来统一管理。无论部门内部还是跨部门产品研发,统一走产品设计流程:所有产品先经我批准,然后在产品团队立项,走产品原型设计流程,接着才是UI设计和页面制作,最后才是程序员研发。从源头上狠抓产品原型设计,在原型设计阶段反复推敲和修改,慎重的对待每项产品功能,避免了后续UI反复推翻页面设计,程序员反复改产品的大问题。从CSDN产品角度来说这段时间做了一些小的产品改进,如主题课堂,织梦内容发布系统,投票评论留言,新浪微博整合等,但主要工作在梳理CSDN混乱的产品线,通过两次清理,关闭了100多个废弃或者很少被使用的子网站和域名,关闭了很多鸡肋性质的频道,以及核心产品的鸡肋功能。

这几个月虽然做了大量的部门建设工作,员工士气得到了很大的提高,但员工流失仍然在继续。而且我反复强调的工作理念得不到良好的贯彻执行,员工完成的任务质量离我心中的标准差距很大。

2010年9月 - 2011年1月

2010年8月底我彻底base在北京办公,这个时候部门员工只有10个人:3个程序员,3个社区运营和客服,2个网站运维,1个产品设计,1个UI制作,巧妇难为无米之炊。所以9月和10月在公司支持下进行了一轮大规模招聘,总共招聘了10名新员工,重新build了整个部门团队,开始取得了一些成绩,但也遇到了非常大的困难。

在部门团队build方面:设立了PHP,.net和Ruby三个研发团队,分别负责不同的产品线;公司整个UI团队也划到我部门管理;网站的社区运营方面增设了内容审核团队,后来我又将运营团队分拆成CSDN运营和ITeye运营两个团队,加上原有的产品设计和运维,总共有8个团队经理直接向我汇报。

在产品和研发方面:彻底重写了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以来遇到的最严峻的挑战。新员工离职虽然有很多原因,但最核心问题在于两点:

1、新员工入职过多过于密集比例过高,我没有高度重视新员工的融入问题。后来关于新员工融入也有很多经验和教训:新人入职前两周对公司的印象决定了他对公司的最终印象;新人入职第一个月适应与否决定了他在这家公司会待多长时间。那段时间集中入职了10个新人,没有制定系统的新人融入计划,而我又有一周多时间不在北京,新人茫然无措。

2、虽然经过我前几个月的调整,但当时部门都是工作多年的老人,老的风气和习惯已经形成了很顽固的不良文化,新人很难适应这种不良的文化和环境,同时又被个别老员工灌输了太多公司n年前沉芝麻烂谷子的负面八卦,工作情绪受到很大的影响。

公司文化说起来很飘渺,但它又实实在在影响每个员工。一个新员工进入一家公司,要么被公司的文化同化,要么自己适应不了离开。而这次是大批新员工入职,老的公司文化和新员工群体之间的融合问题突然变得很尖锐,大批新员工离职就是一个很糟糕的信号。我当时感觉到这是个生死攸关的挑战和契机:如果任由这种情况发展下去,老的公司文化会迅速吞噬掉新的员工,然后整个部门回到一开始死气沉沉的状况,我所有的努力都会化为泡影。一鼓作气再而衰三而竭,这次如果不能借新员工入职来冲击和改变老的公司文化,而是任由新员工全部流失,以后未必能有第二次机会和心气去改变整个团队的风气,因此我下定决心把整个部门风气彻底扭转过来,并且针对性采取了一些措施:

1、加强部门内部的沟通和交流,打造一个交流氛围浓厚,成员关系很融洽的部门。鼓励员工工作时间经常热烈讨论和交流,甚至说说笑笑,无拘无束。
2、重视团队内部的分享,团队间轮流进行内部培训,将自己最近钻研的工作和技术心得向大家分享
3、在部门内部加强团队管理,树立赏罚分明,及时落实的威信,发现问题迅速解决避免拖延;
4、抓重点团队主次分明,在团队建设积极向上的交流氛围,推动整个部门风气的转变;
5、坐在员工旁边,及时和员工交流,杜绝各种杂事,拿出时间多和员工交流;

我原来有自己独立的办公隔间,但坐在隔间里面不方便和员工直接交流,也不利于发现团队的问题。所以我就干脆搬到员工的工位坐,这段时间主抓哪个团队的工作,就搬到那个团队中间的位置坐,随时随地和员工沟通,检查员工工作,及时解决团队出现的问题,并且这样做也可以身体力行的教会员工怎样正确的做事情,怎样达到我要求的工作标准,怎样成为一个优秀的员工,怎样避免犯不应该出现的错误;此外我给自己设置了3个月的冻结期,从11月到春节前除了必须在上海出席的SD大会之外,杜绝一切外事活动,专心致志在公司蹲点练好部门的内功;在抓团队工作的时候,深入到业务层面提高工作要求,如对研发团队我会做详细的code review,对产品团队我会仔细检查每个产品原型设计。

经过3个月的不懈努力,整个部门的风气被彻底扭转过来了,新人和老人开始融合成为了一个集体,团队的执行力得到了巨大的改变。过去我下达的一个命令,要我自己一个环节一个环节盯下去才能完成,这个时候下达一个命令,整个团队就会动起来自己按部就班的执行下去,并且这种风气反过来开始影响老的员工,推动老员工开始转变。我所管理的部门从3月底接手的时候被公认是公司最差的部门,到年底变成了公司风气最好的部门。

2011年2月 - 2011年7月

虽然部门的风气已经开始走上了健康的自我循环,但部门缺岗仍然很严重,过完春节之后整个部门有20个员工,这个时候遇到的最大问题就是招聘荒了。今年2月-3月是整个IT行业招聘都特别困难的时期,一方面由于各大互联网公司特别是电子商务和团购网站的疯狂招聘,另一方面IT人才供给开始减少,连大公司招人都很困难,更不要说我们了。在4月之前长达1个半月招聘期间一个新人都没有招到,而且由于各种原因陆续有人离职,到4月,部门员工又缩减到14人,团队又需要重新build了。

从2月到5月份我的核心工作就是招人和build团队,整个招聘状况从4月份开始转变,4月-5月招聘了大量的新人,同时也有很多公司内部转岗的员工,到现在,整个部门人员已经扩张到了11个团队总共36人。由于有了去年的惨痛教训,对新人入职进行了高度重视,因此虽然入职本部门有22个新人,远超过原部门员工14人,但新人融合情况非常好,整个部门蒸蒸日上:

1、我将带新人列入各个团队经理的绩效考核项目之内,加强对团队经理带新人方面的考评;
2、每周和各团队经理沟通新人入职后的表现状况,入职前两周几乎天天询问团队经理,对新人出现的各种状况立刻采取应对措施;
3、我定期对入职新人进行本部门的新人培训,帮助新人迅速了解部门状况;
4、对团队经理们进行管理培训,教会他们如何带好新人;

由于一方面高度重视新人适应期,另一方面经过去年底的风气扭转已经形成了良好的部门文化氛围,因此除了个别拿我们当去大公司跳板的无良新人,绝大部分新人都很好的融入了部门,并且随着新鲜血液的不断加入,很多新人工作的冲劲和心气对部门文化氛围不但没有冲淡,反而对部门文化进行了很大的加强,而这种更加活跃,更加积极主动承担责任做事情的态度反过来又不断激励了部门老人改变自己的作风,以更加积极的态度工作,新人和老人之间的互相促进起了美妙的化学反应。

在部门团队build方面,扩张到了11个团队:3个产品团队:产品设计,产品UI,平台UI;4个研发团队:PHP,Ruby,.net和搜索;3个运营团队:社区运营,内容审核,高校俱乐部,此外还有系统运维团队,这11个团队经理直接向我汇报,整个部门职能团队基本齐全了。在我来CSDN之前,公司没有产品设计团队,产品设计方面一片空白;社区运营团队也十分残缺,干的活根本就达不到运营的基本要求,所以我针对性的build了产品团队和运营团队:

1、设立了产品设计团队,制定了规范的产品流程,强调以互联网产品设计驱动整个产品设计,UI,研发和运营流程,将目前公司所有平台级产品开发统统规范起来了;
2、搭建了两个职能分开的UI设计团队:产品UI团队紧密配合产品设计团队,负责产品UI设计和页面制作;平台UI团队负责公司商务,会务,编辑,市场以及平面宣传品方面的设计;
3、对运营团队进行了重点建设:分设CSDN和ITeye的网站运营和客服人员,搭建了一支社区运营编辑团队,此外在公司内部进行社区运营之道的系列讲座,以及对社区团队进行专业知识培训,灌输运营理念,强化运营人员的专业水平;

在产品方面,根据公司整体战略和其他部门的需求,改版上线了CSDN博客产品;重写改版了CSDN学生大本营和高校俱乐部;重写改版了CSDN移动频道,云计算频道,对资讯频道和软件研发频道都进行了相应的改版;ITeye网站制定了全站整体的产品改版和改进计划,已完成了资讯产品改版,博客产品改版,精华频道开发,资讯采集和管理平台开发,审核系统开发,多账号登录等,正在和即将完成的还有全站消息通知系统开发,群组产品开发,网站首页改版,问答改版,论坛改版;此外还有CSDN下载产品,外包产品和俱乐部产品的设计和研发工作等等,这些产品将在今年下半年陆续上线发布。

CSDN博客是其中开发周期很长的产品,由于我主要精力都放在招聘和团队建设上,放松了对博客产品的管理,而手下产品经理的能力和权威尚不足以独自掌控博客产品,因此到5月底,产品开发陷入了失控的边缘。这个时候我召集产品,UI,研发和运维团队进行了博客产品特别团队的立项,下了死命令6月底产品必须公测,由我主持所有相关人员每天下班前开会,review每天进度,同时产品经理每天根据会议情况写日报抄送给大家,我亲自抓每个产品细节和每天项目进度。两周之后,产品状况得到了彻底扭转,此时我让运营团队也加入特别项目组,开始进行博客上线前期的运营准备,包括邀请用户内测,定期发布公告,整理博客专家等等,最终博客产品顺利上线并且取得了良好的效果。

CSDN博客产品的成功推出和后续成功的运营对团队有很大的鼓舞作用,它并非各团队配合最好的产品,但从博客产品开始,我手把手教运营团队如何处理一个产品从上线前准备,到上线,到上线后持续运营,以及如何制定专家运营策略,博客推广策划,如何掌握运营节奏等。在CSDN博客产品上线之前,CSDN的运营还没入门,从博客产品开始有了真正意义上的运营。此外产品,UI,研发和运营团队从博客产品开始进行充分的磨合,中间暴露了很多问题,也取得了一些宝贵的经验:今后核心产品的研发从立项开始,我就会召集产品设计,产品UI,产品研发和运营四个团队参与,从一开始就紧密配合,共同完成好一个产品的设计,研发,上线和运营流程。

个人总结

回顾这一年多的工作,觉得自己取得的成绩有以下方面:

1、彻底改变了部门的风气,打造了一支积极进取,配合默契,对工作有责任心,执行力高的团队,尤其让我欣慰的是当我出差一周不在北京期间,整个部门仍然有条不紊各负其责的运转,所有工作按计划照常推进;
2、在部门内部树立了规范的制度化管理,各个团队的工作都是在有目标有计划有策略开展,整个部门做事情条理性很强,思路很清晰;
3、打造了一支专业的产品设计团队,正在培养一支专业的运营团队;制定了从产品设计,UI设计到研发和运营配合良好的产品流程,个人觉得这种专业化的产品团队配合在国内互联网公司并不多见;
4、已经做了一些成功的产品,正在继续做更多成功的产品,这些产品将在今年下半年集中发布

亦留下不少遗憾和不足:

1、针对我接手前团队一盘散沙的现状,进行了一系列部门调整,说到底宗旨只有一条:进行*集权式管理。将所有决策权和团队协调工作,跨部门协调工作全部集于我一人,依靠我在公司的地位、威望和个人能力来推动所有的事情往前走。这样做的好处当然是立竿见影的解决掉了所有的问题,团队执行力也非常好,通过一年的努力也彻底改变了部门状况。但负面影响就是我很忙也很累,直接向我汇报工作的人就有11个人,加上部门常规管理,帮助个别团队解决问题,跨部门工作协调,公司高管会议等等,每天都忙得不可开交。

我也考虑在合适的时间将权力下放,将一个大部门再分拆成三个子部门,分别是:产品UED部门,下辖产品设计,产品UI和平台UI3个团队;研发部门,下辖PHP,Ruby, .net,搜索和运维5个团队;运营部门,下辖社区运营,内容审核团队。产品UED部门和运营部门设立部门主管职位,研发部门主管我自己兼任,但改设首席架构师职位,负责架构设计和code review。但目前主要的障碍就是缺少主管级人才,而且整个部门团队都是我手把手带出来的,工作方式已经深深打上了我的烙印,要寻找到能够从气质上能力上都符合的主管殊为不易。