Monday, February 1, 2016

软件开发如何规避时间碎片化的坑?



https://mp.weixin.qq.com/s/5H-IoyP8t_4ASZl7QmRxsg
那什么时候是正确的碎片化时间呢?这不是想当然的,很多人觉得现在没啥事情,就学习一下吧,他们很开心,觉得没浪费,实际上这种盲目的利用时间效果不会很好,碎片化时间是需要提前规划的,考虑自己以前利用时间的方式,根据自己的职业和家庭情况合适的选用碎片化时间。
每个人对时间都有自己的理解方式,关键是你找到可以合适利用的空闲时间去帮助你,再举一个例子,比如工作的时候,可以抽一小段时间出来去学习下技术知识,可能效果会非常好,而且肯定不会耽误你工作,至于为什么,如果你学过时间管理,就能容易理解了。
碎片化时间只能是自己挖掘的,没有对与错,关键是经过你思考和筛选,比如说和孩子在一起的时候,她也需要独处,可能自己看看书,你要做的就是陪伴她,不要打扰她,那此时就不要无所事事了,也不要拿出手机,因为你总是教育小朋友要少看手机,可当着她的面看手机不是打自己的脸吗,此时你可以看看书,一方面是学习,另外一方面也潜移默化给孩子一种感觉,读书很重要,从而形成好的阅读氛围和习惯。
(2)现在假设我们找到了合适的空闲时间,接下去要判断这段时间学习什么,为什么要选择学习它而不是另外一个它?
这要从两方面考虑:这段空闲时间的性质、待学习内容的性质。
比如说你在等公交车,可能只要5-10分钟,考虑到时间比较短,你可以选择读一篇文章,这篇文章并不是你刷微博或朋友圈找到的,而是早就收藏好的,因为你觉得那篇文章很重要。那这篇文章很大几率不应该是一篇实践性很强的技术的文章,因为对于技术概念来说,很难花费10分钟的时间去理解它,如果此时公交车来了,你马上就会被打断,而且脑子里不可能留下印象。应该找一篇相对理论化的文章,比如说讲解啥是P2P理财,在10分钟内足可以理解关联度相对较少的知识,而且上车后,你还可以在脑子里回顾下。
再比如说,你工作了一天很累了,没有太多的精力去深度学习,此时可以找一件你每天必须干的事情,而且是相对轻松的事情,比如在洗脚的时候,你可以看看 Feedly,将觉得相对有用的文章保存到Pocket中(可以后续去学习),没有用的你就可以删除它,这件事情很简单,但每天要做,你完全可以找碎片化时间去干完,不要用宝贵的早晨时间去完成。
还有我坐班车的时候,由于在车里,不适合看书或者看手机,脑子也很难集中,那应该干点什么呢?我觉得听音频也不好,比如我有一段时间听了一门网络知识的教程,感觉效果很不好,首先就是看不到视频,其次另外里面的知识点也很多,遇到听不懂的也不能像看书一样去翻到前面温故一下,最后技术知识学习应该是高度集中的,所以在班车尽量不要去学习技术知识。在班车上我觉得听听历史音频相对还不错,不用动太多的脑子,仅仅是为了了解一些历史知识。另外在班车上我觉得听听英语单词也不错,在听的时候可以温习单词的意思,并且在脑子里面会出现单词的样子,可能会加强记忆力,总体上来说想好好利用班车空闲时间并不容易,其实如果能美美睡上一觉也不错,可我总做不到。
这个我是受了一些时间管理书籍的影响,尤其是番茄工作法,我们任何的学习都要遵循了人的学习、生理规律,借此充分利用专注力、压力,让自己的学习更有成效。碎片化时间同样如此,碎片化不是简简单单的选择时间、然后学习,其背后有很多的理论,我们要做的就是遵循它,并充分利用他。
其实我上面说的那些点都基于时间管理、精益学习,比如想到碎片化时间被利用了,自己的幸福感会更强,会进一步充分利用碎片化时间;比如工作一天很累了,再学习下去可能效果会很差,此时刚好坐上班车了,利用这段碎片化时间,温故下学习的知识,效果会很好,可自己的脑缓存区一个重新组织的机会;
手机阅读是个新领域,它有很多优势,也有很多的诱惑,给了你更多的学习机会,也会给了你更多的挥霍机会,借助于手机,我们如何利用好碎片化时间,如何好好学习,也是我下一阶段的探索任务。但任何事情万变不离其宗,我们需要仔细分析我们做的事情,利用好时间,从而让你收获更多,很多事情都是相通的。

软件开发如何规避时间碎片化的坑?


时间如何破碎 ?


我认为以下做法不合理的。
  • 一人多任务
  • 过分强调面对面沟通
  • 过多的全体会议
很多时候,面对面交流,仅仅是提高了交流发起者的效率而已。(甚至这一点也值得怀疑,因为经过仔细斟酌写下的文字,通常要比现场发挥的言语表达的更清楚)。当你礼貌地找某人谈话时,你已经礼貌地打碎了他的时间。你在损害他的效率。

说到这里,请读者不要误解。我不是在鼓励开发人员成为像患有自闭症一样的程序怪人。我只是想强调,过多的当面交流会导致时间的碎片化,从而影响整个团队的效率。 有其他沟通方式(比如邮件),能把对他人的干扰降低。

喜欢召开全体会议的团队领导者,在召开全体会议前请思考,会议内容是否是每个人都必须知道的? 是否是必须口头传达给每个人的 ? 如果是一场讨论会,是否这些人都需要参与到讨论中来? 由于全体会议打断了每个参与者的时间,时间碎片化效果扩展到了全体,因而影响更大。


为什么讨论时间的碎片化 ?

产生有效成果的智力活动,总是需要连续的时间来保证。而对一名软件开发人员,3个不连续的20分钟内的工作成果,恐怕只能相当连续的40分钟的成果。

卓有成效的智力活动

时间如何破碎 ?

我们不是古庙里的僧侣, 因此尘世中的干扰总是存在。

碎片化时间

不合理的做法

  • 一人多任务

    一人多任务
  • 过分强调面对面沟通
    自组织团队就像封装良好的软件组件。它应该是内聚的,外部只能通过定义良好的接口与之交互。
    仔细斟酌写下的文字,通常要比现场发挥的言语表达的更清楚。

高效的沟通
  • 过多的全体会议
    由于全体会议打断了每个参与者的时间,时间碎片化效果扩展到了全体,因而影响更大。

开全体会议前思考

思维引导时间

软件开发工作是剧烈的脑力活动。象引擎一样,人的大脑在进入高速运转前,需要一个预热和启动过程。让我姑且称这里消耗的时间为“思维引导时间”( Mind Bootstrap Time , MBT )。
要继续之前的谈话,他就需要重新思考交谈的内容并从被打断处开始。这里花费的时间,就是 MBT 。

结束语

时间碎片化是开发工作直接的危害之一。虽然很多时间断点无法避免,但管理方式的改进能减轻这方面的危害。减少对开发人员的干扰,提高他们工作时间的连续性,是高效管理的必要手段之一。

Labels

Review (572) System Design (334) System Design - Review (198) Java (189) Coding (75) Interview-System Design (65) Interview (63) Book Notes (59) Coding - Review (59) to-do (45) Linux (43) Knowledge (39) Interview-Java (35) Knowledge - Review (32) Database (31) Design Patterns (31) Big Data (29) Product Architecture (28) MultiThread (27) Soft Skills (27) Concurrency (26) Cracking Code Interview (26) Miscs (25) Distributed (24) OOD Design (24) Google (23) Career (22) Interview - Review (21) Java - Code (21) Operating System (21) Interview Q&A (20) System Design - Practice (20) Tips (19) Algorithm (17) Company - Facebook (17) Security (17) How to Ace Interview (16) Brain Teaser (14) Linux - Shell (14) Redis (14) Testing (14) Tools (14) Code Quality (13) Search (13) Spark (13) Spring (13) Company - LinkedIn (12) How to (12) Interview-Database (12) Interview-Operating System (12) Solr (12) Architecture Principles (11) Resource (10) Amazon (9) Cache (9) Git (9) Interview - MultiThread (9) Scalability (9) Trouble Shooting (9) Web Dev (9) Architecture Model (8) Better Programmer (8) Cassandra (8) Company - Uber (8) Java67 (8) Math (8) OO Design principles (8) SOLID (8) Design (7) Interview Corner (7) JVM (7) Java Basics (7) Kafka (7) Mac (7) Machine Learning (7) NoSQL (7) C++ (6) Chrome (6) File System (6) Highscalability (6) How to Better (6) Network (6) Restful (6) CareerCup (5) Code Review (5) Hash (5) How to Interview (5) JDK Source Code (5) JavaScript (5) Leetcode (5) Must Known (5) Python (5)

Popular Posts