不加班的项目从排期开始

什么是合理的开发排期?我个人以为合理的开发排期是一个项目不延期,少加班的时间管理。

在目前接触的各种项目开发中,开始时觉得时间很充足,但是后面做着做着,就变成苦逼开发加班加点赶工期,甚至项目延期。不仅仅是毕业两三年的同学,甚至有工作近十年的老司机,也会经常遇到这种情况。出现这种情况大家很自然的想到是因为项目过程中各种不确定的事情发生,导致原本预感足够的时间变得紧张起来。所以在项目进行的前期,作为开发需要给自己定一个合理的开发排期。

那么如何来做一个合理的开发排期?

一、梳理时间分布

作为主要工作,理想的情况下一天的时间都应该花费在需求研发上,但是各种事情的插入,甚至开发自己的心情变化都会影响需求研发的进度。根据我们团队的工作事项,总结下来研发同学日常的时间主要花费以下几个方面:

  1. 需求研发
  2. 技术支持(工单、线上问题)
  3. 团队事务(指导新人、分享、招聘)
  4. 会议沟通(评审、例会、技术咨询)
  5. 技术学习

可以说大多数情况下,一个项目的工期进度,受到研发同学在这些维度上的时间分配影响。假设需求研发按照八小时来分配,那么随着其他维度的时间消耗,基本上在工作上的时间要花费是十一个小时左右,而对于在技术和管理中并行的同学,恐怕研发外的事务花费时间更多。同时需要在各个维度上进行思维的切换,这部分切换的时间按照0.5小时来算,那么在工作上的时间基本要达到十二个小时。算上通勤、吃饭、午休,基本要消耗十六个小时。一鼓作气,再而衰,三而竭。久而久之对项目造成严重的风险,对团队管理亦带来沉重负担。

要做合理的开发排期,第一步是要摸清楚自己每天的时间分布,然后按照自己的有效研发时间来对项目需求估算工期。打个比方如果开发同学真正的有效率的开发时间是6个小时左右。那么在新的项目中,就以六个小时的开发时间来估算工作量的消耗时间,从而估算出项目的开发周期。

根据多年来经验,对于上述维度的时间分配建议比例是,6:1:1:1:1,这样一天的时间是十个小时,对于互联网工作的同学,这个时间还尚可接受。另外除了需求研发外,其他的事项并不是每天都有或者每天都同时发生,那么省下来的时间,可以放到需求研发或者学习中去。在遇到时间紧张的项目时,可以根据情况砍掉一些项目(比如技术学习),可以请求其他同事在这段时间内,对一些事务进行支持(比如技术支持、团队事务)

所以做合理排期至关重要一步: 以实际(每天)需求研发时间来估算开发周期

二、预留buffer

工作中经常遇到一些很自信的同学,做排期时不留buffer。可预知的事情是在有事情插入或者遇到技术难题时,这位同学会往往加班加点赶工期的情况下度过,甚至导致项目对外承诺的时间点不成如期完成。所以不管是什么项目,不管是什么段位的技术大牛,一旦在实际项目中工作,预留buffer都是非常重要要的事情。对于buffer的作用无外乎降低项目风险,buffer的预留和使用可以参考以下两点:

  1. 总体buffer原则是一周预留一天
  2. 项目版本迭代建议也预留部分buffer
  3. UI走查建议使用buffer时间

三、管理依赖

需求某个事情完成才能进行的工作就是我们的依赖项。一个项目难免在项目成员或者对外部团队产生依赖,依赖完成的时间和质量都会产生项目风险。对于依赖的管理也会影响我们的开发排期甚至是整体的项目进度。根据经验依赖管理主要有以下两方面

  1. 依赖项完成时间点
  2. 规划联调时间,一个依赖建议1-2天

对于第二条要特别重视,很多情况下在项目排期时容易忽略联调时间,想当然以为依赖项在这个时间点给出的是一个稳定的输出。导致后期发现问题反复沟通修复,延误项目进度。

四、测试与复查

项目进行到尾期需要进行测试工作,在这个过程中还有两部分工作:产品复查部分细节逻辑合理性,UI走查设计同学确认交付产品满足视觉要求,但是这两部分都可以放到测试阶段来做。

测试阶段工作,对于开发来说主要是部署环境和修复bug。同时这部分时间还受产品逻辑的复杂度影响,在这阶段如果没有足够的时间来进行测试覆盖和bug修复,对产品项目来说同样是不能交付的产品,项目风险极大。测试与复查时间的分配可以参考以下几点:

  1. 周版本大概1-2天
  2. 两周版本大概2-3天
  3. 月版本建议4-5天
  4. 产品复查使用测试时间
  5. UI复查使用测试或者buffer时间

另外为什么测试时间这么重要,因为有些依赖项即使跟他联调成功后,输出的依然不是稳定产品,因为他们根本没有QA介入,只是简单的自测!

同时遇到项目周期超过三个周的项目,最后是拆分迭代版本,每个迭代都有一个输出成果,同时对每个迭代的输出成果单独测试。对每个迭代的测试bug,只修复严重问题,其他问题可以在项目后续开发中修正或者在整体的bug修复时间进行修复。

五、上线

最后进行到项目交付前的临门一脚,涉及到项目上线,最重要的是梳理上线流程,包括依赖方的上线,梳理各个服务提供方的上线顺序,发送邮件通知大家。另外一个重要的事情是各个环节都要有相应的回滚策略,甚至是依赖链的回滚。对于大的变动,测试基本结束后,在团队内部发起捉虫体验,每发现一个bug可以给与一定的奖励。项目上线和线上回归时间尽量在一天内完成。关于上线的注意事项罗列如下:

  1. 梳理上线流程,建议在上线前两天讨论
  2. 各环节确认回滚流程
  3. 大版本建议团队内部发起捉虫
  4. 无依赖上线+回归建议1天
  5. 同一个项目最好在1天内完成,否则拆分成多个独立模块单独上线

六、最后

项目上线完记得请客吃饭!!!

原文地址:https://www.cnblogs.com/dojo-lzz/p/10261690.html

时间: 2024-10-11 00:07:56

不加班的项目从排期开始的相关文章

项目经理排期的几个tip

互联网敏捷开发的流程可以演绎出很多玩法,但最好都遵循以下几个tip: 1, 对项目经理最重要的一条是,通读所有需求文档,跟相关PM进行彻底沟通,把需求都搞熟搞透,防止漏排任务: 2, Stroy拆分要细,每个任务都是可单独验收的: 3, 一个Stroy的排期最长不要超过三天,不然无法及时验收,会存在风险:如果Stroy很大,则继续往下拆,拆成最多三天的多个Stroy: 4, 与其他team的排期要咬合,比如第一天是server和UI,第二天的客户端,第三天是QA,要遵循这个顺序并且仅仅咬住: 5

需求排期的深坑

为什么要有排期? 需求被计划以后, 需要产出合理的排期.其实个人也不喜欢排期这回事情,需求做就行了,要啥排期?要! 排期是对工作量的评估,是对资源的消耗的评估--相关人员.场地.时间都是资源.乃至个人项目,自娱自乐的需求,个人的时间不也是一种资源吗? 需求设计需要考虑排期.需求阶段就应该开始考虑排期,这样能有完整的思考脉络,需求设计方在设计的时候同事考虑排期,这样也没有人员切换和交流导致的损耗. 排期是项目管理的重要一部分.项目管理的时候,往往排期和延期比对,是一个项目施工进度的很好的参照物,也

app 耗电优化之三 使用JobSchedule对任务进行合理排期

JobSchedule 是Android5.0之后添加进去的,之前的版本没有.JobSchedule 原理是一种将任务安排在恰当的实际进行操作一种方案机制.具体提供了那些可选的时机,如下:1 在可用网络下执行.在7.0 之前,应用可以通过监听网络变化来执行任务,当然了前提是应用必须存活.到7.0之后这类API已经失效,但是JobSchedule机制提供了网络变化的监听.进一步可以在网络变化的情况下执行某些操作.例如在wifi环境下执行下载任务等.2 设备在充电或者空闲时执行一些任务.3 设定执行

简单好用的日历排期控件

1 <div class="mCal"> 2 <div class="dj-calendar-panel green" style="position: relative;"> 3 <div class="calendar-header"> 4 <div class="calendar-header-inner"> 5 <ul> 6 <li

Dev Express SchedulerControl 实现自定义排期

实现效果图: 整理下需要实现的目标: 1.三种颜色:当前时间之前 灰色: 当天 淡蓝色:当前时间之后,淡绿色,日期格式重写 2.appointment左对齐 3.右键appointment 弹出自定义菜单 4.鼠标移到appointment上,自定义Tooltip 5.禁用双击appointment弹出默认appointment界面,且appointment无法编辑,拖拽 代码 //1.禁用双击appointment弹出默认appointment界面,且appointment无法编辑,拖拽 th

演出排期JavaScript

<script language="JavaScript" type="text/javascript"> var diarydays=""; diarydays=diarydays+"<2008-12-13><2008-12-14>"; diarydays=diarydays+"<2008-11-15>"; diarydays=diarydays+"

直播排期详情

{ "result": { "status": 1, "rows": 1, "data": { "courseId": "30726", "courseName": "初一新生语文年卡阅读写作班(通用版)", "resale": "920", "description": "12

排期模板

大项目设计和管理复盘 1. 前端粒度 一级: 页面. 二级: 模块. 三级: 依赖方. 2. 后台粒度 一级: 流量入口(前台接口,后台接口,mq) 二级: 模块拆分 三级: 依赖方 (外部依赖,mq,mysql) 一级 二级 三级 功能/需求文档 产品 负责人 后端 RD 前端 RD QA 进度 FE开发 内部测试 上线 线上验证 依赖方 上线验收 遗留问题                                                                

PHP的排期软件开发

原文地址:https://www.cnblogs.com/luosong3/p/9220463.html