专栏名称: 学习学习再学习
一生只有一个职业:学生
目录
相关文章推荐
印象笔记  ·  建议1:1模仿——马斯克的时间盒工作法 ·  14 小时前  
人生研究所  ·  惠英红: 没死成,整过容,很骄傲 ·  2 天前  
51好读  ›  专栏  ›  学习学习再学习

汪涛:项目中的非技术素养

学习学习再学习  · 公众号  · 学习  · 2016-09-28 08:48

正文

版权声明

本文首发自微信公共帐号: 学习学习再学习(xiaolai-xuexi);
无需授权即可转载,甚至无需保留以上版权声明;
转载时请务必注明作者。


以下是《共同成长社区》第 48 次分享,分享者是汪涛。

汪涛

东北大学毕业 现在在 58 转转担任研发工程师。做交易系统出身 技能上现在专注于架构 中间件 和机器底层。

《共同成长社区》的分享,并不是 “私密” 的,我们不在乎分享内容是否流出去,事实上,我们会主动拿出绝大多数的内容分享至社区之外 —— 因为所有的分享,最终传播得越广越有价值。

若要进一步了解《共同成长社区》,请在后台点击 “收费社群” 的子按钮 “共同成长” ……

请注意:共同成长社区已停止接受直接加入,请 参阅这篇文章


项目中的非技术素养

我 14 年 11 月份离职去了小公司。在小公司做事情真的是不一样的感觉。大公司里,事情的责任不会完全放在个人的身上。小公司的人很少,责任没有人可以推诿,事情必须负全责。

2014 年从年初到年末,一直在做项目,项目都不小,大部分时间只有我一个人负责后端,从做不成,慢慢到能做成。在这个时间段内,第一个项目做了四个月,第二个项目又做了四个月。第一个项目两个人做,做了一部分工作,打了一部分下手,第二个项目是全程包办,之后的项目都是全程包办。

其中的过程压力很大,有过不停延期,有过推翻重做。我是一个心理素质巨差的人,自我调节能力在当时非常不好(现在是一般不好),有时间整个人都很崩溃。所幸每个项目都磕磕绊绊的完成了,结果最终也还不错,但是如果从我现在的角度去看,当时的表现,其实连及格都不算。

我在这之后反思了这些经历,记了些笔记。我信奉“考后一百分”的。于是之后努力做了些总结。我刚刚入行的时候,看过一本书,我的影响很大。书名叫 《The Pragmatic Programmer (程序员修炼之道:从小工到专家)》,这本书讲的实际上是软件工程师的素养,我非常喜欢这本书的组织方式,全书提供了大概 70 个 tips,都是非常简单朴实的一句话,比如:

做变化的催化剂(Be a Catalyst for change);

记住大图景(Remember the Big picture)。

书读过之后,对我而言无法背诵全书,但是这些 tips 会经常以不同的面貌不时的浮现。我们工作的时候会有体会,大道理其实很难用上,真正让我们完成的工作显的有所不同的实际上就是这样一个一个小声音。比如我写代码时,碰到一个地方过于曲折了,就会下意识在心里嘀咕:

这个地方是不是太复杂了,要不要简单一点?

之后就会按照这个想法检查自己的工作,抽象是不是合理,复杂度是不是可抽一部分出去,总之会尽自己努力把代码处理的简单一点。这种反应,在我来看就是上这种小声音的浮现,然后指导自己的行为更有素养。我对素养的一个定义是:

可以让你少踩些坑的规则。

我接下来所讲的,也是这样一个一个的 tips,关于怎么在项目中少踩些坑。

放松

不知道大家有没有运动中抽筋的经历,抽筋之后,除了疼,肌肉一定是紧紧的绷住的,有时候摸起来像铁块一样。抽筋,是由于肌肉的过度紧张,代谢废物堆积,部分肌肉先丧失了一定的放松能力,然后这部分丧失了放松能力的肌肉,会给另外还能正常放松的的肌肉带来更多负担,最终全部整体丧失全部的机能。

我把放松当作最重要的素养。 原因是项目中也会抽筋。在我看来,任何项目的进行,天然是一个堆积压力的过程,随着了解的细节越来越多,做完的事项越来越多,项目的结束日期越来越近,随着时间的流逝,各方面的压力越来越大。在这种时候,不能放松的结局和抽筋是一样的,来自各方面的压力会不停滚动叠加,最终技术变形,完全失能。

我相信每个人都或多或少经历过由于过度紧张的时候干错事情导致头皮发麻的时刻,我对于这尤其印象深刻,我是很容易紧张的那一类人,并且紧张之后一定愈发紧张。

我的经验是:

能对抗紧张的,只有真的学会放松。

放松实际上是一门需要习得,且可习得,可进步的技能。 无意识的放松是本能,有意识的自主放松需要自主刻意练习。我学到的一点技巧是需要先练习识别自己是否紧张。然后对自己的紧张做功课。每个人的策略需要自己实验,抄书,做菜,遛弯都可以。尝试策略可行后,就反复应用。毛主席的:

不管风吹浪打,胜似闲庭信步。

是最高境界。

列出大纲

我们可以把项目理解成:

不能在短时间内彻底完成的工作。

复杂是很天然的一个属性。面对复杂的事物,我们的认识并不是一条竖线直接上来的 ,理解会且只会逐步加深,必须要一个过程才能彻底认识到我们在做什么,应该做什么,应该怎么做。

我之前工作的时候,很容易吃这样的一个亏:

拿到一个工作,不动脑,先动手开始干,干了一天两天后才明白过来,之前完全跑偏,得重新开始。

这种事情最让人崩溃,而且是手越快越崩溃。有一次项目开始的时候,在纸上写写划划,突然学会了使用大纲这个工具,虽然这个理解过程还是不能够直线跨越,但是相比于之前没有学会使用大纲的时候,因为理解犯错的时候明显少了很多。

我对大纲的使用办法是这样的:

先对项目列大纲,不停拆分罗列细节,拆分的这一个过程,实际上是会强迫自己进行思考,之后通过大纲对每一个现在认知里细节进行确认,这个确认的过程中,预演整个项目,同时把理解和验证的工作前置。

之后的工作过程中,不断对这份大纲修订,记录新的理解,同时与旧的理解对照,可以认识到自己理解进步的思路,可以提高对接下来项目的理解能力。

相比于超高效率,重要的是保持节奏

在我们的背景知识里,大家是鼓励沉浸进去,超高效率工作的。心流是一个完美的工作状态,忘记时间,而且有超高工作效率。

但是,这种超高效率的状态,在项目进行中并不是想象的那么好。我会有这样的经验:

早上过来,喝一杯咖啡,仗着自己头脑清醒,开始迅猛工作,下午的时候,大部分时间会觉的头脑疲惫,发困。

另外一方面,早上的高效率实际上总会带来一些粗糙的感觉,不时要返工重做。实际上一天下来,会更累,但是效率并不是真的高。趁着兴致熬夜加班干活,更是糟糕,质量完全靠运气,第二天基本上也是废了。

我的经验是:

保持自己的节奏,哪怕适当放慢一点,不会有什么损失。

但是进入自动化加紧加班赶活的时候,尤其是感觉自己走的很快的时候,反而很容易出纰漏,出了纰漏之后算上善后的时间,这的只是感觉快。 最好长期保持一个稳定,稍微缓慢的节奏,做事之前有时间动脑, 想想之前和接下来的工作,哪些需要注意的地方,为了长期的节奏,每天甚至可以故意做慢些, 节奏对了,比每天超高效率干活,在进展上,要快的很多,也舒服很多。

频繁确认

这是一个在我看来通用,但是很难做到的素养。

在项目开始前,一定要明确谁是责任人员,是自己还是其它的同事伙伴。在整个项目的过程中,都要和项目的责任人想办法频繁的进行确认。确认的内容,包括但不限制于,进度,难点,风险,里程碑等等。任何花在确认上时间,都是值得的,都能够减少项目的风险。 确认难免会有心理负担,但是相比较于之后项目风险集中爆发的可怕感觉,是非常值得的。

说来惭愧,我最开始的习惯实际上是,躲避确认的时间点,请一天假,故意拖着,等等手段,之后碰上了几次项目风险爆发,再之后,任何项目中恨不得每天都跟人确认。没其它原因,就是真的怕了。

人真的是这样的, 厄运来临之前心存侥幸,厄运来临之后战战兢兢。 真的出过一次事情之后彻底不一样。当然,我不是鼓励大家故意去犯事,我可以给大家提供一个技巧,在犹豫要不要确认的时候,设想一下项目的风险爆发的感觉。在这个素养上, 怕,是第一驱动力。

越慢越快

这是我在其它地方的一个感受,后来应用在工作上发现很有效果。







请到「今天看啥」查看全文