10x程序员工作法
郑晔
火币网首席架构师,前ThoughtWorks首席咨询师 ,TGO鲲鹏会会员
立即订阅
7975 人已学习
课程目录
已完结 56 讲
0/4登录后,你可以任选4讲全文学习。
开篇词 (1讲)
开篇词 | 程序员解决的问题,大多不是程序问题
免费
思考框架 (1讲)
01 | 10x程序员是如何思考的?
以终为始 (11讲)
02 | 以终为始:如何让你的努力不白费?
03 | DoD的价值:你完成了工作,为什么他们还不满意?
04 | 接到需求任务,你要先做哪件事?
05 | 持续集成:集成本身就是写代码的一个环节
06 | 精益创业:产品经理不靠谱,你该怎么办?
07 | 解决了很多技术问题,为什么你依然在“坑”里?
08 | 为什么说做事之前要先进行推演?
09 | 你的工作可以用数字衡量吗?
10 | 迭代0: 启动开发之前,你应该准备什么?
答疑解惑 | 如何管理你的上级?
划重点 | 关于“以终为始”,你要记住的9句话
任务分解 (11讲)
11 | 向埃隆·马斯克学习任务分解
12 | 测试也是程序员的事吗?
13 | 先写测试,就是测试驱动开发吗?
14 | 大师级程序员的工作秘笈
15 | 一起练习:手把手带你分解任务
16 | 为什么你的测试不够好?
17 | 程序员也可以“砍”需求吗?
18 | 需求管理:太多人给你安排任务,怎么办?
19 | 如何用最小的代价做产品?
答疑解惑 | 如何分解一个你不了解的技术任务?
划重点 | 关于“任务分解”,你要重点掌握哪些事?
沟通反馈 (12讲)
20 | 为什么世界和你的理解不一样
21 | 你的代码为谁而写?
22 | 轻量级沟通:你总是在开会吗?
23 | 可视化:一种更为直观的沟通方式
24 | 快速反馈:为什么你们公司总是做不好持续集成?
25 | 开发中的问题一再出现,应该怎么办?
26 | 作为程序员,你也应该聆听用户声音
用户故事 | 站在前人的肩膀上,领取属于你的高效工作秘籍
27 | 尽早暴露问题: 为什么被指责的总是你?
28 | 结构化:写文档也是一种学习方式
答疑解惑 | 持续集成,一条贯穿诸多实践的主线
划重点 | 一次关于“沟通反馈”主题内容的复盘
自动化 (12讲)
加餐 | 你真的了解重构吗?
29 | “懒惰”应该是所有程序员的骄傲
30 | 一个好的项目自动化应该是什么样子的?
31 | 程序员怎么学习运维知识?
32 | 持续交付:有持续集成就够了吗?
33 | 如何做好验收测试?
34 | 你的代码是怎么变混乱的?
35 | 总是在说MVC分层架构,但你真的理解分层吗?
36 | 为什么总有人觉得5万块钱可以做一个淘宝?
37 | 先做好DDD再谈微服务吧,那只是一种部署形式
答疑解惑 | 持续集成、持续交付,然后呢?
划重点 | “自动化”主题的重点内容回顾汇总
综合运用 (7讲)
38 | 新入职一家公司,怎么快速进入工作状态?
39 | 面对遗留系统,你应该这样做
40 | 我们应该如何保持竞争力?
答疑解惑 | 如何在实际工作中推行新观念?
划重点 | “综合运用”主题内容的全盘回顾
总复习 | 重新审视“最佳实践”
总复习 | 重新来“看书”
结束语 (1讲)
结束语 | 少做事,才能更有效地工作
10x程序员工作法
登录|注册

03 | DoD的价值:你完成了工作,为什么他们还不满意?

郑晔 2018-12-31
开始今天的讨论之前,我们先来看一个小故事。小李是一个程序员,有一天,项目经理老张来到他身边,和他商量一个功能特性的进度:
老张:这有一个任务需要完成,你看一下。
小李:这个不难,两天就能做完,两天以后就能上线。
两天以后,老张又来到小李的身边验收工作:
老张:怎么样,做完了吗?今天能上线吗?
小李:我的代码写完了。
老张:测试人员测过了吗?
小李:还没有。
老张:那今天能测完吗?
小李:那我就不知道了。
老张:什么?我可是答应了业务的人,今天一定要上线的!
很明显,老张有些愤怒,而小李也有些委屈。于是,老张、小李和测试人员一起度过了一个不眠之夜。
听完这个故事,你有什么感想呢?先不急,我们继续看后面的故事。
又过了几天,老张又来找小李,给小李安排一个很简单的功能。在小李看来,一天就能搞定,而按照老张给出的时间表,小李有两天时间处理这个功能。小李心中暗喜:看来我可以“偷得浮生一日闲”了。
两天以后,老张又来检查工作。
老张:这个功能开发完了吗?
小李:写完了,你看我给你演示一下。
小李熟练地演示了这个新写好的功能,这次老张很满意:
老张:做得不错。单元测试都写了吧?
小李:啊?还要写单元测试吗?
老张:要不为啥给你两天的时间?
取消
完成
0/1000字
划线
笔记
复制
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
该试读文章来自付费专栏《10x程序员工作法》,如需阅读全部文章,
请订阅文章所属专栏。
立即订阅
登录 后留言

精选留言(42)

  • David Mao
    职场新人估计都会遇到文中所描述的场景,上下级没有做好DoD的沟通,其实这是上下级都需要的职场素养。
    1.上级交代任务时把完成的指标和工作的边界讲清楚,下级根据要求去做。
    2.反过来,下级应不断提高技能,能自己定义DoD, 请上级check, 毕竟上级不希望每次沟通都占用较多时间。
    2019-01-01
    26
  • 公司有各种checklist,类似于DoD,举例开发过程自检就有41项,开发人员真要check完,至少要花半天时间,大多时候开发都是复制以前的,然后“偷得浮生半日闲”了,项目组成员一多,全部复核一遍基本不可能,如何确定真正落实checklist就成个问题了,老师有没有什么好的建议?

    作者回复: 我很好奇,四十多项都检查什么,是否可以分享一下?

    2018-12-31
    1
    13
  • Alexdown
    写的太好了,谢谢老师帮我捋清头脑中模糊不清的东西

    前面那两个故事简直就是我和领导之间的情景再现,我的“完成”——实现功能,通过单元测试,他的“完成”——响应时间,系统吞吐,部署上线。

    当你问他他的“完成”定义标准时,在得到解答后还会得到一个“这还用说的那么细吗,这不都应该知道的吗”排斥感,很反感这种感觉,每次问点啥后都有被鄙视被diss的感觉,不知该如何处理
    2018-12-31
    1
    8
  • Monday
    正在立2019的flag。刚好可以使用DoD
    2018-12-31
    4
  • Demi
    我们在工作中,都不会去写单元测试,认为那是测试人员的事。也没有时间去写,写功能代码就已经要加班加点了。可能也是因为懒,公司没有强制写,只要代码能跑通,没有很大的BUG,就可以上线。我不知道其他公司是不是这样。我做Android开发3年了,待过两家公司。第一家创业干了四个月,公司倒闭了。然后目前这家公司呆了两年多了。老师您这么一分析,我得提高下职业素养了。
    2018-12-31
    2
    3
  • 北天魔狼
    偶像,醒醐灌顶啊。一开始就要确定完成的定义。

    编辑回复: 😊加油!

    2018-12-31
    3
  • 喜悦
    今日概念:
    1. DoD(Definition of Done):DoD是一种思维模式,是一种尽可能消除不确定性,达成共识的方式;
        - DoD 是一个清单,清单是由一个个检查项组成的,用来检查我们的工作完成情况;
        - DoD 的检查项应该是实际可检查的;
        - DoD 是团队成员间彼此汇报的一种机制;
    2. 任务开发只有两种状态:完成/未完成;

    今日总结:
    1. 使用DoD可以事先将需要做的事量化;
    2. 一件事用了DoD之后,就确定了需要完成的具体事项,不会觉得自己有很多时间,提高效率;
    3. 使用不同“粒度”定义DoD有助于换位思考,也可以加深对系统的理解;

    使用DoD的例子
    1. 做计划,比如制定年度计划;
    2019-01-02
    2
  • pyhhou
    老师想请教一下,现在我在一家小公司里工作,人很少,没有项目经理,直接听老板讲需求,老板不怎么懂技术,没有什么技术基础,对一个项目需要的时间以及技术流程不太清晰,加上我也是刚从学校里出来可以说没啥经验,他问我多久能完成我也是迷迷糊糊的给不出一个大概的时间,老板需求也会时常变化即便是经常开会说想法讨论方案,没有严格的DoD,可能就像您说的完成功能代码就算完成,因此我们的产品老是出问题,想请问下在这种环境下如何更好的使用DoD呢,或者说是更好的提升工作效率,和上级沟通呢?是不是只要是时间足够就尽量把自己的DoD定严一些,或者是根据时间来定DoD?谢谢老师

    作者回复: 遇到一个不懂技术的老板是一件让人头疼的事。你可能需要拉着老板一起坐下来,先分析问题在哪里,再来谈如何改进。后面会讲到复盘与回顾,到时候,你可以尝试一下。

    2018-12-31
    2
  • 春之绿野
    之前做过一个任务是测试artifactory 的性能,并发上载下载100个时的表现,然后我测了,等到周末review 的时候我们组架构师说你怎么只测了100个,0到100间其他的数字呢?我说plan 的时候也没有要求啊,架构师说你自己不会举一反三吗?其实那次不光没有dod ,需求澄清也有没弄清楚“终”是什么。现在回过头来看发现我们的工作做的都好不专业啊。不过后来我们有了ac,就是accept criterion ,也是检查项,不然真是扯不清楚。

    作者回复: 这不是DoD,是验收条件。

    2019-05-02
    1
  • 谷径
    在做任何事之前,先定义完成的标准。很好的总结。
    2019-03-27
    1
  • 小伟
    在做任何事情之前,制定“可量化”的标准。
    2019-03-22
    1
  • helloworld
    定义好完成的程度,就是明确了目标!
    2019-02-15
    1
  • 彩色的沙漠
    Dod,做任何事情之前,先定义完成的标准。目前工作中有一项使用了Dod,提测标准:开发人员提测之前,要自测通过测试人员针对本次开发梳理出来的自测的case,测试人员也以这个自测case作为检查项,达不到提测标准的退回,开发人员重新测试。
    作为已经工作了四年的开发人员来说,对于完成还是停留在功能代码写完,令人汗颜,说实在的自己也不会写单元测试和集成也没有去了解过,造成改完代码覆盖测试的成本极大,今年需要弥补单元测试和集成测试自己自动化测试的短板。
    2019-01-02
    1
  • 小马
    DOD,实践起来总是困难重重的!
    2019-12-11
  • 业哥
    老师,您好,最近买了这个专栏,看到这篇文章时有个问题想请教下:最近在公司实践的OKR中的KR(关键路径),和DoD好像说的都是完成的定义,这两者有什么不同呢?

    作者回复: 首先,KR是关键结果(Key Result)。关键结果不一定要做到,但DoD则是必须要做到。二者不是一个领域的内容,放到一起类比,多少还是有些牵强。

    2019-11-18
  • 丁丁历险记
    笔记:

    dod 明确终点。提前确定好,容易歧义的地方,同步理解。
    1 dod 确定, 消除理解的鸿沟。
    2 团队dod
       迭代dod 发布dod
    3 放开思维。协作中确定dod

    个人思考
    1 根据香龙第一定律,消除不确定性,需要用更多的有效信息消除。
    再者 越后发现问题,成本越大。
    2 dod 的弊端,过度dod 就是官僚化,仔细想想,哪个政府机构不是dod 高手,会让你服气。
    3 多用约定来消除不确定性,基数排序为啥快 ,go 语言为啥 function 都简化到func 了。 i:=1 自动设为int 了。restful 接口等
    2019-10-30
  • 辰九
    沟通达成一致,非常重要,否则都是做无用功。
    2019-10-25
  • 星亦辰
    优化代码,整理代码的dod怎么定义呢
    2019-09-05
  • 陈斯佳
    定义DoD清单,可以参考使用SMART原则,也就是Specific(具体),Measurable(可衡量),Attainable(可达到),相关性(Relevant),有明确截止日期(Time-based)
    2019-07-09
  • 春之绿野
    对我弄错了,DoD是针对所有的backlog item的,我的答案应该应该是放在下一篇更合适😂感谢老师纠正
    2019-05-03
收起评论
42
返回
顶部