Chen Jian's Java Blog 

Scrum is good at time management

by Chen Jian


Posted on 2016-09-23 12:00 in Software Engineering


Scrum is good at time management because it puts every activity under track without any exceptions .  All what you are doing should be tasks on the white board.   Requirement analysis, tech design are now grooming sessions and spikes....


You can have small grooming sessions instead of a big one

by Chen Jian


Posted on 2016-09-22 12:00 in Software Engineering


You don't have to have a big grooming session to analyse all the user stories for next sprint.  That will be tiresome since it takes long, and people won't like it.   Instead you can break them into small ones, like a one-hour session everyday...


一种健壮性测试的思路:用爬虫扫描全站,然后查看系统日志

by Chen Jian


Posted on 2012-09-21 12:00 in Software Engineering


以前一直有这样一个想法,今天终于付诸实践了。 为了查看web应用有后台错误日志,最基本的测试办法是手工点页面。 但要手工点全站,会比较慢。 最理想的办法是建立一套自动化测试脚本。 但如果没有一套这样的脚本,或者说没有这个脚本还不够完备时,就可以考虑使用爬虫了。 爬虫的好处是它可以递归地找出一个站点的所有链接并跟踪,也就是说能够完整遍历你的网站提供的服务。 所以,你可以一边用爬虫扫,一边盯着你后台的日志文件,看看有没有ERROR Log. ...


开发环境要不要和测试环境隔离?  

by Chen Jian


Posted on 2012-05-30 12:00 in Software Engineering


开发环境要不要和测试环境隔离?  要就是说,是不是要各用一套数据库等基础设施? 能隔离当然最好,开发人员和测试人员不会互相干扰。 但隔离是有代价的,它意味着你要多引一个数据库,如果你的系统是分布式的,你还要多维护一套MQ、RPC中间件等。 依我看,需不需要隔离要看系统是否满足下面的三个条件: 1. 两个环境的系统总是要接触到同一份数据 2. 数据被一个系统接触后,业务状态会改变;导致这份数据对另一个系统不再可用 3. 很难禁止两个系统在同一时刻接触到同一份数据 ...


项目中常见的时间杀手

by Chen Jian


Posted on 2012-04-29 12:00 in Software Engineering


项目中有一些时间杀手,它们看起来很简单,实际上却有可能让你花上比预估值多好几倍的时间   1. 陌生的软件环境和开发工具  2. 测试数据的准备 (待续)


根据Module的特性决定单元测试的覆盖率要求

by Chen Jian


Posted on 2012-03-24 12:00 in Software Engineering


业务应用的单元测试覆盖率可以低一些,框架和工具箱的覆盖率必须要很高   单元测试的覆盖率高当然很好,但高的覆盖率意味着要写很多测试;而写测试本身是件费脑费时的事情,代价不低。 所以要在收益和代价之间取得平衡。   可以着眼现在,放眼未来,具体考量四个因素:     1. 对代码正确性的要求。 要求越高,覆盖率就应该越高。     2. 能否人肉测试。 如果用人肉可以做测试,则自动化运行的单元测试代码...


MS Project项目跟踪:如果排在后面的任务被先做了怎么办?

by Chen Jian


Posted on 2012-02-21 12:00 in Software Engineering


分享MS Project项目跟踪的一个技巧: 如果排在后面的任务被先做了,你应该把这个任务挪到前面来,或者把做掉的那部分挪到前面来 问题: 如果排在后面的任务被先做了,你要怎么更改甘特图才能体现它对进度的影响? 举例来说,原计划是 A B C 结果你第一天没有做A,而是做C做了50%,这时甘特图应该怎么填? 不好的方案 直观的方案是给C填50%,其它不变。但实践证明,这样弄的话,A,B的计划开始时间并不会自动后移;...


适合结对的工作和不适合结对的工作

by Chen Jian


Posted on 2012-02-08 12:00 in Software Engineering


Pair Programming的适用性不能盲目肯定,也不能一棍子打死 按我的体会,有的事情适合Pair,有些不适合 适合结对的工作:    1. 列出所有XXX,以免遗漏。这种事情一个人做很容易遗漏,两个人会好很多。 不适合结对的工作:    1. 创新、探索性工作,比如设计出一个完备的业务流程。这种事情需要集中精力、独立思考,两个人一起做,效率反而更低。 (待续)


Feature Branch的优缺点

by Chen Jian


Posted on 2012-02-01 12:00 in Software Engineering


Feature Branch指的是每开发一个新功能、每修一个bug,都打出一个新的分支,等测试通过后才合并到主干。它的反面是"对所有新功能,大家直接在主干上修改代码“ 个人对Feature Branch的优缺点有一些体会: 优点 :   1. 不同feature之间的开发可以彼此隔离,避免了“一损俱损”的风险 。比如,如果大家都在主干上开发,一个人不小心提交了错误的代码变更导致了编译错误,会搞得所有人的code base都无法编译。亲身经验表明,这种事情非常...


版本号释义

by Chen Jian


Posted on 2012-02-01 12:00 in Software Engineering


抄自《Maven实战》     版本号 1.3.4-beta-2 该怎么理解? 1 - 代表“主版本”,表示项目的重大架构变更 3 - 代表“次版本”,表示较大范围的功能增加和变化,但总体架构未变 4.- 代表“增量版本”,一般表示重大Bug的修复或功能的增强 beta-2 -  代表“里程碑版本”,表示当前的开发已经完成了某个里程牌,但还未稳定


收藏一本书:'Configuration Management Best Practices'

by Chen Jian


Posted on 2012-01-16 12:00 in Software Engineering


Configuration Management Best Practices: Practical Methods that Work in the Real World


Maven的Snapshot版本与Release版本

by Chen Jian


Posted on 2011-12-31 12:00 in Software Engineering


1. Snapshot版本代表不稳定、尚处于开发中的版本 2. Release版本则代表稳定的版本 3. 什么情况下该用SNAPSHOT?      协同开发时,如果A依赖构件B,由于B会更新,B应该使用SNAPSHOT来标识自己 。这种做法的必要性可以反证如下:       a.如果B不用SNAPSHOT,而是每次更新后都使用一个稳定的版本,那版本号就会升得太快,每天一升甚至每个小时一升...


PMBOK 学习笔记 3.8 项目采购管理

by Chen Jian


Posted on 2011-12-24 12:00 in Software Engineering


项目采购管理   暂略


PMBOK 学习笔记 3.7 项目风险管理

by Chen Jian


Posted on 2011-12-24 12:00 in Software Engineering


项目风险管理    风险源于不确定性 。   风险管理的基本步骤: 识别风险 => 分析风险 => 规划应对方案 第0步: 制定风险管理计划 ,即 为整个风险管理制定方法论 。包括:       a.风险概率的定义:如规定“发生概率超过70%的风险为高可能性风险”       b.风险影响的定义:如规定“二级风险指使进度拖延10%-20%的风险...


PMBOK 学习笔记 3.6 项目沟通管理

by Chen Jian


Posted on 2011-12-24 12:00 in Software Engineering


项目沟通管理    项目经理的大多数时间都用在与团队成员和其他干系人的沟通上,他要起到桥梁的作用。  相关的过程:        1. 识别干系人            a.应在项目早期就识别出干系人         b.可以用四象限(权力+利益)给干系人分类,然后制定...