2014 惑

上周刚做完了自己的 2014 工作 Review,其中最大的挑战就是工作职能的变化: 由一个开发工程师变成一个团队的 Leader。

3 月份开始带领功能线小组,11 月份带性能线小组,将近一年的时间, 业绩结果只能用四个字来描述

不尽人意

more ...

《项目管理修炼之道》笔记

项目管理修炼之道

随着团队规模的变大,成员之间合作的模式逐渐由单打独斗变成协作开发。 这时候会遇到很多意想不到的问题,项目管理的重要性也就显现出来了。 项目管理修炼之道 是一本讲技术类项目管理方法和实践的书。 从业者可以从这本书获得了有益的指导。 我在 Kindle 上面翻了好几遍,感觉受益匪浅,就把读书笔记拿出来供大家参考。

1、内容

核心内容是项目管理的生命周期和每个阶段的交付物:

  • 项目章程
  • 日程规划
  • 开发(控制节奏)
  • 结束项目,项目回顾

其他内容:

  • 如何和投资者沟通
  • 管理会议
  • 控制项目节奏
more ...

加班那点事儿

前段时间,一个好基友告诉我,他换了份工作,去了一家用户数据表现堪称吓人的创业公司去了。其中有一个细节引起了我的注意:他们在实行 996 的上班制度。即 9 点钟上班,9 点钟下班,一周工作 6 天。

同样实行这种制度的还有阿里的来往团队。当年(其实就是去年)在抢占移动端 IM 入口时候,马云都使用了红包政策,来往的工程师在高压之下,也实行 996 了制度。 我问过阿里的朋友,他们表示,整体加班情况的确比较多。我追问了一下加班效率,证实了我的一个猜想,有些个人是晚上加班没事干,尤其有些测试工程师,白天没活干,晚上活多,还经常等到 9 点之后才有事情。这个现象也许不是普遍的,但的确存在。

我自己是反感加班的,曾经面到一个开发工程师,表示工作三年来,加班时常为 0h。当时有点被这种表述惊讶了一下,然后我认为他是在标榜自己工作效率高。 这种表述也反映出他作为工程师,认为加班是一个负面的表现 ...

more ...

痛、快、活

上个月回家,在亲戚家里和侄子聊天,他刚从大学毕业,在家人的帮助下面找了算是对口的工作,对工作之后的状态有一些茫然,看不到前途和未来,我问了一个问题:

你平时是怎么面对困难和挑战的?

犹豫了一会儿,他告诉我:「大部分时间都是逃避掉困难」。

这个问题反而让我自己开始思考:面对困难的时候,为什么更倾向于逃避,而不是挑战和面对?

困难和逃避

想要一点点对这个问题抽丝剥茧,要做的第一步就是,来定义「困难」和「挑战」。这两个词都意味着,面临的事情可能超出处理者当前的能力范畴。比如让一个游泳初学者去横渡长江,让一个厨师学徒工去做满汉全席,让一个幼儿去思索人生的意义,或者让一个工程师去管理一个技术团队。

逃避可以让当事人避免处理不擅长的事情,不会面临各种碰壁,不会带来灾难,不会给自己带来痛苦,不会在结果不优秀时候受到嘲笑和讥讽。 另外,从技术和实施的角度看,面临不了解或不擅长的领域和事情,也会有无从下手的困苦。

「好人不长寿,王八活千年」这句谚语也标榜着这种逃避态度。枪打出头鸟,所以只要保持自己低调和保守,不接受挑战,即可以安安稳稳了么?

野心和痛苦

我发现,在井陉任务管理时候,给予的任务往往会高于执行者的当前能力一点点。原因有二。

第一 ...

more ...

在 Raspberry Pi 上使用 AirPlay

早在去年时候,我就发现有个叫做 Raspberry Pi 的玩意, 已经忘了是从那里得知这个东西。这个卡片大小的电路板是可以运行 Debian 的主机,提供了一个发挥自己想象的平台。13 年 南京极客行动 时候,Michael 好像还拿了一个板子参加比赛。

RaspberryPi.jpg

我对这个东西充满了兴趣,仅售 $39 的主机,小巧的机身, 可以充分发挥自己的想象力:离线下载,动作片播放器,家庭分享中心, 给侄子学习编程~想到这些可以发挥自己的创造力, 就迫不及待的要去采购并去尝试。

不过我还是理智的压抑住自己的情感,手头老是有更重要的事情要去做,实在不能再给自己多找一个精力分散的方向。 于是,我这么一压抑,就压抑了一年。

后来在 InnoSpae 看到 SegmentFault 的姜尚用 Arduino 写了一个播放超级玛丽音乐的程序,又让我重新燃烧起使用硬件创造一些小玩意的热情。

4f42dcf03f067e12fe5c156e2af1373b.image.538x354.jpg

碰巧的是,现在有一个非常适合的场景需要这样的工具:前段时间,团队在优化发布流程,也就是将工程师写好的代码发布到正式环境的过程。其中有一个重要环节是需要需求方对提出的功能进行验证。而需求方往往验证的不及时,就需要一个方法来通知需求方 ...

more ...


hiredis 源码学习

前段时间学习 Redis 时候,听到 hiredis 的大名,正好也在做异步的学习,就找来代码学习一下。 我几乎不太会 C,仅限于最简单的语法,完全没有在生产环境中写过, 所以先看个 Client 简单代码,下次看 Memcached 代码应该会更顺畅一些。

Hiredis 是用 C 写的 Redis 客户端,对 Redis 协议进行了简单的封装, 同时提供了同步和异步的两种 API。Hiredis 的代码位于 https://github.com/redis/hiredis

more ...

Java 运行参数调整

JVM 在线上运行的时候,可以调整一些运行参数,查看参数帮助如下:

运行 java -h 可以看到 Java 运行可调整的参数。 运行 java -X 可以查看 Java 支持的额外参数。 注意一些参数的默认开启在 JDK6 和 JDK7 之间会有差异,甚至在 JDK7 的不同 update 也会有差异,运行 java -XX:+PrintFlagsFinal 查看默认的参数配置。

参考: Java HotSpot VM Options The most complete list of -XX options for Java JVM Tuning JVM Garbage Collection for Production Deployments JVM -XX: 参数介绍

more ...


从 SVN 到 Git,找回丢失的历史

前段时间在将公司的 SVN 项目迁移到 Git 上面去,遇到一个很少见的问题: 有一个小伙伴使用 git-svn 做 rename 操作时候,将一个目录 svn mv 了, 导致新目录只存了最近几个月提交历史,丢失了历史信息。对团队开发而言, 历史提交是非常宝贵的财产,我们想了一些办法,把这些数据提取出来。

more ...