UML for Java Programmers之dx实战
dx是一套简单的开发规则。它说白了就是迭代开发,在短周期内迭代处理”所有事情“,这里所指的”所有事情“包括需求、分析、设计、实现、测试和文档等等。
它的大概流程是这样:
1. 初始探索
跟客户坐下来一起讨论系统到底是做什么的。在这个过程中,识别出系统的use-case也就是我们所说的user-story。一般花两到三天的时间做这件事。
2. 功能特征评估
对于每个story,我们给个时间评估,这只是一个纯数字的评估,我们不关心数字的具体单位是什么,对每个story之间的比例的评估才是我们真正关心的。就是说一个8个点数的story是一个4个点数的story的两倍。
在评估这个过程中,就是用一个很完美的时间里作一件事情。比如,头一天晚上准时上床睡觉,第二天起来后吃了像样的早餐,然后上班路上也不塞车,在工作过程中没有电话骚扰,整天没有会议,电脑也不死机,网络也很快,你的搭档跟你合作的时候也出奇的机敏,考虑又周全,而且也很有耐心,在这样的情况 下工作一天的我们就称为进行了一天”完美编程“。然后在这样的情况下去评估每一个story需要多少天可以完成。
3. 探究
根据上面的探索,我们就可以验证我们的评估。比如完成一个7个点的story需要5人天的话,就意味着5天内快速的粗略地完成7个点。也许保质保量的完成这样的工作需要3倍的时间。因此调整一下我们的评估为15天完成7个点,大概1天完成半个点,这个数字就是我们的初始速度。
4. 计划
有了story,评估,速度我们都有了,可以开始迭代了。计划要做的其实就是用我们当前的速度作为标准算出每次迭代里做的story。
4.1 发布计划
根据我们团队的人数,发布周期,确定发布周期内的迭代次数(一般是6次或者说三个月),然后根据我们每次迭代能完成的点数,然后让客户根据他的优先级挑选一批差不多数量的story作为我们的发布计划。
4.2 迭代计划
根据每次迭代能完成的工作量,挑选出本次迭代需要完成的story。然后把这里story再细化任务,这任务比story要小很多,它以4-10小时为单位的。在分配任务 时,每个人在自己的任务上签下名字。在签名字时候,每个人心里都有一个预算,每签一个任务就在自己的预算里减去相应的数字,直到自己的预算花光为止。
5. 中点
在迭代周期内开发时间过了一半的时候,看看完成了几个stoy,如果比原计划快了,就让客户多增加几个story,然后慢了,就让客户把其中的一些story移到下一个周期。
6. 速度反馈
在一个迭代结束时候,我们进行速度反馈。比如本次迭代完成了23点story点,那么这个就作为下一次迭代可以完成的story数的依据。
一次迭代包括了什么?
结对开发
两个开发人员用同一台机器一起工作,一起处理他们负责的任务。两个程序员都完全忙玩写代码,他们的眼睛都关注着屏幕。
可验收测试
每次dx迭代开始的时候,客户和QA把user-story充实到use-case里面,并为之编写可验收测试 案例。然后把这里测试案例交给开发人员,这些测试是真正的需求文档。
单元测试
为写的代码编写单元测试。
重构
因为有单元测试在撑腰,所以可以放心地去重构,测试的结果会告诉你重构后的正确性。绝不能把烂代码留到第二天。
开发式办公室
所有工作都在一个房间进行,即使客户也不例外。
持续集成
不管有没有其他人check out过,你都可以进行check out。然后只要手快就可以check in。而第二个check in 的人就要负责合并代码。这里有一个原则,负责合并代码的人必须确保测试是通过的。
特别提醒,这里没有提到UML,也没有提到JAVA。UML不是一个方法,而一种图示,JAVA出不是一个方法,而一种工具。
最近,dx其实就是xp。
转载于:https://www.cnblogs.com/vinson1816/p/3754300.html
UML for Java Programmers之dx实战相关推荐
- Scala程序设计:Java虚拟机多核编程实战(国内第一本Scala图书)
Scala程序设计:Java虚拟机多核编程实战(国内第一本Scala图书) 基本信息 作者: (美)Venkat Subramaniam 译者: 郑晔 李剑 丛书名: 图灵程序设计丛书 出版社:人民 ...
- java ee核心框架实战 pdf_Java EE核心框架实战 高洪岩 中文PDF
资源名称:Java EE核心框架实战 高洪岩 中文PDF 第1章 MyBatis 3操作数据库 第2章 MyBatis 3常用技能 第3章 Struts 2必备开发技能 第4章 Struts 2文件的 ...
- 【直播回顾】云栖社区特邀专家徐雷Java Spring Boot开发实战系列课程(第19讲):Java Spring Cloud微服务架构模式与开发实战...
主讲人:徐雷(云栖社区特邀Java专家) 徐雷,花名:徐雷frank:资深架构师,MongoDB中文社区联席主席,吉林大学计算机学士,上海交通大学硕士.从事了 10年+开发工作,专注于分布式架构,Ja ...
- Java 7并发编程实战手册
2019独角兽企业重金招聘Python工程师标准>>> Java 7并发编程实战手册 本书是 Java 7 并发编程的实战指南,介绍了Java 7 并发API 中大部分重要而有用的机 ...
- 《Java EE核心框架实战》—— 2.3 resultMap 标签
本节书摘来异步社区<Java EE核心框架实战>一书中的第2章,第2.3节,作者: 高洪岩,更多章节内容可以访问云栖社区"异步社区"公众号查看. 2.3 < re ...
- Java RESTful Web Service实战
编者按: InfoQ开设栏目"品味书香",精选技术书籍的精彩章节,以及分享看完书留下的思考和收获,欢迎大家关注.本文节选自韩陆著<Java RESTful Web Servi ...
- 《Java和Android开发实战详解》——2.5节良好的Java程序代码编写风格
本节书摘来自异步社区<Java和Android开发实战详解>一书中的第2章,第2.5节良好的Java程序代码编写风格,作者 陈会安,更多章节内容可以访问云栖社区"异步社区&quo ...
- Java 高并发_JAVA并发编程与高并发解决方案 JAVA高并发项目实战课程 没有项目经验的朋友不要错过!...
JAVA并发编程与高并发解决方案 JAVA高并发项目实战课程 没有项目经验的朋友不要错过! 1.JPG (37.82 KB, 下载次数: 0) 2018-12-3 09:40 上传 2.JPG (28 ...
- A Scala Tutorial for Java Programmers
A Scala Tutorial for Java Programmers English Español 한국어 Deutsch By Michel Schinz and Philipp Halle ...
最新文章
- VS2010创建ATL类时需要手动填写ProgID
- redis安装(windows)
- boost::container模块实现范围分配器适配器
- EncodeUtil
- 为什么选择angular?-学习笔记
- python小甲鱼爬虫妹子_【Python学习日记】B站小甲鱼:爬虫
- python flask项目过程_Python 开发过程遇到的问题
- Ant Design 3.15.0 发布,企业级 UI 设计语言和 React 实现
- MapGuide应用开发系列(八)----MapGuide Studio准备地图之地图(Map)
- delphi的 PosEx 函数功能介绍
- 基于深度学习的搜索、推荐、广告系统最全最新论文分享
- opencv+Dlib人脸融合
- 计算机组装维护与故障排除教材,电脑组装、维护与故障排除(第2版)
- python对串口助手传入的16进制字符数据进行绘图
- 常见的几种生命周期模型及其适用范围
- 港股交易系统搭建介绍 — 港股LV2行情
- Android双卡切换监测移动数据状态
- 简单的车票管理系统(c语言)
- 911报警电话数据分析
- 电脑UEFI启动是什么?
热门文章
- 2022-2028年中国EBA树脂(乙烯丙烯酸丁酯)产业竞争现状及发展前景规划报告
- 常用的高性能 KV 存储 Redis、Memcached、etcd、Zookeeper 区别
- TFRecord tf.train.Feature
- LeetCode简单题之交替位二进制数
- LeetCode简单题之将每个元素替换为右侧最大元素
- TVM/Relay 的 PartitionGraph()(mod) 函数讨论整理
- MindSpore网络模型类
- Lidar激光雷达与Radar雷达
- 科技公司重新关注2级以上驾驶员辅助
- [JS] 关于parseInt的一个小知识:[‘1‘, ‘2‘, ‘3‘].map(parseInt)