10x程序员的思考模型

admin 2022年2月3日11:16:52评论75 views字数 2765阅读9分13秒阅读模式

 点击上方“分布式实验室”关注公众号

回复“1”抽取技术书


 
1 
效率问题


程序员越高效产出越高,产出越高能力越强,于是形成一个增强环路。但是,就我观察,现实中的程序员,大部分没有用心去思考学习效率问题。

1975年,弗雷德里克·布鲁克斯(Frederick Brooks)出版了软件行业的名著《人月神话》,他给出了一个统计结果,优秀程序员的开发效率是普通程序员的10倍

40多年过去了,这个数字得到了行业的普遍认同,成为10x程序员是很多程序员的追求。那么,问题来了,作为一个程序员,应该如何提升我们的工作效率呢?


 
2 
思维框架


在打磨10x效率之前,我们先问自己三个问题:

  • 我们想去哪儿

  • 我们现在哪儿?

  • 我们打算怎么去?

我们可以试着回答一下:

  • 我想成为一名架构师

  • 我现在只是一个菜鸟

  • 我打算通过半年培训入门架构设计

或者:

  • 我想从技术转产品经理

  • 我目前对产品经理一无所知

  • 我打算拜师学艺两个月入门产品经理

不管是谁,不管做的什么职业,似乎都可以用这种三段式的提问来思考问题。这其实是一种思维框架。虽然很简单,但是很实用,有时候我发现用在孩子的教育上也很管用,比如:

  • 暑假我要预习下个年级的语数英

  • 我现在处在二年级下学期的水平

  • 我打算通过项目管理的方式来完成任务

为什么是这种思维框架呢?

  • 去哪儿明确的是目标和方向

  • 现在在哪儿明确的是现状和坐标

  • 打算怎么去要明确的是方法论和思维路径

10x程序员的思考模型


反过来:

  • 如果你对未来是茫然的,尽管你也知道要努力,但劲儿该往哪里使呢?如果使劲的方向不对,那么你越使劲儿,可能会在错误的路上跑得越远。

  • 如果目标明确,你却不实事求是,从自己实际出发,你可能半路就掉进坑里。

  • 如果明确了目标,也知道了现状,但是方法太low,思维混乱,结果可能是事倍功半。

大家可以试着用这个思维框架,或者变体,或许你不需要记那么多,但是没关系,你只要记住上面这张图。


 
3 
改变询问对象


我们通过平时和产品经理的沟通来进一步实践该框架。在上面的假设里,我们问的对象是自己,在和产品经理沟通的过程中,我们也可以改变询问对象:

10x程序员的思考模型


  • 为什么要做这个功能,他会给用户带来什么价值?

  • 现在没有吗,是不是一定要开发,还是伪需求?

  • 用户会怎么使用这个功能,什么场景下使用,怎么用?

如果产品经理能够回答好这些问题,说明他基本上已经把这个工作想得比较清楚了,这个时候,我才会放心地去了解后续的细节。

我们用思维框架对照一下,为什么要这么问?一般开发前我们是知道目前系统现状的,所以,我比较关心最后的目标,这里“为什么要做这个功能”就是在问目标,“给用户带来什么价值”是在问这个目标的合理性,确保不是伪需求。接下来我会关注实现路径,用户会怎么用,是否有其他的代替手段,我需要了解产品经理设计的思考过程,是慎重考虑过的还是拍脑袋想出来的。衡量有效性,目的是要保证我的工作不被浪费。


 
4 
实践原则


上面我们明白了框架的使用方法,也许你会说我明白了为什么要这么做,但是具体的问题要怎么问,有没有实践原则呢?我们可以考虑如下5个原则:

  • 以终为始

  • 任务分解

  • 风险管理

  • 反思复盘

  • 自动化

这些原则其实和我们的思维框架是一脉相承的关系:

  • 以终为始就是在工作的一开始就确定好自己的目标,我们需要看到的是真正的目标。

  • 任务分解是将大目标拆分成一个一个可行的执行任务,工作分解得越细致,我们便越能更好地掌控工作,这是路径。

  • 风险管理是确保过程可控,多方交流渠道是畅通的,意见是一致的,要减少因为理解偏差导致的工作疏漏。

  • 反思复盘是为了迭代工作方法,完善工作中的不足,为下一轮循环做更好的准备。

  • 自动化是程序员的优势,能靠机器做的事情尽量不要手工执行,这是我们的工作最值得优化的地方。

以上原则其实是参考了项目管理的方法,当然你可以增加变种,但是主干是不变的。

现在哪儿
想去哪儿
打算怎么去
自己清楚
以终为始
任务分解
分险管控
反思复盘
自动化

如表格所示:

  • 现在在哪儿自个清楚,我有什么,我放弃什么,如果不清楚就要敲打自己的头了。

  • 想去哪儿就是以终为始,我们要交付什么结果在里程碑的deadline。

  • 打算怎么去就是手段和实现路径,这里借鉴的项目管理的方法。

知道了这些原则,我们看下最佳实践:

产品经理把要做的功能清单摆在我们面前,站在以终为始的角度,我需要了解真正的目标是什么,所以,我会关心为什么要做这个功能。为了保证目标是有效的,我会关心它给用户带来的价值。

有了任务分解的视角,我需要将一个大的目标进行拆解,如果我要达成这个目标,整体解决方案是远远不够的,我需要把任务分解成一个一个小的部分。所以,我会关心一下具体的使用场景。一方面,我会了解到更多的细节,另一方面,当时间紧迫的时候,我会和产品经理来谈谈究竟优先实现哪个场景。

为什么要学会风险管控?因为我需要明确,自己是否真正理解了产品经理提交的需求,自己真的和产品经理交代的内容一致?最坏的情况会是怎样的,自己能否承受的了?风险管理的目的是确保任务按照预定的轨道顺畅进行。

有些人会好奇,为什么没有沟通反馈?沟通的目的是达成一致,立即行动。如果沟通出现问题,那也是风险管控的一种方式,所以这里没有独立出来。

其实风险管控涉及的面非常广,贯彻整个研发生命周期,因为需求变化有风险、设计可能出现漏洞、开发有BUG、测试不完整等等,怎么强调都不为过。

自动化是手段,我们做的方案通常是一个自动化方案,但我们需要了解这个方案没有自动化之前是怎么做的。如果不自动化,用户会怎么用?所以,我会关心是不是还有其它替换方案,比如,买一个现成的服务。

反思复盘是流程的一个重要闭环,如果缺少了这一环节,可能整个思维框架由于缺少流量注入就固化、消亡了。


 
5 
总结


大多数人工作低效是由于缺乏有效的思维框架,加上工作中偶然出现的复杂度,我们“真实”的工作效率自然会得大打折扣。

而想要减少偶然复杂度的消耗,就要了解一些高效的工作方式和行业的最佳实践,而这一切是可以用统一的框架进行串联思考。

运用这个思考框架,我们需要问自己三个问题:

  • Where are we(我们现在在哪儿?)

  • Where are we going(我们想去哪儿?)

  • How can we get there(我们打算怎么去?)

为了把这个框架应用在我们程序员的工作中,我给了你几个实践原则:

  • 以终为始,确定好终极目标;

  • 任务分解,找到实施路径;

  • 风险管控,解决过程中可能出现的问题;

  • 反思复盘,保存思维框架的活力;

  • 自动化,解决与机器打交道出现的问题。

如果今天的内容你只能记住一件事,那请记住:面对问题时,经常用思维框架问问自己,我要去哪儿,我现在在哪儿,我应该如何过去。


推荐阅读:《如何构建知识体系?



点击下方卡片关注分布式实验室,和我们一起

关注分布式最佳实践

10x程序员的思考模型

 点击上方卡片关注分布式实验室,掌握前沿分布式技术


长按识别下方二维码,了解培训主题。

10x程序员的思考模型


10x程序员的思考模型

原文始发于微信公众号(分布式实验室):10x程序员的思考模型

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年2月3日11:16:52
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   10x程序员的思考模型https://cn-sec.com/archives/764762.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息