0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

程序员工作效率是由编程能力决定的吗?答案是“未必”。

lviY_AI_shequ 来源:lq 2019-04-25 17:00 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

程序员是一个忙碌的职业,与这个职业联系在一起的词儿,通常是忙碌、加班、熬夜、过劳、亚健康……当忙碌成为了主旋律,“高效”一词就自然浮出了水面。

可是,程序员工作效率是由编程能力决定的吗?答案是“未必”。

这些年,我一直在研究一件事儿:为什么那些大师级程序员,可以兼顾 N 倍于一般人的工作,还有条不紊?他们究竟用了什么工作法?根据我的观察与总结,他们往往绕不开下面四个工作原则。

以终为始

任务分解

沟通反馈

自动化一切

下面,就给大家先介绍前两个工作原则。

以终为始DoD

DoD(Definition of Done,完成的定义),从名字便不难看出,它就是为了解决软件开发中常见的“完成”问题而生的。DoD 本身并不复杂,它就是告诉我们怎样算是完成了,尽量减少因为歧义造成的各种浪费。

既然 DoD 是一个弥补理解差异的做法,那么它就应该在人与人的协同工作中起作用。其中,最常见的做法是在团队中确定好 DoD。比如:

特性开发完成,表示开发人员经过了需求澄清、功能设计、编写代码、单元测试,通过了测试人员的验收,确保代码处于一个可部署的状态,相关文档已经编写完毕。

开发完成,表示开发人员编写好功能代码,编写好单元测试代码,编写好集成测试代码,测试可以通过,代码通过了代码风格检查、测试覆盖率检查。

大家都是聪明人,一旦 DoD 确定好了,谁该做什么事就一目了然了。

DoD 是一个清单,清单是一个个的检查项,用来检查我们的工作完成情况。DoD 的检查项,就是我们开发产品所需的一系列有价值的活动。比如:编写代码、编写测试代码、通过测试人员验收等。

DoD 是团队成员间彼此汇报的一种机制。别把“汇报”想复杂了,最简单的汇报就是说一句“这个功能做完了”。当我们有了 DoD,做事便只有两种状态,即“做完”和“没做完”,根本没有 80% 做完的说法。

DoD 的检查项应该是实际可检查的:你说代码写好了,代码在哪里;你说测试覆盖率达标了,怎么看到;你说你功能做好了,演示一下。

在前面的讨论中,我们所说的 DoD 只是从个人层面入手。在团队层面,我们也可以定义 DoD,比如:

某个功能的 DoD,比如:这个功能特性已经开发完成,经过产品负责人的验收,处于可部署的状态。

一个迭代的 DoD,比如:这个迭代规划的所有功能已经完成。

一次发布的 DoD,比如,整个软件处于可发布状态,上线计划已经明确。

精益创业:验证产品特性的思考框架

精益创业提出“开发(build)-测量(measure)-认知(learn)”这样一个反馈循环和最小可行产品的概念。

当你有了一个新的想法(idea)时,就把想法开发成产品(code)投入市场,然后,收集数据(data)获取反馈,看看前面的想法是不是靠谱。无非得到两种结果:好想法继续加强、不靠谱的想法丢掉算了。不管是哪种结果,你都会产生新的想法,再进入到下一个循环里。在这个反馈循环中,你所获得的认知是最重要的,因为它是经过验证的。

我们能够接触到的大多数产品都可以放在这个框架内思考。当产品经理要做一个新产品或是产品的一个新特性,我们就可以用精益创业的这几个概念来检验一下产品经理是否想清楚。

比如,你要做这个产品特性,你要验证的东西是什么呢?他要验证的目标是否有数据可以度量呢?要解决的这个问题是不是当前最重要的事情,是否还有其他更重要的问题呢?如果这些问题得到肯定的答复,那么验证这个目标是否有更简单的解决方案,是不是一定要通过开发一个产品特性来实现。

任务分解马斯克的任务分解

特斯拉的创始人伊隆·马斯克(Elon Musk)同时还创建了太空探索公司 SpaceX。SpaceX 有一个目标是,送 100 万人上火星。美国政府曾经算过一笔账,把一个人送上火星,以现有技术是可行的,但需花费 100 亿美金。如果送 100 万人上火星就要 1 万万亿,这笔钱相当于美国 500 年的 GDP,贵到连美国政府都无法负担。

马斯克怎么解决这个问题呢?他的第一步是准备把人均费用降到 50 万美元,相当于一个人在地球上房子的钱。把原来的 100 亿降到 50 万,降低 2 万倍即可。

当然,降低 2 万倍依然是一个听起来很遥远的目标。关注点来了,马斯克的第二步是,把 2 万分解成“20×10×100”,这是一道简单的数学题,也是马斯克三个重点努力的方向。

“20”:现在的火星飞船一次只能坐 5 个人,马斯克打算把火箭造大一点,一次坐 100 人,这样,就等于把成本降低 20 倍。如果你关注新闻的话,SpaceX 确实在进行这方面的尝试。

“10”:马斯克认为自己是私营公司,效率高,成本可以降到 1/10。事实上,SpaceX 的成本目前已经降到了同行的 1/5。

最后的 100 是什么呢?就是回收可重复使用的火箭。如果这个目标能实现,发射火箭的成本就只有燃料成本,这也就是我们频频看到 SpaceX 试飞火箭新闻的原因。

这么算下来,你是不是觉得马斯克的目标不像最开始听到那样不靠谱了呢?正是通过将宏大目标进行任务分解,马斯克才能将一个看似不着边际的目标向前推进。

微操作

在ThoughtWorks 工作时,我的 Sponsor 是 ThoughtWorks 现任 CEO 郭晓(Sponsor,类似于工厂里师傅带徒弟的关系),他也是写代码出身的。他和我讲过他和 Wiki 的发明者 Ward Cunningham 一起结对编程的场景。

Ward 每天拿到一个需求,并不急于写代码,而是和郭晓一起做任务分解,分解到每个任务都很清晰之后,一个个任务完成就好了。当时郭晓虽然觉得工作很紧张,但思路却非常清晰。有时,他也很奇怪,因为在开始工作之前,他会觉得那个问题非常难以解决,结果一路分解下来,每一步都是清晰的,也没遇到什么困难就完成了。

任务分解是个好习惯,但想要掌握好它,大量的练习是必须的。我自己也着实花不少时间进行练习。随着我的练习增多,我越发理解任务分解的关键在于“小”。小到什么程度呢?有时甚至可以小到你认为这件事不值得成为一件独立的事,比如,升级一个依赖的版本,做一次变量改名。这样做好处就是,它保证了我可以随时停下来。

我曾读到过一个关于著名高尔夫球手“老虎”伍兹的故事。高尔夫球手在打球的时候,可能会受到一些外界干扰,一般情况下还好,如果他已经开始挥杆,这时候受到了干扰,一般选手肯定是继续把杆挥下去,但通常结果是打得不理想。而伍兹遇到这种情况,他会停下来,重新做挥杆的动作,保证了每一杆的标准。

伍兹能停下来,固然是经过了大量的练习,但还有一个关键在于,对于别人而言,挥杆击球是一个动作,必须一气呵成,而对伍兹来说,这个动作是由若干小动作组成,他只不过是刚好完成了某个小动作,而没有做下一个小动作而已。换句话说,大家同样都是完成一个原子操作,只不过,伍兹的原子操作比其他人的原子操作小得多。

一个经过分解后的任务,需要关注的内容是有限的,我们就可以针对这个任务,把方方面面的细节想得更加清晰。很多人写代码之所以漏洞百出,一个重要的原因就是任务粒度太大。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 代码
    +关注

    关注

    30

    文章

    4942

    浏览量

    73167
  • 程序员
    +关注

    关注

    4

    文章

    955

    浏览量

    30790
  • 马斯克
    +关注

    关注

    1

    文章

    858

    浏览量

    22447

原文标题:大师级程序员,都用哪些工作法?

文章出处:【微信号:AI_shequ,微信公众号:人工智能爱好者社区】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    编程序段的定义介绍

    的段基址寄存器为DS; INT 21H表示调用操作系统提供的21H号服务程序。服务的种类AH中的功能号决定,本例中4CH表示返回操作系统的操作;AL中的代码称为返回代码,用返回代码
    发表于 11-21 08:19

    奔赴热AI,码力全开!Talkweb House@1024程序员日系列活动圆满收官

    10月25日,随着TalkwebHouse@AI编程技术沙龙在拓维信息总部落下帷幕,TalkwebHouse科创孵化平台联合CSDN、开源鸿蒙开发者与活动运营组、拓维信息、开鸿智谷共同打造的“长沙
    的头像 发表于 10-27 18:59 450次阅读
    奔赴热AI,码力全开!Talkweb House@1024<b class='flag-5'>程序员</b>日系列活动圆满收官

    霍尔开关抗干扰能力的如何?霍尔芯片的抗干扰能力哪些因素决定(四)

    霍尔芯片开关
    hallwee
    发布于 :2025年10月22日 11:23:38

    霍尔开关抗干扰能力的如何?霍尔芯片的抗干扰能力哪些因素决定(三)

    霍尔芯片开关
    hallwee
    发布于 :2025年10月22日 11:22:50

    基于无线通信网关的PLC程序远程升级系统方案

    基于基于无线通信网关的PLC程序远程升级系统方案。通过将无线通信网关接入到现场PLC中,能够为工厂PLC提供一个远程通信的网络通道,技术人员即可在办公室对异地PLC进行程序升级下载、编程调试等操作,从而提高
    的头像 发表于 07-07 10:53 513次阅读
    基于无线通信网关的PLC<b class='flag-5'>程序</b>远程升级系统方案

    引领智能制造:AR+AI双向巡检,提升设备监控与员工反馈效率

    。 通过结合人工智能(AI)和增强现实(AR)技术,企业能够实现设备与员工的双向巡检,不仅让员工高效判断设备运行状况,设备本身通过AI模型也可以实时判断员工操作的准确性,进一步提高巡检效率
    的头像 发表于 02-25 13:31 769次阅读
    引领智能制造:AR+AI双向巡检,提升设备监控与<b class='flag-5'>员工</b>反馈<b class='flag-5'>效率</b>

    深圳福田首推AI数智员工

    数智员工共有70名。它们在“上岗”后,将作为AI助手,协助开展公共管理和服务工作,有效提高了工作效率。然而,福田区政务服务和数据管理局副局长高增在接受媒体采访时明确指出,这些AI数智员工
    的头像 发表于 02-19 14:19 781次阅读

    ADS7864采样频率到底是外部时钟决定还是HOLDX信号频率决定

    ADS7864数据手册上说当采用8M外部时钟的时候,采样频率为500kHz,但是有人说可以通过HOLDX频率来控制采样频率,一个HOLDX下降沿采样一次,HOLDX频率就是采样频率。请问采样频率到底是外部时钟决定还是HOLDX信号频率
    发表于 01-14 06:47

    阿里云升级通义灵码AI程序员,全面上线

    近日,阿里云宣布其备受瞩目的通义灵码AI程序员已正式全面上线,为开发者带来更为强大和便捷的编程辅助工具。 此次上线的通义灵码AI程序员,在功能上实现了全面升级。现在,它支持VS Code
    的头像 发表于 01-09 11:16 963次阅读

    利用西门子博途(TIA Portal)的程序比较功能,提高工作效率

      一、问题点 当离线和在线的程序不一致时,或是当我们需要查找不同程序版本的差异时,都会用到程序比较功能。程序比较是编程软件的一项重要功能,
    的头像 发表于 01-07 11:29 1.3w次阅读
    利用西门子博途(TIA Portal)的<b class='flag-5'>程序</b>比较功能,提高<b class='flag-5'>工作效率</b>

    移动机器人核心科技解码:导航、感知与掌控力的深度剖析

    富唯智能移动机器人的核心技术主要包括导航、感知与控制。这些技术共同决定了移动机器人在不同环境中的自主行动能力工作效率
    的头像 发表于 01-02 16:01 816次阅读

    TMS320C6000程序员指南

    电子发烧友网站提供《TMS320C6000程序员指南.pdf》资料免费下载
    发表于 12-24 17:19 2次下载
    TMS320C6000<b class='flag-5'>程序员</b>指南

    使用pdfDocs提高工作效率,改进PDF工作流程

    使用pdfDocs提高工作效率,改进PDF工作流程。 pdfDocs是一款PDF管理应用程序,可帮助法律专业人士创建、编辑、整理、装订、编辑和保护 PDF 文档,提高工作效率和安全性。
    的头像 发表于 12-21 15:31 740次阅读
    使用pdfDocs提高<b class='flag-5'>工作效率</b>,改进PDF<b class='flag-5'>工作</b>流程

    TMS320C55x DSP CPU程序员参考补充

    电子发烧友网站提供《TMS320C55x DSP CPU程序员参考补充.pdf》资料免费下载
    发表于 12-21 11:36 3次下载
    TMS320C55x DSP CPU<b class='flag-5'>程序员</b>参考补充

    Amazon Q Business发布新功能 助力企业提升内部工作效率

    ,大幅提升工作效率 北京2024年12月19日 /美通社/ -- 亚马逊云科技在2024 re:Invent全球大会上发布了Amazon Q Business的新功能。Amazon Q
    的头像 发表于 12-19 15:29 746次阅读