程序员工作法

最佳实践四原则

一、以终为始

在做事之前,先考虑结果,根据结果来确定要做的事情。

在动手做一件事之前,先推演一番。

这个思想并不难理解,我们可以很容易地将它运用在工作中的很多方面。比如:

  • 在做一个产品之前,先来推演一下这个产品如何推广,通过什么途径推广给什么样的人;
  • 在做技术改进之前,先来考虑一下上线是怎样一个过程,为可能出现的问题准备预案;
  • 在设计一个产品特性之前,先来考虑数据由谁提供,完整的流程是什么样的。

“以终为始”的思维可以帮助我们更好地规划我们手头任务,也可以帮助我们发现过程中的问题。

那么什么为终呢?这就需要定义完成的标准。

人与人协作,总会有这样或那样的理解差异。开始协作之前,我们最好先同步一下彼此的理解,确保之后不会因为理解不一致,而让协作方措手不及。

怎样解决大家的理解偏差呢,可以先定好验收标准。在实际的开发过程中,大量的分歧来自于对“需求完成”的定义。一旦事先定义好验收标准,大量的扯皮工作就随之烟消云散了。

持续集成

尽早把代码和已有代码集成到一起,而不应该等着所有代码都开发完了,再去做提交。

产品经理不靠谱,怎么办:

比较早成型的面向不确定创造新事物的方法论是精益创业,它提出了“开发(build)- 测量(measure)- 认知(learn)”这样一个反馈循环和最小可行产品的概念。

许多软件团队都会陷入一个非常典型的误区,不管什么需求都想做出来看看,殊不知,把软件完整地做出来是最大的浪费。

当产品经理让我们做一个新的产品特性时,我们可以从精益创业这个实践上得到启发,向产品经理们问一些问题,帮助我们确定产品经理提出的需求确实是经过严格思考的。

比如,你要做这个产品特性,你要验证的东西是什么呢?他要验证的目标是否有数据可以度量呢?要解决的这个问题是不是当前最重要的事情,是否还有其他更重要的问题呢?

如果上面的问题都得到肯定的答复,那么验证这个目标是否有更简单的解决方案,是不是一定要通过开发一个产品特性来实现呢?

默认所有需求都不做,直到弄清楚为什么要做这件事。

工作心态:

想把工作做好,就需要不断扩大自己工作的上下文,多了解一下别人的工作逻辑是什么样的,认识软件开发的全生命周期,别把自己局限在一个“程序员”的角色上。

扩大自己的上下文,除了能对自己当前的工作效率提高有帮助,对自己的职业生涯也是有好处的。随着你看到的世界越来越宽广,得到的机会也就越来越多。

另外,想要到达什么位置,就先像坐在个位置的人那样做事、思考。

2、任务分解

3、沟通反馈

4、自动化

未完待续