{T}

如何让努力不白费-以结果为导向

反直觉的思维方式

以终为始就是在做事之前,先想想结果是什么样子的。说起来很简单,但做到并不容易。因为习以为常的思维模式是线性而顺序的。“以终为始”是一种反直觉的思维方式,是大多数人不具备的

比如大学毕业时,有很多人想考研,如果你问他为什么要考研,得到的理由通常是为了找个好工作。但考研真的能帮他找个好工作吗?不一定,因为找工作和考研根本就不是同一棵技能树

如果真的是想找个好工作,就应该了解工作的要求是什么,怎样才能掌握工作要求的技能。

从后面这个角度出发,就会发现考研只是通往工作诸多道路中的一条,其他的路径也是可以到达的。比如可以找个实习的地方锻炼一下职业技能。这就是“以终为始”思考问题的方式

想象的共同体

任何事物都要经过两次创造:

  • 在头脑中的创造,也就是智力上的或者第一次创造
  • 然后才是付诸实践,也就是实际的构建或第二次创造

工作中遇到的很多问题,其实就是在于第一次创造没有做好,就进入到第二次创造。所以在工作中会遇到很多惊吓

对应到做软件也可以做很多事,比如:

  • 要给用户看产品的样子,可以用原型工具把它做出来,而不是非得把完整功能开发出来
  • 要呈现服务接口的样子,可以用模拟服务器搭出一个服务,而不用等后端全部开发完毕
  • 要让程序员知道要开发产品的细节,可以在任务上描述出软件各种场景给出的各种行为

对做软件的人来说,应该把“终”定位成做一个对用户有价值的软件,能够为别人带来价值,自己的价值才能体现出来

规划和发现

在执行任务之前,先倒着想想再动手规划,这样规划出来的工作更能瞄准真正的目标。

案例-物联网开发平台

例如打算做一个物联网开发平台,但具体应该做成什么样子呢?有了“以终为始”的思维,考虑的是别人会怎么用我们的平台。设计的方式是,用户访问网站,先阅读相关文档,然后参考文档一步一步照着做

文档描绘了用户怎样使用我们的开发平台。注意这时,我们一行代码都没有写。写好这个文档,团队的所有人对于我们的平台要做成什么样子,已经有了一个比较初步的认识。更重要的是可以拿着这个文档,去和外部的人讨论这个尚未出世的平台

人类是一个擅长脑补的群体,一旦有人看到了这个文档,他就已经可以构想出这个平台已经存在的样子,进而给出各种各样的反馈:“我认为这个地方可以这样做”、“我觉得那个地方可以改改”。

所有这些反馈都是真实的,因为他们已经“看到了”一个真实的东西。正是这些真实的反馈,让我们逐渐地锁定了目标。之后才开始动手写代码

实践

事实上软件开发实践中,已经有很多采用了“以终为始”原则的实践

  • 比如测试驱动开发。只有通过测试,才有资格说代码完成了。当然测试驱动开发想做好,并不是先写测试这么简单的
  • 比如持续集成,是要交付一个可运行的软件,倒着来想,最好的做法就是让软件一直处于可运行的状态,那就是持续地做集成

概括地说,践行“以终为始”就是在做事之前,先考虑结果,根据结果来确定要做的事情

以终为始也可以应用于找工作写简历:

  1. 先确定想要找到的工作是什么样的,
  2. 然后收集很多招聘网站上给出的对应需求,整理划分成一份简历的技能树
  3. 写好最终的简历
  4. 按照简历上的要求去学习和提升