工作第八年

2014年6月8日写完“工作七年”,小学毕业典礼庆祝还未开始,初中一年级结束已经到了。

上初中没有转校,继续在sonoscape,继续记录成长与收获。

1. 收获2014.06 ~ 2015.06

这一年,在团队建设、规范化开发方面投入了主要精力,常规代码被迫搁下了。

1.1 部门SVN库

从2014年3月开始,建立了部门SVN库。管理部门常规资料:入职,培训PPT,产品线、部门会议记录,日常文档模块,项目管理,新人指导,工作计划和总结,考核记录,个人工作目录等。

主要目的是,在共享部门内资料,让新人有资料可参考,快速了解现状;让老人有地方展示已有成果,扩大影响力。另一个目的,管理代码库、项目库外的工作成果。做到用数据客观考核,过程公开,流程大致公正,结果大致公平。

1.2 技术组织方向

2014年,软件开发人数接近30人,鉴于人员成熟度待改进,原有项目分组方式方式过于粗犷,于是调整为按技术方向分组:需求、项目管理、软件应用、软件基础;软件应用、软件基础下再细分2~3个小组,每组3~5人,便于目视管理。

下半年,随着正宗需求部门职责扩大,将软件部分的需求人员,输出到需求部门;2015年初,我们的项目管理组长,也输出到项目管理部任负责人;2013年以前,还有输出算法人员到系统部,底层软件的人员输出独立为通用软件部。软件为其他部门输出了对口人员,这些同事能在更专业部门有更好发展,软件开发部门更为纯粹地专注于应用软件,大家双赢。

2015年还引入了几个资深的软件人员,人员超过40。技术方向细微调整为:应用,基础图像,应用细分为4小组,基础图像细分为3小组。每个组5~7人,有1~2名高级工程师任组长。加强了组长对项目、部门的职责要求,把团队、平台化建设,放到小组负责,提高自我要求;日常通过改进的周计划、个人日志,每周做沟通,开展小组日常工作。

同时,把软件测试人员,也拉入到软件大家庭一起。套用软件开发的分组、日常管理方式,建设完整的软件团队。

1.3 自动工具

2014年下半年,遇到了“软件随机死机”的bug。研发机器少,不容易复现随机bug,因为新功能开发任务急,没有及时处理。结果在发布后发生数起随机死机问题,临时组织攻关。在Dr Tang协助下,突击出python写的“自动测试(函数调用)”机制、“死机dump抓取”机制,3周解决了问题(1周工具机制,1周完善升级,1周分析改进)。2015年版本发布中,自动工具的冒烟测试、压力测试,帮助软件在发布前找出了近10个隐藏的死机问题,虽然延期了发布时间,但避免了更危险的死机问题。

在代码自查方面,引入了gtest单元测试工具(基础图像组长“帅Z”引入,小组实施良好,在应用组推广还有待时间,因为我们的设计太烂,UI和逻辑耦合度太高);引入了cppcheck做静态检查(应用组长“H哥”引入,找出很多编程基本问题,现在新手太多了);引入代码行数计算工具cloc(Dr Tang引入,替换了自己shell写的脚本);引入了svn统计工具statsvn(高工F引入,能对项目文件、svn提交做统计分析)。我的贡献是在服务器中,写了shell命令,用crond、sendmail做成了自动报告发到邮件。

另外,引入Redmine工具做开发任务管理,整理流程、SOP、改进配置和属性,2014年8月开始试用。原计划想管理所有开发任务,任务细分小于1周;后来调整为管理能验证的项目功能点任务(任务时间不强制,更细节任务在周计划中管理),同时把测试人员也加入到任务中(今年计划把需求也加入,真正做到三者一致)。

还尝试了web自动构建工具Jenkins(以前的老伙伴J引入,但后续因为任务紧,没有继续跟进)。

1.4 第4级流程

2014年,经过一次外部审查的洗礼,公司上下对流程、规范化意识得到强化。项目管理部开始根据实际改进1、2级流程,推进流程的可执行性。

以前也整理、推广了很多小流程或SOP:CVS操作、软件版本发布、任务管理流程、缺陷管理流程(协助)、软件需求规格书评审流程(评审协助),主要局限在开发内部,或者小范围。人员增多后,除了执行的最底层需要流程,还需要更高一些的,跨多个专业、或多任务的3、4级流程。

产品项目,我们是“用户/市场驱动研发”;在软件版本开发中,则需根据资源承诺范围、进度、质量,要“交付件/测试驱动开发”。所以2015年主推一个“软件版本开发流程”。以前也有了一个“软件开发流程”,但文档是文档,实操是实操,没有联系;这次吸取经验,多了实践考虑。简介如下。

* 上下游关系:软件版本开发流程,定位于最小的对外发布软件产品,在产品项目、专业子项目之下,在模块、任务、缺陷之上。

* 阶段:规定了七个阶段“需求确认、计划、设计、开发自测、集成测试、确认、发布”;

* 角色与职责:涉及4个角色“版本经理、需求接口人、开发接口人、测试接口人”,职责就不描述了,大致能理解;

* 交付件清单:每个角色在每个阶段会产生交付件,列出了交付件清单;

* 软件版本类型:交付件清单根据软件版本类型“注册、正式、变更、特殊”不同而不同(只裁剪交付件,不裁剪流程);

* 交付件类型:交付件类型分为“注册必须、项目必须、版本要求、过程记录”。

现在做了宣讲,有写深受以前问题折磨的需求、开发、测试同事,很感兴趣,愿意尝试。效果如何,等待下半年验证。

2. 体会教训

一年一晃就过去了,花点时间做一个阶段体会教训,非常值得。

2.1 工作

工作方面主要时间投入在日常工作改进方面,有很多收获。

2.1.1 原则

做好工作的基本原则就是“积极主动”,其他说法有“态度”、“自我驱动”、“激情”、“自燃性”等等。简而言之就是:给你少点钱(或者短期不给钱),你也愿意死命干好(当然是为了后续更长期的收获)。

2.1.2 模式

去年总结了几条经验教训:“价值观”、“从实际出发,实现目标”、“文档记录、持续改进”、“过程监督、成果管理”,其实都是做工作的模式。今年在补充几条:

* “可视化交付件,第三方审核”

我们是通过成果来展示贡献、能力、态度等等一切的。东边来了一个美女,说明在“颜值、身材、姿态、衣着”等等的一项或若干项得到大伙认可;西边来了一个猛男,说明在“胸肌、腹肌、肱二头肌、肱三头肌”等等得到赏识。既然是成果,如果做成用户容易识别的,认可度更高,如张丰毅,在“赤壁”中穿着衣服,我们认为是老人家;在“真正男子汉”中一赤裸上身,能打败当兵的。可视化的交付件,不是通过自己吹嘘忽悠,而是通过第3方审核展示出来,效果更好更让用户信服。还是张丰毅例子,在“天天向上”中,面不改色做数个滑轮练习后,我们已经膜拜为新的生猛男神了。

我们写的代码,有提升为软件产品模块+说明书的交付件吗?有用户在使用后,通过口碑为我们打广告吗?仔细看看现实中,有多少你根本不清楚内部实现,但你被各种以为是第三方审核证据的广告给征服了、认可了的产品?这些产品有多少种第三方审核的展示?在逛街时多想想,能看到一些社会普遍行为。

* “推广实践要流程化、模板化、平台化、IT化”

我们自古以来就有重分析、重理论,而轻实现、轻实践的传统,这在工业社会、商业社会都是致命缺陷。生存期,实践第一,活下来是硬道理;发展壮大起,必须是思想、行动统一,理论实践结合,否则会变成离散的空骨架,或者肥胖得站不起来。这就需要中层、基层骨干把公司战略落地执行,推广改进。

从培训老师的总结中(华为出来的讲师),推广实践要“四化”(流程化、模板化、平台化、IT化):流程化规定角色、阶段、活动;模板化去除人的依赖;平台化保证信息一致性统一出处;IT化减少人工执行误差。否则实践和理论不容易联系,执行起来人为因素多,会造成“不充分实践,证明理论不行”,得出“这个方法很好,但不适合我们公司现状”的结论。你的公司有人,得出这样的结论吗?我们有,我相信大部分都有。

2.1.3 实践

实践是检验真理的唯一标准。小平把社会生存的一个基本原则,上升到理论高度,并得到大家的崇拜。从一定角度看,我们得有多忽视实践的重要性,才会小平指出这个“真理”感觉到当头棒喝?小平说的是对的,没得其他说的。以下简述几个实践经验:

* 认识一致性

《人月神话》作者布鲁克斯,在书中提出了“概念完整性”这一术语,说明复杂系统的最大延期原因,是做多项目人员难以达成对复杂理解一致性。我们的项目开发中,不断重复因“理解一致性”引起的进度延期、风险失控、质量低下,其实从项目人员角度,已经很努力干活了,可是方向不对。

做事之前,花时间把范围、质量、进度、风险、资源等项目要素讨论一致,并书面化,对后续的改进很有必要。

* 执行细节

汪中求特别写了一本书《细节决定成败》,用大量实例描述了细节如何把成功一点点偷走。细节决定成败的观点可能有点“蝴蝶效应”的极端角度,很多公司生存下来靠快速响应。但不注重细节,不可能发展到高端、也不可能持续发展,因为高端就是一个个细节组成的。

工作中,一个个细节组成了我们的日常任务,不注重细节并不妨碍你成为高级工程师、基层干部;但长期积累下,一个个小的失误,会阻止更进一步的发展。

2.2 生活

最近3年,典型的以“工作为中心”,业余时间的大部分也直接、间接贡献给工作了,对夫人亏欠很多。记得起来的只有以下几点:

游泳

以前夫人不会游泳,本人也只会头时刻都要在水面上的狗刨。夫人的同事经常去游泳,于是我们也买了入门装备,去深圳湾体育中心学习游泳(再没有借口说装备差、环境差而不会游泳了)。到今年一共游了10来次,夫人蛙泳基本能游25米了。学习手段是看视频,憋气、漂浮、蹬腿、划手、换气等。

学车

以前夫人不会骑车,本人也只会骑着走(上车只能静止上车)。春节去沃尔玛买年货,夫人抱怨一年没有什么新鲜感,于是买了一个自行车,在春节期间有了消遣方式,在停车场练习(车都没几辆了,正合适骑车),练习了4、5次,夫人已达到我的水平,能骑着走(中间摔了几次,其中一次把后轮刹车把手给摔断了(把手是塑料制品,质量一般)。

2.3 个人成长

深圳蛇口有一个标语“空谈误国、实干兴邦”,这是对我们的指导和警示,也是今年自我成长点,大的建议少了,本岗位的实践多了。

一些好的经验,在其他成功公司已经成功应用起来,我们看书、培训时也觉得非常实用,但应用到本公司本岗位不会是一帆风顺的。我们是否还愿意承受改良或革命,像小孩一样不怕丢脸犯错,去模仿学习新思想新方法,在本岗位干出更好的成果?

3. 展望

初一结束了,没有暑假,紧接着开始初二的工作历程。

又到了一年一度的高考时节,各种保证高考顺利进行的方案又有创新了。每年在这个时刻,写上一年的工作总结,挺好。

时间: 2024-10-12 21:15:22

工作第八年的相关文章

工作了八年之后,我准备去上海了

2008年来西安,一眨眼的功夫快十年了.也是从08年开始接触软件这个行业,从刚开始的懵懂无知,因为进北大青鸟很长一段时间,我也不知道“软件”到底是啥?自己想不明白给别人也讲不清楚,那时候只是单纯的觉得,计算机是以后发展的趋势,我想要做游戏,然后北大青鸟的咨询师告诉我,你的这些愿望只要来了这里都都可以实现!现在想想自己当初确实单纯,但所幸的是,我遇到了一个好时代,智能时代的到来,给予我们这些码农带来了一波红利,让我能在十年后的今天,依然无悔于当初的选择,即使我现在没能如愿以偿的做游戏(苦笑). 按

LVS三种工作方式八种算法

一.集群简介 什么是集群 计算机集群简称集群是一种计算机系统,它通过一组松散集成的计算机软件和/或硬件连接起来高度紧密地协作完成计算工作.在某种意义上,他们可以被看作是一台计算机.集群系统中的单个计算机通常称为节点,通常通过局域网连接,但也有其它的可能连接方式.集群计算机通常用来改进单个计算机的计算速度和/或可靠性.一般情况下集群计算机比单个计算机,比如工作站或超级计算机性能价格比要高得多. 集群就是一组独立的计算机,通过网络连接组合成一个组合来共同完一个任务 LVS在企业架构中的位置: 以上的

工作第八个月:从安卓调整到服务端后的思考

前言 客户端开发的侧重点 后端开发的侧重点 浮躁的心 架构师之梦 跳出局限 总结 其他 Thanks 前言 距离写上篇博客已经有一个月了,年后由于岗位调整转去写后台,开发框架.开发模式的不同让我适应了好一阵子,更难的是后端开发与客户端开发的思维习惯的转变. 客户端开发的侧重点 在我看来,客户端开发最重要的是: 业务流程的理解与建议 交互方式的理解与建议 数据的展示(快速.高效) 数据的获取(用户主动输入.UBT 采集) 保证应用的性能(内存.弱网.耗电) 实际工作中,产品经理拿到业务需求后会分析

任正非:华为至少给中国政府缴了三千亿的税(战略预备队是为了应对不确定的未来,每周工作40个小时成不了科学家和艺术家)

集微网 1月26日报道 华为创始人任正非每一次的发言总能获得外界关注,除了华为巨大影响力外,任正非的讲话内容剖析实局的深度让人感到震撼. 临近农历新年,媒体又传出了任正非在2017年市场工作大会上做了演讲,分享了华为在市场运营和组织效率方面的核心法则. 任正非表示,外界社会很浮躁,我们内部小小的地盘能讲实话,不容易.我们需要更多员工讲真话,我很高兴,看到心声社区上很多人发言不穿马甲了,说明公司已经开始有讲真话的氛围了.如果敢于讲真话,就是一代将星在闪耀,不怕被打击.可能在一段时间.局部地区会受到

朋友公司的内部分享《工作十年我是如何实现财务自由的》

下面是看到朋友分享的文章,标题是<工作十年我是如何实现财务自由的>,看后蛮有同感,收获不少,所以分享给园子里的朋友.虽然一些观点,想法无法合所有人的看法,但我觉得至少说出了很多在路上人的心声. 文章中的实践方案,对于做事的评定倒是有点意思,激发积极性对于那些搞代码的还是很重要的.不过我觉得完全可以应用到任何岗位上,也可以应用到自我评价上. 避免广告,这里将公司名更改为T公司和Z公司,其他未做任何改动. 老实说:梦想这个词太大,普通人都只是为了活的更好,更爽一些罢了,财务自由也许就是很多人的目标

软件维护工作经验总结

工作背景:2014年至今2018年,在大企业维护一个2005年上线的集团OA项目,数据库和代码偏大,文档缺失.维护期间又不断开发OA新的子项目. [工作方式篇] 被动式工作(没事不找事,有问题解决问题.这不是消极对待工作,而是因为维护岗位的核心原则是稳定压倒一切.). 日常维护工作流程 "接到问题 -> 通过IDE调试再现问题 -> (收集资料)分析问题 -> 解决问题 -> 反馈问题" 接手一个新业务系统要对其全面了解,具体了解方面是: 了解业务逻辑(用户需求

SVN版本控制器相关知识

一. 版本控制 1.1. 疑问 到底什么是版本控制软件? 我们为什么要使用版本控制软件? 协作开发过程中,代码应该存放在哪里? 协作开发过程中,领导要看项目怎么办? 1.2. 什么是版本控制 不知道你们有没有考虑过这种问题?公司的程序员在开发项目的时候,每个人开发的模块都是不一样的,那么他们开发完成以后,如何将各自的代码整合在一起呢? 这个时候呢?就引入了一个概念叫版本控制. 所谓的版本控制你可以通俗的理解成,它是软件项目开发过程中用于储存我们所写的代码以及记录修改历史的软件. 1.3. 为什么

【转】锤子CTO钱晨:福利好是一种堕落的公司文化

“这是拉勾网对锤子科技CTO钱晨的访谈,作为中国手机界三大产品经理之一,他带领着一众硬件工程师在手机红海中厮杀.钱晨喜欢焦虑的工程师,佩服有方向感的人. 本文作者:西岳 拉勾网原创出品,转载请注明作者及来源 © 2015 拉勾网保留所有权利 锤子科技的CTO钱晨博士今年53岁,他把有些许灰白的头发剃得很短,显得精神抖擞.加入锤子科技前,他在中国手机界的黄埔军校摩托罗拉北京研发中心工作了13年,离开时任职高级工程经理. 钱晨出身于天津一个官宦家庭,大学学的海洋物理.毕业后,他在一家研究海洋技术的单

看职场老人教你如何平稳度过职场“更年期”

随着书院气息慢慢退去,那股不畏前路,一心往前冲的劲头也变淡了.工作七八年后,慢慢进入职场"更年期",前路迷茫,该怎么平稳度过呢?最近架构师米洛发现这个问题的时候,不免也去思考了一番想找找答案.所幸,这问题并不是个案,网上已早有牛人作答,米洛筛选其中比较好的,在此分享一下,与诸君共勉. 先明确我们的问题:工作8年,身心俱疲,迷失了职场方向,不知道该规划未来的路呢? 明确目标 不会跑偏 有7年工作经验的企管顾问秋洪发表了自己看法.他认为,首先需要明确自己的职业目标,目标不明确,就没有前进的