美文网首页
计算敏捷项目中迭代时间安排(Python3版)

计算敏捷项目中迭代时间安排(Python3版)

作者: CC先生之简书 | 来源:发表于2018-07-31 21:27 被阅读166次

节奏是敏捷开发的核心,保持合理固定的节奏,能有效的促使各个环节协调统一,高效运行。针对产品的不同周期,方案有所不同。


迭代开发.jpg

通常,我们需要在一个时间盒中去分配一个项目中不同阶段的时间,在项目管理中,我们经常要以人/天来进行计算。

现在让我们来假定一个规则:

  1. 一个时间盒里的时间点有 需求,开发,SIT测试,UAT测试,回归测试, 发布
  2. 工作日为周一,周二,周三,周四,周五(万恶的工作日。。。)
  3. 上一个迭代发版后的一天为需求截止时间
  4. SIT测试完成的时间为需求截止后的5天
  5. UAT和回归测试一共消耗3天
  6. 封板时间为发布前一天

看看,我们设定了一个至少6个条件的规则才能算出一个迭代周期。这个时间你是不是已经开始翻着日历开始搬指头了。


日历.jpg

如果,用Python来实现呢?

翻了翻PyPi中的第三方包,发现一个好玩的:business_calendar

其提供了非常简单易用的计算工作日的接口,并允许用户指定特定日期为假期,从而将其从当前的工作日中剔除
项目主页: https://pypi.python.org/pypi/business_calendar/

在该类库中,有workday和businessday的概念:

  • addbusydays(date, offset) 其将考虑holidays公休假的因素

  • addworkdays(date, offset) 忽略公休假的因素

  • busdaycount(date1, date2) 计算两个时间点直接的工作日

  • range(date1, date2) 返回工作日列表, 考虑假期因素

  • isworkday(date) 是否是工作日,忽略公休假的因素

  • isbusday(date) 是否工作日,考虑公休假

  • isHoliday(date) 是否是假日

from business_calendar import Calendar, MO, TU, WE, TH, FR
import datetime

detester = input("请输入上一个版本结束时间:\n")
thisyear = datetime.datetime.strptime(detester, '%Y-%m-%d').year
thismonth= datetime.datetime.strptime(detester, '%Y-%m-%d').month
thisday= datetime.datetime.strptime(detester, '%Y-%m-%d').day

begindatetime = datetime.datetime(thisyear,thismonth,thisday)
print(begindatetime)

# normal calendar, have holidays
#cal = Calendar(workdays=[MO,TU,WE,TH,FR], holidays=['2018-06-18'])
cal = Calendar(workdays=[MO,TU,WE,TH,FR])

date1 = cal.addbusdays(begindatetime, 1)
print("版本中需求截止时间 %s" % date1)

date2 = cal.addbusdays(date1, 5)
print("版本中SIT测试完成时间 %s" % date2)

date3 = cal.addbusdays(date2, 3)
print("版本中UAT+回归测试完成时间 %s" % date3)

date4 = cal.addbusdays(date3, -1)
print("版本中封板时间 %s" % date4)

下次,再算版本时间的时候,希望小伙伴们能用的上啦~~~

相关文章

  • 计算敏捷项目中迭代时间安排(Python3版)

    节奏是敏捷开发的核心,保持合理固定的节奏,能有效的促使各个环节协调统一,高效运行。针对产品的不同周期,方案有所不同...

  • PMI-ACP考试串讲 - 知识域5:适应性计划

    敏捷时间轴 以两周迭代为例,始于迭代计划会,终于迭代回顾会 敏捷变更 变更是适应的手段,敏捷通过跨迭代进行变更,迭...

  • App月度迭代计划

    一:迭代时间安排: 四周为一个迭代,时间安排如下: 二.迭代流程图: 三.迭代执行规范: 1、技术审: 技术审在可...

  • 敏捷开发模式中的四种会议

    Sprint Planning敏捷迭代计划会议 敏捷迭代开始 职责 1.PO讲解需求 2.开发Team估算工时。 ...

  • 《敏捷组织转型手册》

    【敏捷】项目平衡轮与度量指标业务敏捷: 敏捷组织(赋能,小团队、可视化、快迭代) 商业敏捷/业务敏捷/销售敏捷 增...

  • 20161210-什么是敏捷

    记得之前学MBT&IT流程,提到敏捷、迭代概念。以为敏捷就是‘快’,快速上线,快速实现功能,迭代就是把大版本...

  • 银行核心系统的敏捷之路

    一、背景 为拥抱长沙银行的敏捷转型,积极参与敏捷迭代开发,建立银行核心系统特有的敏捷迭代开发模式。核心系统是银行的...

  • 迭代中Retrospective的宣誓词是什么?

    在ThoughtWorks敏捷交付项目中,每个Iteration完成后通常会有一个迭代回顾会议,我们平时会简称为R...

  • python 教程笔记day8

    Python3 迭代器与生成器

  • ACP-创建敏捷环境

    前情回顾 上一节我们讲到生命周期,包括预测型、迭代型、增量型、敏捷型:1.基于迭代的敏捷,2.基于增量的敏捷。 同...

网友评论

      本文标题:计算敏捷项目中迭代时间安排(Python3版)

      本文链接:https://www.haomeiwen.com/subject/qiozmftx.html