读书笔记 --《编程的精进之法》

文章:《编程的精进之法》

关键词:知识工作、任务列表PDCAPlan-Do-Check-Action)、自我记录、总结改进

引子:知识工作者需要自我管理

理由如下:

体力工作的效率提升可以通过外力完成,比如可标准化流程来提高熟练度;比如完善管理和组织劳动者的方式、合理分配任务等。只要管理者能够以足够有效的激励方式激励体力劳动者,比如为之提供足够高的薪水、关注他们的体力和健康状况,那么劳动的效率自然会得到提升。

但知识工作不同,当管理因素和激励因素全部到位,知识工作者的做事方法和工作方式(即个人能力或技术水平)是制约生产效率的重要因素。知识工作的方法和技巧有很多种,且条条大道通罗马,每个人都有自己独特的工作方式。知识工作者要谋求自己生产效率的提升,借助外力要比体力劳动者难:原因是其他人必须深入了解这种工作方式才能为之提供改进的建议,而这个了解的过程要花费很长时间并且有一定难度,远远大于了解一个体力工作者的成本。

方法:可视化工作效率并找到自己生产效率的瓶颈,然后分析、优化

任务列表法+PDCA(Plan-Do-Check-Action)法

一、任务列表法

          好的任务列表:不遗漏、不依赖、不重复

(1)不遗漏:工作任务和任务列表完全等价。

         即你在工作种中的每一项工作都能在任务列表中找出相对应的任务

         如果在任务进行中又出现了新的任务怎么办?

        补救方法:立即将之加入任务列表,同时对任务的难度等级、完成时间等标准做相应调整

这里有个任务细化粒度的问题:要把任务细分到什么程度呢?

(2)不依赖:任务之间不能有依赖关系

         如果列表中有任务必须在其他任务完成之后才能做,那这个任务就不应该在当前级别的任务列表中出现。如果你发现列出的任务重有好几个都依赖于同一个任务,那么把这个任务列入当前列表,将其他任务置后。

(3)不重复:任务之间不能有交集

        不是说任务列表之间不能重复,而是你划分的任务之中不能有相互重复的子任,务,或者这两个子任务之间相互依赖。如果有,那就细分任务,直到它们相互独立为止

二、PDCA(Plan-Do-Check-Action)法

        做计划(任务列表)——>实际完成任务——>检查完成任务的成果(找出问题根源)——>行动起来,解决问题,让下一次的计划更合理,更高效

(1)做计划:不必太过严格细致

        计划赶不上变化,能很好的控制变化即可。把任务的实际完成量、实际完成时间等做对比,将误差控制在一定范围内。

(2)实际做任务:灵活应对变化,简单快速调整任务列表,把风险消除在萌芽之中

        在实际完成任务时,如果遇到新增的任务,简单快速地修改任务列表,重新整理思路后继续投入工作,不能花太多时间。记录的目的是让你的工作过程可视化,以供后续分析改进,只是辅助的方法而已。但也不能什么都不做,这样你实际做的任务会偏离计划太多,会造成不必要的风险。

(3)检查任务完成质量:善于分析,长于挖掘,胜者

        不管你善用数据分析也好,逻辑分析也罢,这个分析总结的过程会告诉你你实际的生产力和自己觉得应该达到的生产力还差多少。通过对任务类型和完成质量的综合分析,你就能知道自己做的最快的事情是什么,做的最慢的事情是什么,这就是你的优势和劣势了。当然其他更深层次的东西,靠你了!

(4)让下一次的计划更合理,更高效:把知识转化为生产力,这才是最牛逼的地方

        如果你通过上面的步骤已经可以比较准确的了解自己,现在就开始为自己量身定制成长计划,让每个经验都能在下一次任务中发挥作用,总有水滴石穿的一天。

        抛出一枚硬币,只有在次数足够多的情况下抛出正面或反面的概率才会接近1/2,统计的力量要在数据样本足够多时才能发挥到极致。所以不能指望一天两天,一月两月就会有明显的变化,前期的积累会给你厚积薄发的资格。

编程:如果你是一枚程序猿,把上面的方法用到自己日常的编码任务中吧!

在现实生活中想做到各项任务都独立挑战还是比较大,但是在编程的世界里,挑战没有那么大,程序世界做到这一点真的太轻松了。优秀的设计都是要求解耦的,如果做不到,基本等于活儿比较烂。

            好,现在你拿到一个编程任务,我们开始实践!

任务列表法+PDCA(Plan-Do-Check-Action)法

一、任务列表法

        写任务列表难在合理清晰的划分任务,而对编程来说,任务细分、需求澄清更是重中之重

方法一:

需求分析(想不清楚细节)——>写代码(发现需求分析不明确)——>跟业务人员确认需求——>写完所有逻辑——>测试、调试,通过后交给QA——>QA测出bug,debug、打补丁——>完成代码并提交(代码逻辑好像有点混乱,写注释都快把人烦死了)

方法二:

分解任务【1】——>列Example,用实例化需求的方式澄清需求细节【2】——>写测试代码【3】——>写实现代码【4】—>代码重构【5】——>手动测试——>QA测试——>补用例、修复bug——>提交代码【6】

注:【1】分解任务(等价于写任务列表):用用户场景去覆盖任务的每一个功能点,把每一种可能的输入输出罗列出来,反复执行业务流程,挖掘功能需求

       【2】列任务执行场景,考虑各种输入输出限制,力争澄清需求细节

       【3】写测试代码时,只关注需求和程序的输入输出,不关注实现过程。为每一个细小的功能点写测试用例,并且保证测试代码可以跑通

       【4】写实现代码时,先用简单的方法满足当前的测试用例,保证测试代码的正确性;再写代码完成当前的小需求。

       【5】代码重构:不要忘了优化你的代码

       【6】QA测试、代码修改和代码提交,留给你的就只有很少的工作量了

       注意:以上你只实现了一个小需求,要完成任务,有万年不变的真理:迭代开发,忙而不乱!

如果你对方法二有兴趣,可以参考下面这篇文章,顺便了解下【测试驱动开发】

                                         深度解读TDD(测试驱动开发)

二、PDCA(Plan-Do-Check-Action)法

Plan:由任务列表法辅助实现

Do&Check:两个考察点

1. Plan的时候估计一个时间,然后开始做,做的时候计时,做完就要Check这个时间是否达标,无论快了还是慢了(通常是比较明显的差距才反思,比如20%以上的差距),Check都要反思并产生Action,纳入到未来的Plan中去。

2. 估计的任务列表和实际做的任务列表是否是一样多的?往往是会多出来,这时就要反思,自己在哪里有不足导致了这个差别。

Thinking&Action:发现自己的问题:任务列表扩张,时间估计不准......

(1)任务划分是或否准确,检查自己的任务列表是否是“好的任务列表”,参照“不遗漏、不依赖、不重复”的指标

(2)业务知识不熟悉:在日常任务列表中加入相关任务

(3)技能方法不熟练:在编程能力提升任务列表中加入相关任务

(4)...... ....... .......(列表名叫什么,你随意......)

(5)...... ....... .......(一定要采取行动,别忽略这些问题......)

             要具体的例子?点击原文去看看吧!希望你有所收获~

                              我又贴心的放了链接《编程的精进之法》,哈哈哈!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 196,264评论 5 462
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 82,549评论 2 373
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 143,389评论 0 325
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,616评论 1 267
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,461评论 5 358
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,351评论 1 273
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,776评论 3 387
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,414评论 0 255
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,722评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,760评论 2 314
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,537评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,381评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,787评论 3 300
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,030评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,304评论 1 252
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,734评论 2 342
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,943评论 2 336

推荐阅读更多精彩内容

  • 编程,众所周知被定义为知识工作。所有的知识工作,从业者和门外汉都喜欢把它神秘化,将整个过程以不可知论的风格来解释。...
    ThoughtWorks阅读 3,472评论 8 88
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 171,142评论 25 707
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,517评论 18 139
  • 如果你这么任性,再不出现,我想我等不了你了 时光匆匆,岁月茫茫,我是沙城的一粒沙,承载着狂风...
    花儿呀咦阅读 259评论 0 0
  • 《武媚娘传奇》这部剧里,范爷饰演的舞媚娘真的独树一帜,与众不同。莫名的就是万千宠爱于一身,皇帝纵使有后宫三千佳丽唯...
    文艺女青年专治各种不服阅读 2,414评论 12 58