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

迭代开发.jpg

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

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

一个时间盒里的时间点有 需求,开发,SIT测试,UAT测试,回归测试, 发布

工作日为周一,周二,周三,周四,周五(万恶的工作日。。。)

上一个迭代发版后的一天为需求截止时间

SIT测试完成的时间为需求截止后的5天

UAT和回归测试一共消耗3天

封板时间为发布前一天

看看,我们设定了一个至少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)

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

python日期迭代_计算敏捷项目中迭代时间安排(Python3版)相关推荐

  1. 设计模式在项目中的应用案例_设计模式在项目中的应用(初学者版)

    文章首发链接: 设计模式在项目中的实际应用(应试版)​mp.weixin.qq.com 本文适用于设计模式初学者. 很多人学习了设计模式,但在项目开发中仍然不知道如何使用: 很多小伙伴在课堂上跟着老师 ...

  2. 敏捷开发中迭代是谁创建_使用基于迭代的敏捷创建里程碑

    敏捷开发中迭代是谁创建 我一直在指导几个有问题的团队:他们喜欢迭代工作. 而且,它们具有不在里程碑边界上的里程碑. 他们该怎么办? (我建议使用流程,您应该已经听到了他们的回应.嗯,也许不是.) 这就 ...

  3. 敏捷项目中的进度控制

     敏捷项目中的进度控制 消除浪费 时间是软件开发过程中最为稀缺并不可替代的资源.其浪费将直接影响项目的进度.而软件开发过程中存在各种各样的浪费.因此,消除浪费是加快进度的一种重要途径. 返工则是软 ...

  4. 业务分析师在敏捷项目中的作用

    业务分析师在敏捷项目中的作用 作者 Shane Hastie 译者 郑柯 发布于 2009年2月23日 下午12时35分 社区 Agile 主题 客户及需求 标签 补充实践 敏捷软件开发实践的文化中存 ...

  5. 业务分析师在敏捷项目中的作用(ZT)

    业务分析师在敏捷项目中的作用 作者 Shane Hastie 译者 郑柯 发布于 2009年2月23日 领域 过程 & 实践, 架构 & 设计 主题 客户及需求 , 敏捷 , 补充实践 ...

  6. vue项目中动态显示时间

    vue项目中动态显示时间 前言 一.js源代码 二.效果图 1.修改 2.html与style的修改 3.修改后效果图 总结 前言 在vue项目中动态显示时间,并且按日期.时间.星期一列排列. 我们想 ...

  7. python领域的名人_计算任意视频中各人物的出镜时间(附Python实现)

    作者:Pulkit Sharma 编译:Bing 编者按:本文作者Pulkit Sharma分享了一篇有趣的项目,以<猫和老鼠>为例,计算任意视频中汤姆猫和杰瑞鼠的出镜时长.这一模型也可以 ...

  8. python读取视频里面爱豆出现的时间_计算任意视频中各人物的出镜时间(附Python实现)...

    编译:Bing编者按:本文作者Pulkit Sharma分享了一篇有趣的项目,以<猫和老鼠>为例,计算任意视频中汤姆猫和杰瑞鼠的出镜时长.这一模型也可以用于其他电影,轻松统计各演员的上镜时 ...

  9. pythondjango项目集成_[Python]将Wagtail整合到Django2项目中

    Django是Python主流的Web框架之一,目前主要版本是Django 2.1,但是很多扩展都是基于Django 1.x.最近想做个简单的Web发布,选择了Wagtail,因为其他两个主流的cms ...

最新文章

  1. 用ASP.NET建立一个在线RSS新闻聚合器(3)
  2. 一文读懂Spring中的AOP机制
  3. Wix中注册c#开发的Activex控件
  4. HDU 5115 Dire Wolf 区间dp
  5. c语言用指针带出局部变量,关于C语言中返回局部变量和局部指针变量
  6. django如何调用php接口,使用django集成第三方api开发接口注意事项
  7. oracle中sp怎么写_校招简历中的实习和项目经历该怎么写?
  8. native html5 区别,H5与Native优劣对比
  9. Java:节点流和处理流的理解
  10. 279. 完全平方数(JavaScript)
  11. 2020年了,JavaScript依然是前端最受欢迎的语言吗?
  12. linux下无法安装VMware的解决方法
  13. python破解excel进入密码(密码字典)
  14. 计算机上机操作表格试题,2013职称计算机考试Excel表格操作试题(1)
  15. css制作序列帧动画
  16. linux tar文件如何压缩文件,在 Linux 上压缩文件的 5 种方法
  17. gite改提交的用户名称
  18. Html 设置整个页面的背景颜色
  19. mysql查询当前月份前两个月的数据_sql查询指定月份之前的几个月
  20. 路由器常见的第三方系统( OpenWRT,LEDE,PandoraBox,Gargoyle | ASUSWrt,Merlin,Padavan | DD-WRT | Tomato )

热门文章

  1. suse linux 10 ftp服务配置
  2. python中元祖 字典 列表的区别_Python中元祖,列表,字典的区别
  3. chkconfig: 2345 20 80
  4. Java 集合体系详解——List体系有序集合
  5. Oracle expdp/impdp导出导入命令及数据库备份
  6. android 定义固定数组,Android 图片数组定义和读取
  7. java socket建立长连接_Java Web项目中使用Socket通信多线程、长连接的方法
  8. ansys 内聚力_内聚力 软件工程
  9. 编程语言优缺点_R编程语言的优缺点
  10. Java Integer类numberOfLeadingZeros()方法的示例