10x 程序员工作法
郑晔
开源项目 Moco 作者
53432 人已学习
新⼈⾸单¥68
登录后,你可以任选4讲全文学习
课程目录
已完结/共 63 讲
思考框架 (1讲)
10x 程序员工作法
15
15
1.0x
00:00/00:00
登录|注册

02 | 以终为始:如何让你的努力不白费?

以终为始的重要性
克服思维模式的不足
亚马逊的向后工作方法
以终为始在发现工作中的问题中的应用
以终为始在规划工作中的应用
第一次创造和第二次创造
软件开发团队的想象共同体
以终为始的应用举例
以终为始的思维方式
以终为始的重要性
人类思维模式的演化
以终为始的定义
总结时刻
规划和发现
想象的共同体
一种反直觉的思维方式
反直觉的思维方式
以终为始:如何让你的努力不白费?

该思维导图由 AI 生成,仅供参考

你好,我是郑晔。
今天内容的开始,我希望你可以先来思考一个问题:如果让你设计一个登录功能,你会怎么做?
我曾在公司内部做过这样一个练习,我扮演客户,让大家帮我设计一个登录功能。同事们一听就高兴了,登录不就是用户名加密码嘛,我熟啊,我还可以设计出验证码、找回密码、第三方登录等等功能。
更有个别动作快的同事,甚至已经开始设计数据库表,考虑用 Redis 做缓存了。整个过程下来,大家彼此讨论得热火朝天,唯一没人理会的就是我这个“客户”。
讨论结束,扮演客户的我告诉大家,作为一个“土豪”,我打算做一个打车软件,用户可以通过手机号接收验证码的方式进行登录。你可以想见,同事们一副“被套路了”的表情。是的,他们设计那套用户名密码登录完全是文不对题。
虽然这是一个简单的练习,但反映的却是我们日常面对的真实工作场景:许多人都是刚刚听到别人要求做的一个功能,就开始脑补接下来的一切。导致的结果,就是付出的努力毫无意义。
那么问题出在哪呢?因为我们欠缺了“以终为始”的思维习惯。

一种反直觉的思维方式

以终为始,就是在做事之前,先想想结果是什么样子的。
说起来很简单,但做到并不容易。因为我们习以为常的思维模式是线性而顺序的,第一步做完,做第二步;第二步做完,做第三步。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

软件开发中的“以终为始”思维方式是一种重要的工作方法,它强调在做事之前先考虑结果,以此来规划工作和发现潜在问题。这种思维方式对于提高软件开发效率和质量具有重要意义。文章通过实际案例和亚马逊的做法,阐述了“以终为始”思维方式的重要性,并提出了在软件开发中如何运用这种思维方式的建议。作者强调了在软件开发中如何通过“以终为始”思维方式来统一各方的想象,避免成本高昂的问题,并且指出这种思维方式可以帮助规划工作和发现问题。总之,本文通过深入浅出的方式,为读者提供了有益的思考和实践指导。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《10x 程序员工作法》
新⼈⾸单¥68
立即购买
登录 后留言

全部留言(106)

  • 最新
  • 精选
  • arronK
    以终为始,我刚毕业准备找工作写简历的时候就是这么干的。 1. 先确定我想要找到的工作是什么样的, 2. 然后收集很多招聘网站上给出的对应需求,整理划分成一份简历的技能树 3. 写好最终的简历 4. 按照简历上的要求去学习和提升 这个方法我自己用起来百试不爽,也推荐给了身边的朋友。哪怕不是要去面试,想提升自己的技能和价值,也可以假设写一份想要达成的简历,然后以终为始去执行。

    作者回复: 棒!

    2019-11-16
    8
    182
  • Gojustforfun
    前段时间遇到一个事,领导派给我一个任务——做一个XXXX功能,没太细说就告诉我:你自己去想,自己去看别人怎么是实现的,把他弄出来 我经过一番调研,这个大功能可以拆分为8个小功能。于是我将4个必备小功能(编号1~4)实现并提交; 领导看了说:还少……功能呢。我一看哦还要加上6号小功能,实现并提交; 领导看了又说:我们的业务我是这样……所以需要……。我理解后发现要加的不是8号小功能的变种嘛,实现并提交; 领导看了没说什么算过了。几天后接到领导QQ弹窗:怎么没有……功能呢(我一看是7号小功能,还不等我说什么)你是怎么回事,总是少这少那的,非得我说的那么细吗一步一步告诉你怎么做?…… 真是日了🐶了,他不详细告诉我他头脑中的想象,但却要实现他要求的功能,问多了觉得你能力不行需要嚼碎了喂你,按我自己的想象实现后要经常返工,次数多了最终还是落在能力不行、做的太少啊等等负面评价 现在接任务我都是战战兢兢,不知道该怎么办了,想听听老师和小伙伴们的意见和建议 看来今天的文章,我觉得可以尝试原型,但考虑到地位的不对等以及我的“人设”已经定型了,实施起来有点难度

    作者回复: 这个问题很有趣,决定产品特性的究竟是谁,这是需要先明确下来的。如果这是你要做的事,你就在扮演产品经理的角色。你需要做的就是分析产品特性,找用户了解使用场景,而不是闷在办公室里空想。 即便你只是为领导在做产品,你需要把你们会谈的结果详细地写出来,然后,发邮件让领导确认。一旦确认,你领导就不好拿这事说事了,因为你有证据。 如果一个领导连自己的话都不认,你需要考虑一下与他合作的前景了。

    2018-12-28
    11
    95
  • yu
    延伸出来的思考。 拿到一个需求先写接口文档,评审过了再开发代码。争取做到接口文档就是最终的实现方案,不需要做着做着再去沟通方案。而不是拿了需求文档,直接就写代码。 好处: 1. 写接口文档,可以更好的规划工作量和时间。 2. 梳理的过程中,可能会发现一些考虑不周的技术问题,提前排雷。 3. 评审的过程也是自我提高的过程,说不定沟通中有比自己认为的有更好的技术解决方案。

    作者回复: 很好的延伸思考。

    2019-02-14
    2
    23
  • Zopen
    以终为始 遇到一位喜欢的女孩,先想象她已经成为我的女朋友,然后列出她喜欢做的事情,兴趣爱好,尽量去做;列出她不喜欢的事情,尽量避免;保持沟通,最后,她成为了我的女朋友。

    作者回复: 这个用法真好!

    2021-03-07
    17
  • Y024
    “以终为始”,最常见的一个实践就是计划倒排了。先定时间,然后看功能是不是做不过来得砍掉一些,人力是不是不够需要补充一些,提前预知规避风险。

    作者回复: 你说得对,倒排时间表不是错,倒排时间表却不调整需求范围和资源配置就是问题了。

    2018-12-28
    17
  • 大力
    最近在复习10x程序员,并且在将每一课都做成思维导图,不知道郑老师有没有兴趣读读呢?实在不知该如何上传至极客时间。

    作者回复: 现在极客时间有了部落,可以在上面发表自己的内容。

    2019-05-12
    2
    10
  • 陈斯佳
    《高效能人士的七个习惯》中也指出了以终为始的重要性,不过老师这里又进一步对程序员的“终”加以定义:做一个对用户有价值的软件。你价值的大小取决于你能为他人提供多少的价值。

    作者回复: 为了写这个专栏,我也把《高效能人士的七个习惯》回顾了一下。

    2019-08-01
    2
    8
  • Beluga
    我最近最受益的地方在于亲密关系,疫情期间看了《高效能人士的七个习惯》,根据以终为始原则。我就在想最终我是要和她成为更好的自己,也更好的成为自己。最我的目标是两个人幸福,相互帮助,相互鼓励和成长的过一生。所以追求她的时候我很耐得住性子,确认关系以后我也很包容她。因为我知道结目标是最重要的。

    作者回复: 很赞,以终为始驱动亲密关系!

    2020-08-13
    3
    7
  • 大力
    以终为始,令我想到了“先订家具再装修”的套路,这样可以避免供电位不合适要返工等情况。

    作者回复: 装到哪算哪的装修,家里的风格会很特别😂

    2019-05-14
    2
    7
  • 斯盖丸
    请问老师怎么把握一开始通盘考虑和敏捷开发的度?现在都提倡敏捷,总感觉想多了就成了瀑布型的了…

    作者回复: 抛开不同过程的交付物的差别,瀑布和敏捷的根都是一样的,都是软件开发的基本过程:需求分析、软件设计、编码、测试、发布、维护。 敏捷的一个关键点就在于,周期短。当你把周期缩短,你能做的事情就是有限的,就必须做取舍,思考最重要的到底是什么。 所以,二者的关键差别就是考虑问题的范围是不同的,而范围的不同,复杂度也是不同的,时间付出之间相差的就不是线性关系。 这也是我把任务分解列成重要原则的原因,不分解问题就很难解。分解了就可以做选择了。

    2021-01-15
    5
收起评论
显示
设置
留言
99+
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部