并行任务——排期与效率
jiangren opened this issue · comments
title: 并行任务——排期与效率
date: 2017-08-21
前言
什么是并行任务?
同一时刻或是同一时间间隔内完成两种或两种以上性质相同或不同的工作,它们在时间上能互相重叠,就说明进行了并行任务。
为什么会有并行任务?
理想的开发状态是串行的,一个任务完结后再开始下一个任务。不过,这种情况对我们开发来说是少之又少,随着业务的发展,需求的增多,必须要求我们同时开发两个或两个以上的任务,相对提前任务的上线时间。
怎么能更好的完成并行任务?
- 开发排期
- 开发效率
- 反思
根据多年的开发经验,发现只要做好这3点,对于80%情况的并行任务开发,一定能按时完成而不用额外加班。而另外20%的任务,一定是在开发过程中遇到了不可抗拒的原因。
下面就通过这2点来详细讲解下,我有什么好的方法来完成这2个内容。
正文
开发排期
在评审完需求之后,产品一般会留一段时间给开发,进行开发排期。那要怎么完美地评估出排期,使得各方满意,而又不使自己在开发中需要经常加班。
在排期前,开发需要根据交互先评估出任务的工作人日,这点非常重要。准确的开发时间评估才能得出准确的排期,要充分了解功能,评估出每个功能点的工作量,对于不熟悉的部分也要尽可能的调研清楚。
开始时间 + (开发时间/每天预计投入百分比 + 联调时间 + 冒烟时间 + 缓冲时间) = 提测时间
每天预计投入百分比: 开发过程中,这个任务你每天投入的精力百分比(根据平常工作中经验,计算在那段时间内,其他任务占去的时间,已提测任务修复bug的时间,评审的时间,popo打断时间)。
任务重叠时间和非重叠时间的投入比不一样
开发效率
制定目标
每天早上,或者前一天晚上,梳理今天需要做的事、预计开发的任务,并进行优先级排序。写下来。每当完成一个就勾掉一个
功能集合
把交互稿上的功能进行分割,把相关功能放到1个集合里,进行统一开发
时间分段
番茄时间法,每次开发半个小时后,休息10分钟。与功能集合配合效果更佳,在1个时间段里或者多个时间段里只开发1个功能集合。
减少干扰
最理想的开发情况:就是在开发过程中零干扰,并和各方沟通良好,进行无缝开发,同时自己也根据之前制定的技术方案流畅地开发。
但实际开发过程中一定会被打断,而这里要做的就是通过一定的方法尽量的减少这些干扰。
外部干扰
- 新任务评审【只听和自己相关的内容】
- 任务bugfix【集中修复】
- popo中的问题回复【有些消息不用立马回复】
这些方法的目的是:通过沟通和时间约定,尽可能的减少处理其他事情的时间,或者集中处理。留出大段大段的时间来进行任务的开发。保证自己开发的流畅性。
内部干扰
- 心情
- 学会拒绝(有些事可以直接或委婉地拒绝,当你说出口之后,会发现没什么大不了,根本没有你之前想象的那么可怕)
自己的心情对于开发很重要,好心情和坏心情的开发效率绝对不一样。
之前看过一本书,是一个毕业典礼的演讲,分享给大家
作者:大卫·福斯特·华莱士。
生命中最简单又最困难的事:学会如何思考。有意识地选择自己想要的,而不随波逐流,找到最真实的自己,找到什么对自己是必要的。
每天上班-工作-下班-睡觉,日复一日周复一周月复一月年复一年,会不会感到疲倦和厌烦。答案肯定是:会。可这就是生活,是人生,每个人生都会经历这一个阶段。
而我们怎么从这重复的生活中选择自己想要的生活?思考自己的选择,给自己设立目标,让自己每天都有期待,有进步。
反思
这里为什么是反思而不是总结呢,因为总结是对结果的好坏进行分析;而反思是对产生结果的原因进行分析。
反思的实质是对假设进行校正。而一开始我们的说的开发排期,就是一个假设的过程。
通过反思,一遍下次能更好的进行开发排期。
写在结尾
找到自己的信仰,明确自己的短期/长期目标;
每天思考一会,拨开表象,寻找事情的最根本原因;
做更好的自己;