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

【推荐】极限编程的十二大原则——小版本

小版本:用最少的代码工作量带来最大的业务价值。

这个原则是意思是为了高度迭代,与客户展现开发的进展,小版本发布是一个可交流的好办法,客户可以针对性提出反馈。但小版本把模块缩得很小,会影响软件的整体思路连贯,所以小版本也需要总体合理的规划。

这么一说,感觉这一原则对我们公司的产品是没有什么适用性的,我们不可能让运营商承受这样的高度迭代过程。然而,正如我一开始就提到的,我们学习敏捷开发、极限编程的目的不是为了解决所有的问题,而是开拓思路,防止我们的思维僵化。据我的观察,我们的测试部开发的自动化测试、调试软件就非常适合利用这个原则。客户是谁呢?就是负责生产调试的内部客户。

自动化测试、调试软件有个很大的特点就是:变化快,而对于这个特点,正是敏捷开发理论所特长解决的。目前对于这类软件的管理的强度远远要弱于那些产品软件,一方面是因为这些软件因为在使用过程中需求变化太快,如果按照公司的规范输出各类文档,并且按照常规流程管理的话,无法做出及时地响应,会影响工作。另外一方面,就是开发人员的主观因素,常常这类软件都是开发人员在生产线与负责生产调试的人员即时沟通即时修改的,这样的习惯也就导致了习惯成自然,我们的“客户”养成了习惯,开发人员也被迫养成了习惯:开始的时候开发人员往往想反正软件改起来也要比硬件来的容易,那就改吧,一来二往,突然有一天发现自己突然陷入了一个泥潭。

作为技术部的配置管理,我就多次发现这些自动化的测试、调试软件版本混乱的情况,而且从使用这些软件的人员反馈回来的声音中,我们也可以听到对于软件质量方面的抱怨。这就是我说到的“泥潭”:作为开发者,自己每天疲于修改,却无法得到“客户”的认同,这是一件多么让人郁闷的事情啊!

那么我们是不是可以考虑利用敏捷开发的方法来解决这些问题呢?或者,通过一种思维上的启发来“创造”一个适合我们实际情况的方法来解决这些问题呢?我想到了一些改善的方法:

n         增加小版本信息,在软件运行中就能够看到大、小版本信息。

n         增加在线更新功能,这样无论身在公司何处,只要能够连入内部网络,就可以及时、准确地更新程序。

n         增加版本检验功能,根据需要检测版本是否需要更新,以此来保证当需要时,保证所有的客户端都运行在一个基准之上。

n         增加错误反馈、日志功能,保证当错误发生时能够通过邮件将必要的信息反馈给开发者。这样可以防止在问题反馈时问题无法复现或者反馈人说不清楚的情况。

这些方法其实都是我们在很多软件中能够看到的功能,并不是什么新奇的技术,实现起来也很容易,而且我们可以将这些功能作为一个公用模块来保证不同的自动化测试、调试软件不用重复开发。这些功能的实现将会让你体会到更多的方便。

有了这些基础,我们就可以在软件开发的过程中将高迭代过程变得更容易控制、实施起来的效率也会更高,效率提高了,时间节省了,才能有条件去思考、去改进。就如同我们的胳膊自由了,呼吸顺畅了,才有可能将自己从泥潭中解救出来一样。

转载于:https://www.cnblogs.com/Jackey_Chen/archive/2008/11/12/1331987.html

相关文章:

抓取网络文件的URL地址作附件发送

最近公司的一个项目, 把网站的前后台分离到两个不同的服务器上(后台Server在公司内部网,前台Server在互联网了).前后台用户(分别称呼:客户,公司员工)所有的上传的文件必须要存放在前台的Server上,这样客户才能无障碍访问文件.那,客户登陆前台提出咨询问题之后,公司员工回复问题…

字符串类型String总结

1.String类: ①Java中,字符串是String类的对象; ②Java中,String是引用数据类型; ③可以通过使用String类提供的方法来完成对字符串的操作; ④创建一个字符串对象之后,将不能更改构成字符串的字…

C# Task注意事项

1、在Task中调用主线程控件 Task.Factory.StartNew(() > {}).ContinueWith(task > {this.Invoke(new Action(() > { MessageBox.Show(this, "执行完成"); })); }); 转载于:https://www.cnblogs.com/zhyue93/p/task1.html

CSS实现网页图片预加载

#preloadedImages {width:0px;height:0px;display:inline;background-image:url(path/to/image1.png);background-image:url(path/to/image2.png);background-image:url(path/to/image3.png);background-image:url(path/to/image4.png);background-image:url();}只要在HTML里加…

软件测试--利用组合覆盖法设计测试用例

输入条件如下: 姓名:填、不填 性别:男、女 学历:小学、初中、高中、专科、本科、硕士、博士 等级:普通、VIP PICT安装和使用

thinkpad 61系机器(T61 X61/X61S R61)休眠掉电问题解决办法

众多61系机器用户在待机状态下一晚上耗电10%-20%。去think服务站得到的帮助是换电池,换主板等实验性的办法均不能解决此问题。通过多次尝试,我找到了行之有效的办法与大家分享。 为满足Energy Star 4.0的标准,机器在休眠模式下,机器的一些功能,比如网络唤…

Linux必知必会的目录与启动过程

第1章 /etc/目录 1.1 /etc/sysconfig/network-scripts/ifcfg-eth0 linux第一块网卡的配置文件 [rootznix ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICEeth0 HWADDR00:0c:29:cb:69:ee TYPEEthernet UUID38ad33ab-3d2b-4183-bd84-ce1766236ddd ONBOOTyes NM_CONTRO…

Oracle10g.CentOS6安装

1、文件 Oracle 10g 下载地址_Linux下载_Linux公社-Linux系统门户网站.html(https://www.linuxidc.com/Linux/2012-02/55336.htm) ZC:这里的下载链接基本都失效了...但是,可以看到 每个版本对应的文件名是什么,然后再根…

GridView中HyperLinkField的链接使用JavaScript问题

本来写好的程序,突然增加需求说要点链接以后刷新父页面并弹出窗口,弹出可以直接用Target属性,在网上查了查,DataNavigateUrlFields并不支持JavaScript,在别人博客上还找到了后台绑定数据的方法,感觉改动太大…

软件测试实验--性能测试工具LoadRunner

HP Loadrunner12的下载和安装 LoadRunner12.x简易入门教程--(一)回放与录制 打不开网页, 有脚本,没有关联实例,显示成功。 LoadRunner12安装及基本使用

sql server性能分析--执行sql次数和逻辑次数

目前在做一个项目优化时,想通过数据库层分析sql server系统性能,查了一下网上代码,修改了一下标题和DMVs代码,以下代码可以用来分析系统运行一段时间后,那些语句是系统忙的sql语句。做为参考。 另类使用: 一…

PHP-----PHP程序设计基础教程----第四章数组

4.1 初识数组 4.1.1 什么是数组 数组是一个可以存储一组或者一系列数值的变量。在PHP中,数组中的元素分两部分,分别为键(Key)和值(Value)。其中,“键”为元素的识别名称,也被称为数组…

spark编程基础--2.2scala基础知识

:load 读写文件 for循环表达式 对循环的控制breakable 数据结构--数组 数据结构--元祖 数据结构--列表 Range 集合 - 可变的集合可以在原集合上进行添加、更新及删除元素。 - 不可变集合一旦被创建便不能被改变,添加、更新及删除操作返回的是新的集合&…

BZOJ 3483 SGU505 Prefixes and suffixes(字典树+可持久化线段树)

【题目链接】 http://www.lydsy.com/JudgeOnline/problem.php?id3483 【题目大意】 给出一些串,同时给出m对前缀后缀,询问有多少串满足给出的前缀后缀模式,   题目要求强制在线 【题解】 我们对于给出的每个字符串正着插入字典树A&#xf…

石英晶体振荡器的结构

石英晶体振荡器的结构 石英晶体振荡器是利用石英晶体(二氧化硅的结晶体)的压电效应制成的一种谐振器件,它的基本构成大致是:从一块石英晶体上按一定方位角切下薄片(简称为晶片,它可以是正方形、矩形或圆形等…

坐班族如何摆脱粗壮大腿

对于很多office lady来说一天可能会在办公室坐上八个小时甚至更多的时间,慢慢地会发现大腿越来越粗壮,其实只要认清你大腿的问题真正出在哪里?用一些简单的运动甚至改变坐姿,都可以达到阻止大腿变粗的效果……一起来看看吧&#x…

spark编程基础--2.3面向对象编程基础

类 对象 继承 参数化类型 特质 模式匹配(match case类) 包 类的定义 构造器 //代码文件为/usr/local/scala/mycode/Counter2.scala class Counter {private var value 0 private var name "" private var step 1 //计算器的默认递进步长 …

网络编程物理层

osi七层协议 互联网协议按照功能不同分为osi七层或tcp/ip五层或tcp/ip四层 每层运行常见的物理设备 我们将应用层,表示层,会话层并作应用层,从tcp/ip五层协议的角度来阐述每层的由来与功能,搞清楚了每层的主要协议 就理…

2017高级软件工程第1次作业

第一部分:结缘计算机 1.你为什么选择计算机专业?你认为你的条件如何?和这些博主比呢? 说起来也是阴差阳错,高考填志愿的时候考虑的是当时最火的3个专业:机械、土木、电气。只知道哎呀这个专业好&#xff0c…

微软图表控件MsChart

转自:http://tech.ddvip.com/2008-11/122640479791375.html 昨天在网上看到了微软发布了.NET 3.5框架下的图表控件,第一时间抓下来看了一下,发觉功能很强劲,基本上能想到的图表都可以使用它绘制出来,给图形统计和报表图…

方案里最常用的集群拓扑图(包含:多机集群、负载均衡、双机)

1、san.JPG2、SAN集群.JPG3、不同楼层双机热备.JPG4、纯软双机.JPG5、纯软双机热备备份恢复2.jpg6、多机集群与备份.jpg7、负载均衡.jpg8、负载均衡之数据库均衡.JPG9、工控.JPG10、监控.bmp11、监控应用(SCSI).JPG12、容灾.JPG13、双机热备备份恢复1.jp…

基于最短路方法的生物序列比对问题研究

概述 作为生物信息学中的基本组成和重要基础,生物序列比对旨在找出两个或多个生物序列之间的相似性,发现生物序列中的功能、结构和进化信息。 生物序列比对在现实生活中有广泛的应用价值。从核酸和蛋白质序列出发,分析序列中表达结构和功能的生物信息&am…

NOI2003文本编辑器

problem 传送门 Solution 块状链表板子题…… 码了一下午,调了一晚上,代码重构了3遍,在终于过了。 还是太菜了。 移动光标的操作直接模拟即可。 插入操作,先将光标所在块分裂成两块,然后直接插入。 删除操作直接将边角…

spark编程基础--2.4函数式编程基础

foreach遍历操作 映射操作map,flatmap 过滤操作filter 规约操作 reduce,fold方法 拆分操作partition,groupedBy,grouped,sliding Scala入门:函数式编程实例WordCount import java.io.File import scala.io.Source import collection.mutable.Map object WordCount …

开始一点点写博客

今天被老樊问了几个基础的问题,都没回答上来!惭愧啊!所以决定用博客的方式来记录在学习中的问题以便好复习,增强记忆!转载于:https://www.cnblogs.com/MoShin/archive/2008/11/29/1343593.html

无人值守安装win2003+sp2的补丁

1. 无人值守安装win2003sp2的补丁<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" />2. 思路&#xff1a; l 第一我们做把sp2的补丁集成到win2003的光盘中l 创建生成无人值守并加载到光盘中l …

构建安全的 ASP.NET 网页和控件

本页内容 本模块内容目标适用范围如何使用本模块威胁和对策设计注意事项输入验证跨站点脚本身份验证授权模拟敏感数据会话管理参数处理异常管理审核和日志记录小结其他资源本模块内容 Web 页和控件位于应用程序的防御前线&#xff0c;它们很容易受到蓄意破坏应用程序安全的攻击…

IDEA新建一个多maven模块工程(有图)

对于一些大型的项目来说&#xff0c;将项目的各个模块理清并进行管理&#xff0c;便于后续项目的维护&#xff0c;使用maven管理是很方便的&#xff0c;它可以很好的构建模块来设计项目的整体结构&#xff0c;对一些小型的项目不建议使用 1、新建父maven模块&#xff08;idea版…

windows10上使用一个tomcat部署2个项目

前言&#xff1a;目前想在本机部署2个项目&#xff0c;网上查了之后&#xff0c;写下本篇随笔 1、准备工作 2、操作方法 3、运行2个项目 1、准备工作 2个war包&#xff08;一个jprss.war和一个jenkins.war&#xff09; 1个tomcat环境 2、操作方法 第一步&#xff1a;复制tomcat…

spark编程基础--4.2在spark-shell中运行代码

启动spark-shell Spark2.1.0入门&#xff1a;Spark的安装和使用 通过spark-submit运行程序