辞职半年记

2012年7月19日,在友盟入职。 2015年7月20日,辞职回家。

今天,2016年2月5日,第199天。半年时间,转瞬即逝。每过一个月,自己都会写篇很长的日记作为回顾。今天,把这些拼凑在一起,作为这半年的辞职后记。

工作

上半年答应了家里亲戚的外包工作,八月份开始着手准备。本来以为一两个月可以搞定,结果直到昨天才算全部完成,俨然成了我整个假期的噩梦。这是自己第一次从头到尾完成一个相对复杂成熟的 Web 产品,回首整个过程全是血泪。从前知道的那些所谓道理,这次全部切身体会。

对需求、对时间的错误预估。因为抱着帮别人、无论如何要把事情完成好的态度,没有对最开始的需求有细致的分析。拿着客户给的文档,以为就是全部。对着大框预估时间,抱着『两个月后肯定能干完』的傻逼心理,结果每次面对一块新功能,都能看到一棵苍天大树从文档拔地而起,枝繁叶茂搞得我焦头烂额。延期,不断地延期,耽误了自己太多计划,到最终完成花了我 124 个工作日,以及数不清多少焦虑的时光。年少无知, simple naive。临近尾声,我又浏览了一遍最初的文档,好像幽默故事,只是眼中带泪。

整体时间的错误安排。之前有读到过,如果计划半年的软件开发周期,那比较合理的时间安排为三个月确定需求,一个月系统设计,一个月开发编码,一个月测试上线。而我在需求尚不完善明确的情况下,手痒开始编码。结果不断了解,不断改进,不断明确需求,不断推倒重写。粗略预估,我多花了一倍的时间和心思在不必要的代码上。毫不谦虚的说,我写了一手屎代码。

沟通的困难。怎么跟客户有效沟通,从他们支离破碎的描述中找到产品的需求点?如何建立一套有效的反馈机制,让客户和自己的时间互不打扰又保证沟通顺畅?如何有效地表达情绪,而不是带着情绪表达?我在一步步摸索,但始终找不到 best practice。对于本来内向的我,好多时候我选择用多付出来代替少沟通,多么错误的做法,我已深有体会。

有债必还,但是我们该怎么去定义债?有些时候,在设计和编码的过程,脑中闪过一种边界情况,因为不在需求之中,就把它暂且放下。但是需求的不断变化,或者说我们对需求不断有新的认识,这种边界情况又会蹦出来亟待解决。那么问题回到最初,要不要将这种情况一并解决?我暂时认可的答案是,不解决,满足当下的需求即可,但要为需求变动做『适当』的预留。我们都知道过度优化是万恶之源,但是过度与适当也仅仅一念之差。可能只是留下 placeholder,一个 NotImplementError 即可让未来不那么狼狈,但是面对相对根基的设计层面的问题,又该为未来做多少保留呢?

还有些问题,我也一直抱有怀疑。

是否需要让客户付出一定的认知来了解系统设计?努力做到傻瓜化操作,Don’t let them think,还是对基础的设计做简单的讲解,让客户面对特殊情况自行灵活解决。

最终完成的产品要对客户需求支持到什么程度?客户往往想要的是 elixer,一个万能的产品,既符合他们原本的思路,又能解决所有问题。而现实往往是,我们定下条条框框来保证流程、数据的准确,但总会出现特殊情况。当最终交付产品时,到底该对特殊情况做多大程度的支持?并且,我越发认识到一个残酷的事实,从时间的角度看,只需花费 20% 的时间就能完成 80% 的标准功能,而 80% 的时间都被用去应对那些碾压一切的特殊处理。

回首整个工作过程,面对不断的延期,推迟原有的其他计划,让我面对很大的压力。每隔一段时间都会不由自主的焦虑,陷入深深的恐慌。好不容易得到一段假期,结果只是从一个坑跳到另一个坑。说好的 Gap Year 自己出去走一圈,结果被圈在了自己家里。朋友都以为我逍遥自在,放了大假,只有我自己深知这其中的苦涩。时间紧迫不停歇,这是我最大的难过。如何克制不让自己计算时间成本,如何蒙骗自己以期望在低收效的工作中也能得到些许经验,如何让自己保持积极态度,纵使心里再急行动也不能着急,只能点滴去做,过好每天然后默默等待。这一碗碗傻逼鸡汤,熬啊熬,我干的痛快。

本来假期开始,对自己最大的期望是能够利用好时间多看些技术书籍,为自己积累一些量变。让工作带动自己的状态,留下空余时间多看书学习。但是,超出预期的工作时间,在十二月彻底爆发,忙绿、焦虑,让我彻底淹没在工作中。没能在技术上有所突破让我懊悔不已。整个半年的时间,粗略估计只有 1/5 的时间花在了技术学习上。认真看了《Operating Systems Three Easy Pieces》,《HTTP - The Definitive Guide》,以及几个 Udacity 上的 Web 课程。标记了一堆想看的书籍课程,但也只能接受这最终差强人意的完成度。

总结与反思

如果非要总结这个过程自己得到什么宝贵经验,那除了上面的思考,在时间的催促下,我需要不断反思工作过程,想方设法提高工作效率。十二月初的时候,看到知乎这篇你的每日私人成长暗器是什么?,连同自己的个人实践,制定了一份个人计划。

每日计划(GTD)

  • 每天开始时,指定任务列表;结束时,审阅已完成事项,延期未完成工作
  • 完成度的标准,不在于清空任务列表,而在于是否达到工作时长

从前我经常面对这样的情况,睡前整理任务列表,看着一两条刺眼的未完成计划,伴着无奈与失望睡去。我确信,这是让我不快乐的重要因素。但是我慢慢认识到,如果努力还是完不成计划,多数情况只是对计划的错误预估。已然尽力去做了,就不必埋怨自己。起初我也怀疑,这是不是在降低标准企图原谅自己。我的结论是,不。这是对自己能力的正确认识,保持好的心态去完成更多的事情。所以,我现在将任务的完成度标准定义为,是否达到预定的工作时长。如果保持高效的完成了工作时间,但最终还是剩下一两条刺眼的未完成计划,我会责无旁贷把它们推迟到明天,然后给自己一个肯定的鼓励。

习惯养成

习惯列表要融入到每天的时间安排中,日积月累

  • 坚持写日记做总结
  • 一周 4-5 次健身
  • 每天 1 点前睡觉
  • 坚持读书 1h

时间安排(工作日)

weekday_calendar

汇总

  • 睡眠 8.5 h,预留 1 h 缓冲(翻手机,睡不着等)
  • 每天三餐固定时间 1 h
  • 三段工作时间,每段 2.5 h。注意要保证工作专注度,使用番茄工作法。
  • 健身时间 2 h
  • 自由时间 3h

时间的调配上,尽量按照时间表。如有特殊情况(提前使用自由时间等),可自行调配,保证时间完成度即可。

时间安排(周末)

不严格按照工作日的时间安排,但需要保证

  • 就某个 topic 总结一篇 evernote,积累一定程度完成 blog
  • 清空邮件列表

工具

善用工具辅助自己追踪记录工作状况:

  1. Omnifocus,GTD 任务列表。这个 App 灵活到基本可以满足任何自定义需求。我自己的工作流程是,保持两个窗口 Inbox 和 Project。Inbox 作为 quick entry 等待归结整理到某个 Project。整体上通过 Due Date 来做时间把控。
  2. Focus,时间记录,让自己做一名快乐的树农。这个 App 因为时间可变,不用教条的遵循番茄工作法,远离手机是拒绝一切诱惑的开始。另外,记录工作时间对我的意义相对更大。起初我以为一整天随时都在工作,但是精确计算才发现,净时间只有四到五个小时。不断反思工作过程、合理安排时间,慢慢,巅峰时候可以把自己推到每天九到十个小时。清楚知道时间都去了哪,才能想办法做出提高。

旅行

带爸妈去泰国玩了一圈是这假期最骄傲的事情。辞职前就想安排这样一次旅行,九月份终于成行。我要自私的承认,整个过程自己不是最快乐的,前期的准备,出去每天的安排,好多时候不想面对麻烦就只能多花钱,但是这个过程也单单不是为自己的。我不会记得哪里的景色特别漂亮,只是老妈时不时洋溢幸福表情,老爸回来后开始每天学习英语,让我盼望着下一次的开始。

半年的时间,去了一次上海,和大学女友重归于好;去了一次北京,在占东和小鸡家熟悉的排骨和鸡翅(俨然成了地陪标配);去了一次沈阳两次长春,跟每年只能过年见面的好友,在某个平常的周末相聚,这感觉太好。

本来说好的青岛、厦门、重庆因为工作未能成行,希望年后还有机会。

生活

这两年最常思考的一个问题就是如何做到坚持。某种程度,我把坚持当作通往成功的万能钥匙。任何事情,唯有坚持是最难一关,也唯有坚持才是最踏实办法。自从看完《习惯的力量》,我愿意相信习惯养成是坚持最有效的手段,我也愿意把习惯当做一种投资,在时间撒下种子,静候它生根发芽。

假期开始,给自己定下一些关于习惯的目标。回过头来,这些达成的习惯也成了我这半年最大的收获。

  • 睡前日记。因为手里握有大把时间,很怕在松懈与不自知中让时间悄然流逝。虽然好多日子只是记了些水账,但重要的是能让自己停下来回想这一天发生了什么,接下去要做什么。这是我坚持最好的习惯,一天没有落下,所以我清楚知道今天是回家第199天。
  • 健身,总共完成了91天。这个过程相对艰辛,总会被各种事情打断,例如心情、天气、午饭吃撑等等。说到底,还是惰性。从开始看书学习,根据自身指定计划,到不断亲身试验总结反思,这是一个不断改进的历程,自己也总结出一些经验:所有可考虑因素中都基于最重要一点,得去。战胜自己比技巧重要。了解并承认自己的惰性,才能指定更现实的计划。整个过程最难的是开始,和隔一段时间后重新捡起。连续的去和不去都很容易带出惯性。最好的健身房不是器械好暖和可以洗澡,而是人少。瓶颈很快会来,短期内努力基本看不到效果。承认慢功夫,让时间检验。饮食可以控制,但拒绝阶段性饮食改变,要找到长期可依赖的饮食方式。肌肉有个觉醒的过程,需要一定积累才能找到正确的发力。最美好的一天总在不经意间出现,杠铃多加两片重量,熬出变化便不再痛苦。我刚刚走到这一步,健身房今天开始关门了,一个礼拜后才开,麻痹。
  • 早睡早起。从大学开始到上班三年,作息基本保持在凌晨两点到早上十点。回家后将目标定在一点前睡,后来逐步调整为十二点半,嗯,伟大的一小步。慢慢发现,因为晚睡可以晚起,某种程度便失去早睡的动力。所以,最近一个多月已将起床时间锁死在八点。要让自己承担晚睡的后果,想到第二天起来后神情疲惫、睡眼惺忪,那十一点半就必须结束工作,十二点看了一半的美剧也必须关掉,十二点半只能停止刷手机。在睡前享受疲惫、犒劳自己是一天的美好时光,残忍地结束这一切才是最难的。逐步,我已经把每天的高效时间挪到了上午,制定一天计划,思考相对困难的问题,剩下的只是去做就好。

在这个过程使用了一些 App 作为辅助,在此推荐:

  1. Day One - 日记,稍微有点贵。开始时候在哪写根本不重要,只有当确定自己会一直这么记下去后,这个 App 才是值得的。
  2. Productive - 签到,习惯养成,统计完成度
  3. Sleep Better - 追踪睡眠质量

尾声

我不确定这半年的休假时间是否值得,足够有意义。可能错过了一些好的工作机会,我也懊悔自己没能看足够的书籍让自己的技术有所长进,一些预定计划也在变化中没能实现。但不管怎样,我确信自己是在努力让这个过程变得值得,有意义。对于过往的发生,我没办法改变,只能抱着积极的心态,用心总结,然后面对,想方设法把之后做好。过年的时间是一段终结,Github 的 Streak 也在今天断掉,我要乐于接受这段空白的休息。之后怎样我还在思考,但不断努力,不断改进,让自己变好才是最终的希望。