10倍程序员的思考模型

本文共2568个字,预估阅读时间10分钟程序员

01 效率问题

程序员越高效产出越高,产出越高能力越强,因而造成一个加强环路。可是,就我观察,现实中的程序员,大部分没有用心去思考学习效率问题。架构

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

40 多年过去了,这个数字获得了行业的广泛认同,成为 10x 程序员是不少程序员的追求。那么,问题来了,做为一个程序员,应该如何提高咱们的工做效率呢?学习

02 思惟框架

在打磨10x效率以前,咱们先问本身三个问题:测试

  • 咱们想去哪儿?
  • 咱们如今哪儿?
  • 咱们打算怎么去?

咱们能够试着回答一下:优化

  • 我想成为一名架构师
  • 我如今只是一个菜鸟
  • 我打算经过半年培训入门架构设计

或者架构设计

  • 我想从技术转产品经理
  • 我目前对产品经理一无所知
  • 我打算拜师学艺两个月入门产品经理

不论是谁,无论作的什么职业,彷佛均可以用这种三段式的提问来思考问题。这实际上是一种思惟框架。虽然很简单,可是很实用,有时候我发现用在孩子的教育上也很管用,好比设计

  • 暑假我要预习下个年级的语数英
  • 我如今处在二年级下学期的水平
  • 我打算经过项目管理的方式来完成任务

为何是这种思惟框架呢?对象

  • 去哪儿明确的是目标和方向
  • 如今在哪儿明确的是现状和坐标
  • 打算怎么去要明确的是方法论和思惟路径。
10倍程序员的思考模型

 

反过来:blog

  • 若是你对将来是茫然的,尽管你也知道要努力,但劲儿该往哪里使呢?若是使劲的方向不对,那么你越使劲儿,可能会在错误的路上跑得越远。
  • 若是目标明确,你却不实事求是,从本身实际出发,你可能半路就掉进坑里。
  • 若是明确了目标,也知道了现状,可是方法太lower,思惟混乱,结果多是事倍功半。

你们能够试着用这个思惟框架,或者变体,或许你不须要记那么多,可是不要紧,你只要记住上面这张图。

03 改变询问对象

咱们经过平时和产品经理的沟通来进一步实践该框架。在上面的假设里,咱们问的对象是本身,在和产品经理沟通的过程当中,咱们也能够改变询问对象:

10倍程序员的思考模型

 

  • 为何要作这个功能,他会给用户带来什么价值?
  • 如今没有吗,是否是必定要开发,仍是伪需求?
  • 用户会怎么使用这个功能,什么场景下使用,怎么用?

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

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

04 实践原则

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

  • 以终为始;
  • 任务分解;
  • 风险管理;
  • 反思复盘
  • 自动化。

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

  • 以终为始就是在工做的一开始就肯定好本身的目标,咱们须要看到的是真正的目标。
  • 任务分解是将大目标拆分红一个一个可行的执行任务,工做分解得越细致,咱们便越能更好地掌控工做,这是路径。
  • 风险管理是确保过程可控,多方交流渠道是畅通的,意见是一致的,要减小由于理解误差致使的工做疏漏。
  • 反思复盘是为了迭代工做方法,完善工做中的不足,为下一轮循环作更好的准备。
  • 自动化是程序员的优点,能靠机器作的事情尽可能不要手工执行,这是咱们的工做最值得优化的地方。

以上原则实际上是参考了项目管理的方法,固然你能够增长变种,可是主干是不变的。

10倍程序员的思考模型

 

如表格所示:

  • 如今在哪儿自个清楚,我有什么,我放弃什么,若是不清楚就要敲打本身的头了。
  • 想去哪儿就是以终为始,咱们要交付什么结果在里程碑的deadline?
  • 打算怎么去就是手段和实现路径,这里借鉴的项目管理的方法。

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

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

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

为何要学会风险管控?由于我须要明确,本身是否真正理解了产品经理提交的需求,本身真的和产品经理交代的内容一致?最坏的状况会是怎样的,本身可否承受的了?风险管理的目的是确保任务按照预约的轨道顺畅进行。

有些人会好奇,为何没有沟通反馈?沟通的目的是达成一致,当即行动。若是沟通出现问题,那也是风险管控的一种方式,因此这里没有独立出来。

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

自动化是手段,咱们作的方案一般是一个自动化方案,但咱们须要了解这个方案没有自动化以前是怎么作的。若是不自动化,用户会怎么用?因此,我会关心是否是还有其它替换方案,好比,买一个现成的服务。

反思复盘是流程的一个重要闭环,若是缺乏了这一环节,可能整个思惟框架因为缺乏流量注入就固化、消亡了。

05 总结

大多数人工做低效是因为缺少有效的思惟框架,加上工做中偶然出现的复杂度,咱们“真实”的工做效率天然会得大打折扣。

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

运用这个思考框架,咱们须要问本身三个问题:

  • Where are we(咱们如今在哪儿?)
  • Where are we going(咱们想去哪儿?)
  • How can we get there(咱们打算怎么去?)

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

  • 以终为始,肯定好终极目标;
  • 任务分解,找到实施路径;
  • 风险管控,解决过程当中可能出现的问题;
  • 反思复盘,保存思惟框架的活力;
  • 自动化,解决与机器打交道出现的问题。

若是今天的内容你只能记住一件事,那请记住:面对问题时,常常用思惟框架问问本身,我要去哪儿,我如今在哪儿,我应该如何过去。

相关文章
相关标签/搜索