你的工作可以用数字衡量吗?---数字化思维
人工智能时代必谈三件事:算法、算力和数据。现在企业不缺算法(行业共有)、算力(云计算),但数据依然是必争的稀缺资源;体现了数据的价值。
数字是沟通的一把利器,用数字说话,可以避免空谈",大幅度提高沟通的效率。无论是在讨论产品特性,还是功能开发,“信口雌黄”是容易的,这也是工作中很多“空对空”对话的根源所在。但使用数字衡量工作能更顺利的团队和非IT人员沟通,并且也可以及时监控自己的工作状态。使用数字量化,可以先从沟通开始,少用甚至不用“可能”、“应该”、“大概”等字眼,在监控系统状态的时候,也都尽量将指标量化而不是凭感觉。优点:可以减少内部甚至外部沟通成本,更好的规划自己的工作,也能快速确定系统出现问题。
结合着“以终为始”的思考,如果我们可以在一开始,就设计好测量工作有效性的指标,那么就可以更有目的性地去工作了。
今日一句:问一下自己,我的工作是不是可以用数字衡量。
迭代0:启动开发之前,你应该准备什么?
我们不缺技术,我们缺的是规范的流程和规范的工作方法。如果说技术是硬技能的话,那么规范的流程和方法就是软技能。工作中碰到的问题有很多都是因为软技能缺失引起的。
在一开始就把项目准备好的实践:迭代0。迭代0就是项目的根基,地基打好了,项目做起来才更顺利。
什么叫迭代0?
迭代0:项目开始前的准备清单,为接下来的开发奠定基础。
敏捷开发思想中,迭代指的是一个完整的开发周期。一般来说,第一个迭代周期就是迭代1,然后是迭代2、迭代3,依次排列。从名字上你就不难发现,所谓迭代0,就是在迭代1之前的一个迭代,所以,我们可以把它理解成开发的准备阶段。
既然迭代0是项目的准备阶段,我们就可以把需要提前准备好的各项内容,在这个阶段准备好。
迭代0的基本清单
很多项目开发都没有事先约定好验收标准,也没有对开发过程做监控 ,对项目质量的把控全靠 感觉 。迭代0清单类似于约定优于配置的原则,决定了项目开发基调,还能通过监控及时发现问题。使用迭代0清单准备项目开发可以是使开发有条不紊的进行。
今日一句:设计你的迭代0清单,给自己的项目做体检。
任务分解
面对复杂问题的基本解决方案:分而治之,即任务分解!且分解的任务要可执行。每个人对可执行的理解不同,只要你清楚地知道接下来的工作该怎么做,任务分解就可以告一段落。
真正分解是如何达成任务目标,分解所需的步骤、资源、风险。
今日一句:动手做一个工作之前,请先对它进行任务分解
大师级程序员的工作秘笈
大师秘籍:将日常需求分解成几个小任务,记在一个清单上,然后,才是动手写测试、写代码、重构这样一个小循环。等一个循环完成了,会划掉已经做完的任务,开始下一个。
任务分解的关键在于:小。小到什么程度呢?有时甚至可以小到你可能认为这件事不值得成为一件独立的事。
任务分解是做好 TDD 的关键点。只有把任务分解到可以测试的地步,才能够有针对性地写测试。
今日一句:将任务拆小,越小越好
如何分解任务
首先要说明的是,任务分解没有一个绝对的标准答案,分解的结果根据个人技术能力的不同,差异也会很大。
检验每个任务项是否拆分到位,就是看你是否知道它应该怎么做了。 不过,即便你技术能力已经很强了,我依然建议你把任务分解到很细,观其大略人人行,细致入微见本事。
也许你会问我,我在写代码的时候,也会这么一项一项地把所有任务都写下来吗?实话说,我不会。因为任务分解我在之前已经训练过无数次,已经习惯怎么一步一步地把事情做完。换句话说,任务清单虽然我没写下来,但已经在我脑子里了。不过,我会把想到的,但容易忽略的细节写下来,因为任务清单的主要作用是备忘录。一般情况下,主流程我们不会遗漏,但各种细节常常会遗漏,所以,想到了还是要记下来。
另外,对比我们在分解过程中的顺序,你会看到这个完整任务清单的顺序是调整过的,你可以按照这个列表中的内容一项一项地做,调整最基本的标准是,按照这些任务的依赖关系以及前面提到的“完整地实现一个需求”的原则。
最后,我要特别强调的一点,所有分解出来的任务,都是独立的。也就是说, 每做完一个任务,代码都是可以提交的。 只有这样,我们才可能做到真正意义上的小步提交。
今日一句: 按照完整实现一个需求的顺序去安排分解出来的任务。
文章来源:极客时间《程序员10x工作法》