初六的早晨,刚从老家回来,坐在出租屋的阳台上,阳光灿烂,竟然是北京难得的好天气。距离上次写年终总结已经过去好久,打开博客,发现上次写年终总结已经是四年前的事情。上次写总结的时候还是在东直门温暖的办公室里,随着年龄的增长,觉得时间过得越来越快,四年时间,发生了太多太多的事情:有小孩了,换工作了,最重要的,是三十了。三十,意味着很多事情,古人说,三十而立,对我来说,更重要的是有了更多的责任,不仅仅是家庭,工作也如是。
年初负责的第一个项目是配置管理组的运维自动化项目,简单的说就是将之前手工管理的20多台机器使用puppet管理起来。想一想,命运真是讽刺,就在一年前,在上一家公司,自己还对持续集成工具不太感冒,不愿去学,甚至认为有些太难:机器环境的管理、构建工具、jenkins、puppet/chef、shell,觉得这些东西太琐碎,一心只想写代码。换了工作,阴差阳错,先到配置管理组工作一段时间,必须学习这些东西,过程就不多说了,只有一个感悟:很多时候,你觉得太难,只是因为你不了解它。用了两周时间,将整个puppet环境搭建起来,一切皆SVN,一切皆代码。
接下来的第二个项目是负责调研搜索新架构的自动化发布方案,这是跨部门的合作项目,大大小小跨越20多个项目组,这其中还包括了运维同事、测试同事和云计算基础服务的同事,调研一礼拜,实际上事前准备了很长时间,仅仅那一周的调研计划就修改了四版,系统整理了整个新架构的架构方式,和对方领导达成一致,取得他们的支持,了解大家的期望:开发同事希望能够更快更有效率的发布代码,测试同事希望测试的代码与发布的代码同源,运维同事希望发布过程能够遵从规范可控,当大家对共同的目标达成一致时,方案就顺理成章了:持续集成服务器负责一键编译测试打包上传到包服务器,包服务器保存所有的预发布包,预发布包经过测试后才转为发布包,发布包透过发布系统一键推送到Torca集群调度系统,Torca完成最终集群的发布调度。相比老架构,感觉新架构最明显的提升是:下载、索引和检索三大模块被分离成各自独立的服务,独立演进;统一的数据管理平台,以前追踪badcase很难判定是哪个模块处理数据出了问题,现在透过数据管理平台,数据处理过程被可视化可追踪;统一的脚本执行系统,所有脚本以及执行过程透明可视化;云计算平台,XFS文件系统、Xcube数据库、Torca集群调度、mapreduce并行计算,这些服务大大简化了上层应用的开发。越来越体会到架构的本质:随着系统的演进,我们需要不断进行系统的分解,做到服务的独立演化。当然当时也有困惑:当所有的希望都被压在新架构身上,毕其功于一役,现网老架构停止开发运营时,项目的风险可想而知。做完这个项目,感悟有两个:一是机会只青睐有准备的人;二是跨部门沟通一定要找到共同的利益点,一定要多换位思考。
4月份,准备调回项目管理组,去云计算基础架构部做项目经理。在配置管理组的最后一个项目是Jenkins的报表系统,只有一周半时间,最开始准备使用scala,考虑到后续维护最后使用了java,好久没有编码了,找回久违的感觉:打印出IDE的快捷键,搭建开发环境、测试环境和产品环境,jenkins一键自动部署,数据库版本管理,TDD,一周半的时间就上线第一个版本,最后还不得不赞一下jenkins的rest api。感悟是:感谢一期开发时间只有一周半,这使得我们不断思考到底我们要做些什么,哪些是我们最紧急最需要的,哪些是锦上添花的,一期上线后,唯一也是最大的好处就是:我们再也不用手动统计和发送构建周报了,每个礼拜一再也不用那么忙碌了。时间盒,很重要。
终于转回了项目经理,去云计算,牛人聚集的地方。首先仍旧是补课:计算机原理、Linux系统编程、C++ primer,一个都不能少。去了没多久,出现了一起事故:搜索模块对云计算SDK的依赖是源代码依赖,云计算有5个产品,但是一个产品单独发布时与之前的SDK不兼容,一发布就直接导致了大量搜索模块的无法编译。正好由我负责来推动解决这个问题,立了一个发布流程规范化项目:通过规范化发布流程、增加自动化集成测试,减少云计算平台的发布风险。所有SDK统一打基线发布,发布前必须进行自动化集成测试,server发布时也要与所有SDK版本进行兼容性测试。随着项目的进行,逐渐融入了这个部门:这是一个工程师文化非常强烈的部门,所有人都在技术上追求卓越,加班到10点以后是非常常见的事情,单元测试覆盖率令人惊讶的全部达到85%,但是很多同事一听到规范和流程就头疼,项目计划也是比较随意,延期比较常见,另外因为之前发布版本升级比较随意,也会经常受到上游兄弟部门的投诉,有很多次出现问题,兄弟部门抱怨云计算平台不稳定,而仔细检查后发现很多时候是使用的方式不对,比如查找文件时使用了遍历。逐渐意识到,部门最大的问题其实是缺少产品运营,大家的关注点全部集中在产品本身上(吞吐量、最大存放文件数、强一致性),或多或少的忽略了用户。5月下旬,风神项目启动,项目目标是搭建台风统一的监控平台和自动化部署框架,打造一站式的台风服务。开始在项目中引入项目管理的实践,WBS是最基本的了,迭代计划找到开发节奏、回顾、每个迭代结束后都努力向线上发布版本,实现持续交付,工程上则将开发环境与线上环境进行了隔离。效果都还不错,但思考更多的还是,我们还应该做些什么。产品发布规范化,必须通过自动兼容性测试和周知用户;集群环境的修改必须可被审计,暂时不能自动化,那么先必须周知部门内同事或结对操作;监控有风神项目,但集群运营、用户数据、可用率日报也需要发送;开发、测试和线上环境互相隔离;定期和用户进行主动沟通,了解他们的问题。这段经历的感悟很简单:产品的核心在于运营,作为服务部门,我们交付的一定是用户满意度而不是产品。
紧跟着,新架构还未上线,组织结构调整来了,喜欢ls的直率:我现在的任务很简单,就是看到哪里有山头就把它给平了,所有人都必须听我的,所有人的思路必须一致。
在敏捷中国大会发表了演讲《百年历史看管理》,这个session足足准备了2个月时间,重新思考了流程、组织结构和人之间的关系。从20世纪初到40年代,管理科学完成了从无到有的第一个阶段发展,这个阶段最重要的成就就是将管理作为一门科学建立起来,发现了管理的三要素:工作流程、组织结构和人,并振聋发聩的告诉所有人:管理是可以学习的。我们可以看到,所谓管理,都不过是在流程、组织结构和人这三者之中进行权衡调节,管理没有固定模式,只有不同企业根据不同情况在这三者间权衡裁剪罢了。如果说管理科学的第一个阶段是在探讨如何正确的做事,如何提高工作的效率,那么50到60年代这二十年管理科学的第二个阶段则是在探讨如何做正确的事:以顾客为中心、做事之前一定要想清楚做事的目的。管理至此也终于有了一个完整的定义:做正确的事、正确的做事。从70年代开始,管理科学进入第三个发展阶段,在这个阶段,首先提出的思想就是没有银弹,管理是一门艺术需要柔性,接下来就是流程的内涵开始延伸,不再是单纯的工作流程,而是面向顾客,强调端到端满足顾客需求的整个过程,这个过程在全球化背景下越来越强调企业之间的协调、强调整个面向交付生态系统的协调,业务流程的概念被提出。进入新世纪,不管是更合理组织结构的思考(扁平化),还是对人的推崇(乔布斯、创新)抑或是业务流程效率的竞争(供应链),都明白无误的告诉我们:管理只有恒久的问题,没有终结的答案。
9月份调整到新的部门:搜搜问问。先负责的是后台组的项目管理。新团队,老人只有一个,士气低下,缺少文档,上百个服务,光维护就非常困难,重写计划。从回顾会议开始,持续改进。这段时间的感悟是:提升团队士气的最好方式就是帮助大家成功,任何一点成绩都值得鼓励。我们引入了持续集成和自动化发布,鼓励同事做总结和分享;引入了自动化测试,鼓励同事做汇报,帮助review ppt;积极的让大家做有态度的程序员,对产品进行思考和反馈,把团队精神传递到部门经理,让部门经理进行鼓励。可以自豪的说,后台组是现在问问最有战斗力的团队。还有一点最重要的感悟是:一定是团队leader决定团队是否给力,幸运的是,我们有一个非常优秀的leader。
12月份开始负责部门的社区化运营项目。这和今年工作的感悟是一致的,产品的核心在于运营,这正是我想做的。项目立项一定要有一个NB的名字,我们就叫黑暗骑士。这个项目同样面对很多的挑战,目前最大的挑战还是在于人,团队的信心目前还没有建立,年后可能还会有人提出离职,而招人又是如此的困难,所以,上班第二天的第一件事是回顾会议。团队年前第一个版本发的很有挫折感,需求反复修改,开发人员都心灰意冷,所以,感悟是:一份优秀的需求文档是一切合理计划的起点。
1月份组织了技术中心的部门年会节目,我们原创的小品《非问勿扰》获得了二等奖。把新人都变为主角,这也算团队建设的一部分。
依然在不停思考,对问问来说,我们还应该做些什么。传统问答模式作为搜索引擎的补充是否已经走到了尽头?SNS的问答模式是否值得探索?与微博是否有更深的整合方式,或者,它们本身就是一种产品的两种展现方式?新浪微什么的探索是否还不够大胆?在移动端,独立的app没有前景,如何和微信更有力的结合。
终于到了可以结尾的段落,还有一件事情似乎忘了总结,那就是我们写了长达四年的那本书《流程的永恒之道-一个工作流和BPM项目的实战》,什么也不说了,一个例子来说明为什么值得期待:当我们把房管局及各委办局的数据和流程用BPM全部打通后,客户却依旧坚持要手动盖章走人工流程,BPM实施技术根本就不是瓶颈,瓶颈依旧是人啊。今年上半年一定出版。之所以写了四年,是因为写着写着总觉得知道的越来越不够,不断读书和补充内容,真是,那时年少,无知者无畏,唉。
2013,黑暗骑士崛起!
相关推荐
2012-06-12 12:20 564 将三个数按从大到小的顺序排序.dsw 2012-06-12 11:48 118,272 建立一个学生信息链表.doc 2012-06-12 11:47 106,496 按照类层次编写程序.doc 2012-06-12 12:21 513 明码序列号保护的实现.txt ...
2012-06-11 21:15 6,669,174 C语言常用算法集(人手一份).pdf 2012-06-11 21:44 2,279 C语言编一个程序完成64位数据(无符号)的加法,减法运算.txt 2012-06-11 21:43 1,480,155 Direct3D加载3d文件.rar 2012-06-11 ...
第二篇短文可能是由导游引导的旅行活动,比如在长城脚下,他们有大约三个半小时的停留时间,并且在离开前需要检查时间并携带好个人物品。 这些试题涵盖了英语听力理解的多个方面,包括日常对话、信息获取、细节理解...
这篇文档是江西省兴国县城岗中学2012-2013学年八年级英语上学期第三次月考试题,采用的是人教新目标版教材。试题主要考察学生的英语听力理解能力,涵盖对话和独白等多种听力场景。 试题分为两个部分,第一部分是五...
这篇资料是关于福建省厦门市思明区东埔中学2012-2013学年七年级下学期英语期中考试的试题,采用的是人教新目标版教材。试卷总分为120分,学生有120分钟的时间答题。考试内容主要涵盖听力和笔试两大部分。 听力测试...
这篇资料是针对浙江省永嘉县大若岩镇中学2012-2013学年八年级下学期英语月考的一份试卷,主要考察学生对人教新目标版教材的理解和掌握。试卷包含了听力和笔试两个部分,旨在检验学生的英语听说读写能力。 在听力...
【中学试题】这篇文档是江西省兴国县城岗中学2012-2013学年八年级下学期英语第一次月考试题,属于人教新目标版教材的配套试题,旨在检验学生对初中阶段英语知识的掌握程度。试题分为听力、阅读、写作等多个部分,...
TLD是由Kalal等人提出的,它将跟踪、学习和检测三个步骤结合起来,形成一个完整的跟踪框架。TLD在检测失败时能够自我恢复,对目标消失和重新出现的情况有较好的处理能力。 5. Struck(Structural SVM Tracker)...
本篇文章将围绕“易语言DNSPod客户端源码2012-11-05.rar”这一主题,深入探讨易语言在DNSPod客户端开发中的应用,以及相关编程技术和知识点。 首先,DNSPod是中国最早的DNS服务提供商之一,为用户提供域名解析服务...
这篇资料是湖北省麻城市集美学校2012-2013学年七年级英语上学期期末调研试题,属于人教新目标版教材的一部分。这份试题主要考察学生的英语听力能力,涵盖了一些基本的听力理解技巧和词汇知识。 试题分为五个部分: ...
此文档是安徽省涡阳四中2012-2013学年高二下学期第三次(期末)质检英语试题,主要考察学生对英语听说读写能力的掌握。试题分为选择题和非选择题,涵盖听力、词汇、语法、阅读理解等多个方面。 1. **听力部分**: ...
这篇资料是关于山东省宁津县育新中学2012-2013学年七年级英语上学期期中试题,使用的是人教新目标版教材。这份试题旨在测试学生的基础英语知识,包括语法、词汇和句型运用等方面。 1. 试题中涉及的语法点: - 代词...
这篇文档是福建省厦门市2012-2013学年八年级下学期英语的第一次月考试题,属于人教新目标版。这份试题主要测试学生的英语听说读写能力,内容涵盖听力理解、基础知识与运用、选择填空等多个方面。 在听力部分,试题...
这篇文档标题和描述提及的是一个特定的教育材料——“河北省沧州市沧县实验学校2012-2013学年七年级语文下学期第三次月考(优胜赛)试题(扫描版) 冀教版”。这个资料是针对河北省沧州市沧县实验学校七年级学生的...
这篇资料是关于福建省三明市大田县梅山中学2012-2013学年八年级下学期的一份英语期中模拟考试题,采用的是人教新目标版教材。考试题主要包含了听力和笔试两大部分,旨在检验学生的英语听说读写能力。 听力部分共...
此资源是一份针对七年级学生的英语考试试题,属于人教新目标版教材。这份试题包含四个部分:听力理解、选择题、信息记录和短文理解,旨在全面测试学生的英语听说读写能力。 1. **听力理解**: - A部分要求学生根据...
这篇文档是广西钦州市大寺中学2012-2013学年七年级英语下学期第一次月考试题,采用的是人教新目标版教材。试题内容涵盖听力理解和单项选择两个主要部分,旨在测试学生的英语听力技能和基础语法、词汇知识。 听力...
这篇资料是关于浙江省上虞市2012-2013学年七年级英语下学期的期中考试试题,采用的是牛津版教材。试卷包含听力和笔试两大部分,旨在检验学生对英语语言的理解和应用能力。 听力部分分为三个小节。第一小节是听对话...
题目分为三个部分:填空题、问答题和翻译题。 **填空题**是测试学生对基本形容词和人物角色词汇的掌握。这部分要求学生根据中文提示填写对应的英文单词。具体词汇包括: 1. 年轻的 - young 2. 滑稽可笑的 - funny 3...
试卷分为三个部分,总分150分,考试时长为120分钟。 第一部分是听力,共两节,满分为30分。这部分主要考察学生对英语口语的理解,包括对话和独白。题目涉及各种日常场景,如工作身份识别、交通方式选择、物品位置...