本文共2568个字,预估阅读时间10分钟程序员
程序员越高效产出越高,产出越高能力越强,因而造成一个加强环路。可是,就我观察,现实中的程序员,大部分没有用心去思考学习效率问题。架构
1975 年,弗雷德里克·布鲁克斯(Frederick Brooks)出版了软件行业的名著《人月神话》,他给出了一个统计结果,优秀程序员的开发效率是普通程序员的 10 倍。框架
40 多年过去了,这个数字获得了行业的广泛认同,成为 10x 程序员是不少程序员的追求。那么,问题来了,做为一个程序员,应该如何提高咱们的工做效率呢?学习
在打磨10x效率以前,咱们先问本身三个问题:测试
咱们能够试着回答一下:优化
或者架构设计
不论是谁,无论作的什么职业,彷佛均可以用这种三段式的提问来思考问题。这实际上是一种思惟框架。虽然很简单,可是很实用,有时候我发现用在孩子的教育上也很管用,好比设计
为何是这种思惟框架呢?对象
反过来:blog
你们能够试着用这个思惟框架,或者变体,或许你不须要记那么多,可是不要紧,你只要记住上面这张图。
咱们经过平时和产品经理的沟通来进一步实践该框架。在上面的假设里,咱们问的对象是本身,在和产品经理沟通的过程当中,咱们也能够改变询问对象:
若是产品经理可以回答好这些问题,说明他基本上已经把这个工做想得比较清楚了,这个时候,我才会放心地去了解后续的细节。
咱们用思惟框架对照一下,为何要这么问?通常开发前咱们是知道目前系统现状的,因此,我比较关心最后的目标,这里“为何要作这个功能”就是在问目标,“给用户带来什么价值”是在问这个目标的合理性,确保不是伪需求。接下来我会关注实现路径,用户会怎么用,是否有其余的代替手段,我须要了解产品经理设计的思考过程,是慎重考虑过的仍是拍脑壳想出来的。衡量有效性,目的是要保证个人工做不被浪费。
上面咱们明白了框架的使用方法,也许你会说我明白了为何要这么作,可是具体的问题要怎么问,有没有实践原则呢?咱们能够考虑以下5个原则:
这些原则其实和咱们的思惟框架是一脉相承的关系:
以上原则实际上是参考了项目管理的方法,固然你能够增长变种,可是主干是不变的。
如表格所示:
知道了这些原则,咱们看下最佳实践:
产品经理把要作的功能清单摆在咱们面前,站在以终为始的角度,我须要了解真正的目标是什么,因此,我会关心为何要作这个功能。为了保证目标是有效的,我会关心它给用户带来的价值。
有了任务分解的视角,我须要将一个大的目标进行拆解,若是我要达成这个目标,总体解决方案是远远不够的,我须要把任务分解成一个一个小的部分。因此,我会关心一下具体的使用场景。一方面,我会了解到更多的细节,另外一方面,当时间紧迫的时候,我会和产品经理来谈谈究竟优先实现哪一个场景。
为何要学会风险管控?由于我须要明确,本身是否真正理解了产品经理提交的需求,本身真的和产品经理交代的内容一致?最坏的状况会是怎样的,本身可否承受的了?风险管理的目的是确保任务按照预约的轨道顺畅进行。
有些人会好奇,为何没有沟通反馈?沟通的目的是达成一致,当即行动。若是沟通出现问题,那也是风险管控的一种方式,因此这里没有独立出来。
其实风险管控涉及的面很是广,贯彻整个研发生命周期,由于需求变化有风险、设计可能出现漏洞、开发有BUG、测试不完整等等,怎么强调都不为过。
自动化是手段,咱们作的方案一般是一个自动化方案,但咱们须要了解这个方案没有自动化以前是怎么作的。若是不自动化,用户会怎么用?因此,我会关心是否是还有其它替换方案,好比,买一个现成的服务。
反思复盘是流程的一个重要闭环,若是缺乏了这一环节,可能整个思惟框架因为缺乏流量注入就固化、消亡了。
大多数人工做低效是因为缺少有效的思惟框架,加上工做中偶然出现的复杂度,咱们“真实”的工做效率天然会得大打折扣。
而想要减小偶然复杂度的消耗,就要了解一些高效的工做方式和行业的最佳实践,而这一切是能够用统一的框架进行串联思考。
运用这个思考框架,咱们须要问本身三个问题:
为了把这个框架应用在咱们程序员的工做中,我给了你几个个实践原则:
若是今天的内容你只能记住一件事,那请记住:面对问题时,常常用思惟框架问问本身,我要去哪儿,我如今在哪儿,我应该如何过去。