当前位置: 首页 > 编程日记 > 正文

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

相关文章:

linux进程池动态维护,可直接商用的跨平台c,c++动态线程池,任务池stpool库

stpool是一个轻便高效的动态跨平台的线程池/任务池库.常规线程池的缺点:1. 总是启动时候就开启固定数目的线程,而不管系统的繁忙状态(这是很浪费系统资源的).2. 当任务繁重的时候,即使线程池被设计成可继续添加更多线程来服务,由于实时服务状…

hdu 1286( 欧拉函数 )

题目链接&#xff1a;http://acm.hdu.edu.cn/showproblem.php?pid1286 数学题真的是有点吃不消了。。。 View Code 1 #include<iostream>2 #include<cmath>3 using namespace std;4 //可以快速求出欧拉函数的值 ( P为N的质因子 )5 //若(N%P0 && (N/P)%P0…

CF 1093 E. Intersection of Permutations

E. Intersection of Permutations 链接 题意&#xff1a; 给定两个序列&#xff0c;询问第一个排列的[l1,r1]和第二个排列[l2,r2]中有多少个共同的数&#xff0c;支持在第二个排列中交换两个数。 分析&#xff1a; 首先求出一个数组&#xff0c;c[i]&#xff0c;第二个排列的这…

s-seq 生成序列化数字

前言 seq命令用于产生从某个数到另外一个数之间的所有整数。 命令格式 seq [OPTION]... LAST seq [OPTION]... FIRST LAST seq [OPTION]... FIRST INCREMENT LAST 支持将指定范围的数字打印出来&#xff0c;按照指定的递增规律 -f, --format格式 使用printf 样式的浮点格式…

linux c++ 目录操作,C++文件及文件夹操作整理(代码示例)

一 文件1.1 使用C标准库中的IO库(fstream)读写文件#include #include using namespace std;int main(){char szData[200] "123456 test";fstream fFile;fFile.open("test.txt", ios::app | ios::out | ios::in);/****************将数据写入文件-begin***…

cocos2d-x 音效中断问题

做跑酷重吃金币播音效时&#xff0c;播放其它音效会使得音效所有中断&#xff0c;最后发现时音效上限的问题&#xff0c;2.2.3默认的似乎是5个音效&#xff0c;改动成50后问题解决。 在java中的org.cocos2dx.lib包下有一个Cocos2dxSound.java文件&#xff0c;改动里面 private …

AStyle - SourceInsight

SourceInsight : Options : Custom Commands Add 在弹出对话框写入 C/C Formatter "C:\AStyle\AStyle.exe" --styleansi -s2 --convert-tabs %f SourceInsight : Options : Key Assignments

c# blockingcollections

1 class Program2 {3 static BlockingCollection<int> cols new BlockingCollection<int>(2); //设置阻塞队列最大的容量&#xff1b;4 public static void Main(string[] args)5 {6 7 8 var t1…

递归/回溯:subsets求子集

前言 回溯法又称为试探法&#xff0c;但当探索到某一步时&#xff0c;发现原先选择达不到 目标&#xff0c;就退回一步重新选择&#xff0c;这种走不通就退回再走的技术为回溯法。 已知一组数(其中无重复元素)&#xff0c;求这组数可以组成的所有子集。 结果中不可有无重复的子…

C++ stl vector介绍

转自&#xff1a; STL vector用法介绍 介绍 这篇文章的目的是为了介绍std::vector&#xff0c;如何恰当地使用它们的成员函数等操作。本文中还讨论了条件函数和函数指针在迭代算法中使用&#xff0c;如在remove_if()和for_each()中的使用。通过阅读这篇文章读者应该能够有效地使…

Linux服务器部署ssl证书教程,linux服务器在wdcp面板安装ssl证书教程

不少站长如今越来越在意站内数据传输的安全性&#xff0c;想着把自己建设的网站加密传输&#xff0c;许多站长都需要安装ssl证书&#xff0c;且很多站长都在找寻centos系统服务器linux服务器或者是wdcp面板怎么安装ssl证书&#xff0c;网上找了下没有完整步骤教程&#xff0c;所…

设备节点注册和操作方法连接

今天把驱动程序乱七八糟的看了一通&#xff0c;简单总结一下。 一个完整的驱动&#xff0c;需要提供如下的东西&#xff0c; 第一&#xff0c;用户空间/dev下面的设备节点。当然&#xff0c;如果该设备仅仅是内核的使用&#xff0c;例如I2C&#xff0c;则不需要在/dev下面建立…

maven(一 基本操作 命令 标签)

原来一直没有使用maven 小公司&#xff0c;只是听说过这个东西&#xff0c;我没事就喜欢 去学习一些新东西。maven学了几次&#xff0c;但是 没有用上 所以 最后还是忘记了&#xff0c;或者说不知道怎么使用maven&#xff0c;一年半以前公司 改革 &#xff0c;招了一个技术大牛…

递归/回溯:Subsets II求子集(有重复元素)

上一篇描述了针对数组中没有重复元素进行子集的求取过程递归/回溯&#xff1a;subsets求子集 但是当出现如下数组时&#xff1a; 例如: nums[] [2, 1, 2, 2] 结果为: [[], [1], [1,2], [1,2,2], [1,2,2,2], [2], [2,2], [2,2,2]] 注意: [2,1,2]与[1,2,2]是重复的集合,则不满足…

[WP]使用ApacheCordova开发HTML5-WindowsPhone应用程序

下载代码示例 这篇文章介绍 Apache 科尔多瓦&#xff0c;创建使用 HTML5 和 JavaScript&#xff0c;跨平台移动应用程序的框架&#xff0c;并显示了如何使用它为 Windows Phone 开发应用程序。 Windows Phone 和其本机开发平台允许您轻松地创建美丽地铁样式的应用程序。 最近诺…

linux 不能运行程序代码,linux-无法在Ubuntu上运行我自己的OpenGL 3程序

我正在尝试OpenGL 2.x和3.x教程.程序进行编译和链接,然后在看似无害的行上进行段错误处理,例如glGenBuffers (1, &m_buffer);我的main()以glewInit和glutInit开头. OpenGL 1程序可以编译并正常运行,这似乎是由glew包装的新功能.一个教程说,在尝试任何其他操作之前,我应该先…

Cocos2d-x Eclipse下程序运行产生错误Effect initCheck() returned -1

错误大致显示如下信息&#xff1a;04-14 07:39:18.325: E/AudioEffect(20584): set(): AudioFlinger could not create effect, status: -104-14 07:39:18.325: E/libOpenSLES(20584): Effect initCheck() returned -104-14 07:39:18.325: E/libOpenSLES(20584): Environmental…

H2:开源内存数据库引擎

本资源由 伯乐在线 - 刘立华 整理H2是一个开源的内存数据库。Java编写、快速、小巧&#xff08;1.5MB jar包&#xff09;还提供了Web控制台管理数据库内容。 主要功能 非常快速的数据库引擎。开源。Java编写。支持标准SQL、JDBC API。支持嵌入式模式、服务器模式和集群。强大的…

递归/回溯:Combination Sum II数组之和

问题如下&#xff1a; 已知一组数(其中有重复元素)&#xff0c;求这组数可以组成的所有子集中&#xff0c;子 集中的各个元素和为整数target的子集&#xff0c;结果中无重复的子集。 例如: nums[] [10, 1, 2, 7, 6, 1, 5]&#xff0c; target 8 结果为: [[1, 7], [1, 2, 5], …

如何在SharePoint2010中添加Deep Zoom Image

如何在SharePoint2010中添加Deep Zoom Image 应用范围 SharePoint 2010 Foundation&#xff1b;SharePoint 2010 Standard&#xff1b;SharePoint 2010 Enterprise所需材料 1. SeaDragon Ajax Viewer Web部件&#xff08;点击此处下载&#xff09;2. Deep Zoom Image Composer&…

linux 读取磁盘扇区,linux 下检查硬盘坏道/扇区

文章摘自&#xff1a;Linux检测硬盘坏道Linux检测硬盘坏道badblocks功能说明&#xff1a;检查磁盘装置中损坏的区块。语法&#xff1a;badblocks [-svw][-b ][-o ][磁盘装置][磁盘区块数][启始区块]补充说明&#xff1a;执行指令时须指定所要检查的磁盘装置&#xff0c;及此装置…

Pjax是什么以及为什么推荐大家用

什么是pjax? 现在很多网站( facebook, twitter) 都支持这样的一种浏览方式&#xff0c; 当你点击一个站内的链接的时候&#xff0c; 不是做页面跳转&#xff0c; 而是只是站内页面刷新。 这样的用户体验&#xff0c; 比起整个页面都闪一下来说&#xff0c; 好很多。 其中有一…

Scrapy框架CrawlSpider类爬虫实例

CrawlSpider类爬虫中&#xff1a; rules用于定义提取URl地址规则&#xff0c;元祖数据有顺序 #LinkExtractor 连接提取器&#xff0c;提取url地址 #callback 提取出来的url地址的response会交给callback处理 #follow 当前url地址的响应是否重新经过rules进行提取url地址 cf.py具…

递归/回溯:Generate Parentheses生成合法括号

已知n组括号&#xff0c;开发一个程序&#xff0c;生成这n组括号所有的合法的组合可能。 例如:n 3 结果为: ["((()))", “(()())”, “(())()”, “()(())”, “()()()”] 首先思考如何生成所有的括号组合的可能性&#xff0c;即例如2组括号&#xff0c;总共4个符号…

利用“哨兵”“实现双链表

利用“哨兵”“实现双链表 下面的代码用一个”哨兵“实现双链表&#xff0c;感觉很简洁&#xff0c;中间也有点绕&#xff0c;暂时实现&#xff0c;供学习之用 static Node list_handle {&list_handle,&list_handle, };bool addNode(Node* node) {if (node NULL){re…

suse linux显示乱码,open suse11.4中文乱码问题

winland0704 于 2011-04-07 00:56:10发表:不是乱码&#xff0c;而是字符编码标准不一样。windows的文本使用GBK&#xff0c;国标码。Linux使用Unicode编码。解决参看&#xff1a;hi.baidu.com/winland0704/blog/item/c58008512cc843c9b645aef1.html四、其他的一些问题3、文本编…

软件破解系列之OD中断方法

OD中断方法浅探 Ollydbg是一个新的32位的汇编层调试软件。适应于windows98、me、2000、xp和2003操作系统。由于他具有图形窗口界面&#xff0c;所以操作方便、直观&#xff0c;是cracker的好工具。 由于Ollydbg没有了TRW2000的万能断点&#xff0c;所以许多的新手感觉到用Ollyd…

MongoDB系列:二、MongoDB常用操作练习

最近在自学MongoDB&#xff0c;在此记录一下&#xff0c;当做学习笔记了&#xff08;不断更新中&#xff09;&#xff01;&#xff01; 一、背景 MongoDB 是一个基于分布式文件存储的数据库。由 C 语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。它是一个介于关…

递归/回溯:八皇后问题N-Queens

N皇后问题是计算机科学中最为经典的问题之一&#xff0c;该问题可追溯到1848年&#xff0c;由国 际西洋棋棋手马克斯贝瑟尔于提出了8皇后问题。 将N个皇后放摆放在N*N的棋盘中&#xff0c;互相不可攻击&#xff0c;有多少种摆放方式&#xff0c;每种摆 放方式具体是怎样的? 8…

KS103超声波测距模块

max232&#xff1a;电平转换芯片&#xff0c;将电脑的RS-232标准串口&#xff08;高12V&#xff0c;低-12V&#xff09;转换为&#xff08;高5V&#xff0c;低0V&#xff09;。 电脑串口&#xff08;RS -232&#xff09; > 单片机串口&#xff08;TTL串口&#xff09; SIPEX…