ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 2009年11月10日主题讨论:继续敏捷--scrum与xp结合 文字稿

2009年11月10日主题讨论:继续敏捷--scrum与xp结合 文字稿

原创 Linux操作系统 作者:lwantstudy 时间:2009-11-11 09:38:03 0 删除 编辑

 

2009年11月10日主题讨论:继续敏捷--scrum与xp结合 文字稿 如下:

richard-leader-shanghai says:

大家好

虚幻的真实-pm-bj says:

同志们好!

谷雨霖【pharos】-CTO-BJ【帮忙推荐JAVA工程师--北京等地】 says:

richard来了,欢迎!

Lidq says:

主讲人出现了。欢迎

Scott.Pan_SAP/Oracle_武汉 says:

呵呵,一早听的新闻,天气冷了不见得流感不传播,相反存活的更长

虚幻的真实-pm-bj says:

鼓掌欢迎!!!

虚幻的真实-pm-bj says:

下雪主要清新空气

richard-leader-shanghai says:

昨天主要说了一下scrum的角色和流程

谷雨霖【pharos】-CTO-BJ【帮忙推荐JAVA工程师--北京等地】 says:

对,主要是清新空气

虚幻的真实-pm-bj says:

而流感主要是空气传播,所以还有好处的

谷雨霖【pharos】-CTO-BJ【帮忙推荐JAVA工程师--北京等地】 says:

下面有请richard,安静。

richard-leader-shanghai says:

今天主要说一下一些编程实践

虚幻的真实-pm-bj says:

好好听讲,天天向上!!!

richard-leader-shanghai says:

不知道在做团队都做 每日构建吗

echo-PM-西安 says:

欢迎

echo-PM-西安 says:

没

richard-leader-shanghai says:

一般来说

richard-leader-shanghai says:

每次迭代都会有一个发布

richard-leader-shanghai says:

一个是让客户尽快看到软件,给与反馈

richard-leader-shanghai says:

另外一个是及时让团队能够看到产出,有责任感和成就感。 就是每个迭代都能看到自己做的东西

richard-leader-shanghai says:

但是,从团队内部来讲,每天出来的代码,可能相互之间会冲突,不一定可用

richard-leader-shanghai says:

而每日构建就是每天把生成一个版本,通过冒烟测试

richard-leader-shanghai says:

如果没有通过冒烟测试,就马上予以修正

richard-leader-shanghai says:

这样子,每天就不会存在大的问题,从而降低风险

richard-leader-shanghai says:

每日构建进化之后的概念, 是现在很流行的持续集成

虚幻的真实-pm-bj says:

每天?是不是太频繁了?

richard-leader-shanghai says:

每当有人签入代码, 都可能影响现有的版本

richard-leader-shanghai says:

就是要每天

richard-leader-shanghai says:

越大的团队,时间越长越容易混乱

谷雨霖【pharos】-CTO-BJ【帮忙推荐JAVA工程师--北京等地】 says:

嗯

richard-leader-shanghai says:

持续集成就是在每次签入代码,系统会自动的去生成版本

susan-pm-湖北 says:

乖乖

虚幻的真实-pm-bj says:

当只有几个人签入代码,那你都测试那些呢?

richard-leader-shanghai says:

如果生成失败,及时地给于警报,比如邮件,予以马上修正

richard-leader-shanghai says:

人数少,模块比较独立也建议每日构建

晓波 says:

如果每天release,

richard-leader-shanghai says:

他避免的一个是主要功能的问题, 一个是基层的问题

richard-leader-shanghai says:

集成的问题

晓波 says:

如何保证测试可以更的上这个频率

虚幻的真实-pm-bj says:

这个会占用多长时间?一般

richard-leader-shanghai says:

冒烟测试就是主要功能都没有问题

richard-leader-shanghai says:

不是全部的测试,主要功能跑完,应该是很快的

richard-leader-shanghai says:

每日构建包括build的时间,部署和测试

richard-leader-shanghai says:

这个看项目而定,一般1个小时要的

richard-leader-shanghai says:

这段时间,不能签入代码,但是开发人员还是可以继续开发

richard-leader-shanghai says:

接着说持续集成

richard-leader-shanghai says:

生成版本之后,就会运行单元测试

richard-leader-shanghai says:

如果有条件, 还可以运行回归测试

虚幻的真实-pm-bj says:

那你们都是用什么测试工具啊?

richard-leader-shanghai says:

持续集成的要求主要是把构建实现自动化

晓波 says:

恩?单元测试放在release之后?

晓波 says:

是由测试组来run吗?

richard-leader-shanghai says:

单元测试是在签入或者build的时候完成

richard-leader-shanghai says:

release是进行冒烟测试

richard-leader-shanghai says:

这个是测试人员来做的

richard-leader-shanghai says:

build最好做成自动化,maven, ant, msbuild都可以

richard-leader-shanghai says:

这个就要求代码最好有单元测试

richard-leader-shanghai says:

如果没有单元测试,继续集成没有太大的意义

晓波 says:

这句话:单元测试是在签入或者build的时候完成

晓波 says:

是说在build的时候,

richard-leader-shanghai says:

是的, 就是check-in 代码, 自动运行单元测试

晓波 says:

由script来自动实现?

richard-leader-shanghai says:

是的

晓波 says:

谢谢。理解了

richard-leader-shanghai says:

如果没有单元测试, 持续集成基本上就没有意义

richard-leader-shanghai says:

重构,代码度量都不太好做

richard-leader-shanghai says:

这个是用来保证质量和系统整合的

richard-leader-shanghai says:

诸位都知道,越大的系统,在集成上越花时间

richard-leader-shanghai says:

这个可以理解为,每次的构建,都是一次迷你发布

richard-leader-shanghai says:

代码基本上都保持在pre-release阶段

richard-leader-shanghai says:

而这些,80%可以通过自动化来达到

richard-leader-shanghai says:

另外一个实践, 就是用户体验驱动

谷雨霖【pharos】-CTO-BJ【帮忙推荐JAVA工程师--北京等地】 says:

你们用什么工具集成,CC还是

richard-leader-shanghai says:

cc

richard-leader-shanghai says:

现在tfs支持了持续集成

richard-leader-shanghai says:

就是在团队中,可以引入用户角色

richard-leader-shanghai says:

一定要有人从用户的角度来考量软件

richard-leader-shanghai says:

这个有可能是product owner来做

richard-leader-shanghai says:

这个在xp中, 是现场客户, 主要让客户参与和回答问题

richard-leader-shanghai says:

但是软件的易用性和认可度是用户决定的

不胜人生一场醉-闲人一个-海口 says:

但是,从团队内部来讲,每天出来的代码,可能相互之间会冲突,不一定可用

 而每日构建就是每天把生成一个版本,通过冒烟测试

 如果没有通过冒烟测试,就马上予以修正

 这样子,每天就不会存在大的问题,从而降低风险

弱弱的问一下,现在eclipse不就是有这个配置工具吗?

richard-leader-shanghai says:

这个就是为什么敏捷讲究短迭代和快发布

richard-leader-shanghai says:

是的, eclipse下面直接用ant

不胜人生一场醉-闲人一个-海口 says:

每天上传代码,检验,也做简单集成;只不过没有单元测试

richard-leader-shanghai says:

这个是3年前,我知道两年前就有很多人转maven了

richard-leader-shanghai says:

这个是最简单的,没有单元测试, 只做build和smoke

不胜人生一场醉-闲人一个-海口 says:

冒烟是啥?

richard-leader-shanghai says:

就是跑主要功能

richard-leader-shanghai says:

硬件设计的时候,出大问题就会冒烟,所以软件借用过来, 就是冒烟测试

richard-leader-shanghai says:

元器件被烧掉,所以冒烟

richard-leader-shanghai says:

不一定要tdd,但是我个人觉得软件的内部质量,很大程度需要unit test来保证

richard-leader-shanghai says:

后来的重构,维护,单元测试都是非常好的

晓波 says:

如果把unit test放到开发端

richard-leader-shanghai says:

因为xp中追求简单设计,持续改进。先设计单元测试就是预先简单设计的易事之一

晓波 says:

是不是区分会更好

bluestar_pm_BJ says:

问个问题,unit test的开发工作是否会占用开发人员的大量时间

richard-leader-shanghai says:

这个是个开发习惯的问题

不胜人生一场醉-闲人一个-海口 says:

那岂不是日常工作中都会用的嘛

richard-leader-shanghai says:

先设计单元测试,并不是让开发人员写测试,而是让他去设计这个方法

richard-leader-shanghai says:

单元测试也是验收条件

richard-leader-shanghai says:

你知道输入输出,才能写单元测试,然后测是通过,也就实现了验收

richard-leader-shanghai says:

习惯以后, 不会花太多的精力

richard-leader-shanghai says:

还有就是敏捷比较讲究自组织,自适应

richard-leader-shanghai says:

就是人员之间会主动协作,主动找问题,想办法

richard-leader-shanghai says:

然后团队才会成为敏捷的团队

晓波 says:

让他去设计这个方法

晓波 says:

Richard 能解释一下吗?

richard-leader-shanghai says:

对unit test就是预先设计的意思

susan-pm-湖北 says:

就是写测试用例吗?

不胜人生一场醉-闲人一个-海口 says:

以前的测试都是在类中的main方法中写个测试用例?难道就是这个?

 

bluestar_pm_BJ says:

应该是用junit之类的吧

richard-leader-shanghai says:

是这种的改进版本

richard-leader-shanghai says:

对, junit ,nunit等

不胜人生一场醉-闲人一个-海口 says:

对于像我这样java水平很菜的人,我应该注意什么?

richard-leader-shanghai says:

如果你要事先写出这个方法的单元测试

不胜人生一场醉-闲人一个-海口 says:

我不可能天天看代码啊

richard-leader-shanghai says:

你是否需要先知道这个方法干什么的呢

richard-leader-shanghai says:

要知道输入,输出和测试条件吧

richard-leader-shanghai says:

这个就会强迫你去思考

bluestar_pm_BJ says:

哦,也就是说使用jnuit,nunit等写了单元测试,在持续集成时也可以自动执行这些测试类,检验实现的方法是否满足要求

richard-leader-shanghai says:

对

不胜人生一场醉-闲人一个-海口 says:

对pm有啥要求呢?

richard-leader-shanghai says:

而且你在改良代码的时候,才知道是否对其他的地方有影响, 不然你改了代码,都不知道哪里会出问题

richard-leader-shanghai says:

只需要pm有这个意识

richard-leader-shanghai says:

主要是针对开发者和开发方式的

bluestar_pm_BJ says:

richard,你们项目在开发过程中,都要求开发人员必须写单元测试吗

richard-leader-shanghai says:

看上面的要求

richard-leader-shanghai says:

我做的,只要不是压力特别大,我会要求的

blue-pm-bj says:

开发人员写更快

chinamath(海茶)-Sr.SE-北京 says:

我们曾经尝试用CPPUnit来写单元测试,但是实际发现只能实现一些很简单的测试方法,对一些复杂的功能,基本没法写测试用例。比如说,有较多界面交互的系统。请问Richard你们是怎么解决的?

richard-leader-shanghai says:

绝大多数开发人员刚开始对这个很抵触

richard-leader-shanghai says:

这个是通过mock来解决的

bluestar_pm_BJ says:

恩,许多开发人员是很抵触

richard-leader-shanghai says:

写好的单元测试也是一种学问,需要一定的学习的

richard-leader-shanghai says:

界面测试, 还有数据库,很多时候通过mock来解决

不胜人生一场醉-闲人一个-海口 says:

mock是什么?简单说一下就行了

bluestar_pm_BJ says:

richard,你要是关于如何写好单元测试的经验,也给介绍一下

chinamath(海茶)-Sr.SE-北京 says:

mock我们也试过,但是感觉还是不是太好使。

susan-pm-湖北 says:

  mock测试:就是在测试过程中,对于某些不容易构造或者 不容易获取的对象,用一个虚拟的对象来创建以便测试的测试方法

richard-leader-shanghai says:

mock就是模拟的

不胜人生一场醉-闲人一个-海口 says:

新名词越来越多了

blue-pm-bj says:

还以为是自动测试工具名称呢

richard-leader-shanghai says:

我也觉得不太好用

richard-leader-shanghai says:

QTP什么的我都不喜欢

richard-leader-shanghai says:

界面的还是喜欢人肉, 主要逻辑层没问题就好

susan-pm-湖北 says:

人肉?

chinamath(海茶)-Sr.SE-北京 says:

尤其当系统对象越来越多,之间的联系和交互也越来越多的时候,mock的工作量也会越来越大,最后就是没人继续写单元测试了。

blue-pm-bj says:

可以选用自动测试工具

晓波 says:

是不是可以请tester利用类似robert工具

chinamath(海茶)-Sr.SE-北京 says:

所以我们最后的结论就是单元测试对一些比较底层的,独立的模块,可能比较有效,但是对比较复杂的应用层模块实际不太有效。

晓波 says:

写出面向界面的test case

blue-pm-bj says:

不打岔了,richard继续

richard-leader-shanghai says:

界面和数据库作unit test这块确实没有看到好的办法

susan-pm-湖北 says:

人肉的意思就是手工做是吧?

richard-leader-shanghai says:

是啊

chinamath(海茶)-Sr.SE-北京 says:

界面测试的工具我们后来就是用的类似RocketMouse这样的工具,它可以把人的操作记录下来,然后设定重复次数,就可以代替人进行界面点击操作了。

richard-leader-shanghai says:

因为讲究人员要能够主动解决问题,所以敏捷对人员的要求还是比较高的

richard-leader-shanghai says:

界面测试我们用QTP

不胜人生一场醉-闲人一个-海口 says:

HP gdcc的开发人员水平我知道

很多sse都是工作8年以上的

richard-leader-shanghai says:

不过版本升级的时候维护qtp脚本问题也很大

晓波 says:

gdcc我们可以先忽略过去

richard-leader-shanghai says:

敏捷也比较讲究纪律和协作

不胜人生一场醉-闲人一个-海口 says:

我是说遇到一些工作2、3年的程序员,是不是仍适合用敏捷?

richard-leader-shanghai says:

主要就是去除开发的束缚和浪费,更大化工作价值

richard-leader-shanghai says:

还是适用的

richard-leader-shanghai says:

这个没有区分时间和经验

richard-leader-shanghai says:

只是因为很多技巧性的东西,需要比较长的时间才能很好掌握

richard-leader-shanghai says:

团队文化,SCM工具, 流程这些对所有团队成员都是一样的

richard-leader-shanghai says:

好的, 我的这个Scrum与敏捷主题完了

richard-leader-shanghai says:

大家还有什么问题

晓波 says:

恩,

晓波 says:

想请教个事情,通过scrum和敏捷

晓波 says:

你们team效率大概提高了多少

chinamath(海茶)-Sr.SE-北京 says:

我的体会是,敏捷的前提是团队成员之间充分信任,大家都坚持以客观事实为判断依据,以解决问题为共同目标,否则在某些情况下会适得其反。简单说,就是敏捷是有前提条件的。

richard-leader-shanghai says:

是的

richard-leader-shanghai says:

如果大家都不想干活

richard-leader-shanghai says:

那么什么都解决不了wenit

richard-leader-shanghai says:

Team基本上大家都知道要做什么,怎么做,非常恒定

blue-pm-bj says:

从非敏捷到敏捷,代价有多大,

不胜人生一场醉-闲人一个-海口 says:

这个对pm技术要求高吧

richard-leader-shanghai says:

效率提高多少这个不好说。但是基本上解决了沟通上的问题

晓波 says:

是这样的,

richard-leader-shanghai says:

量化数据这个可以网上找

晓波 says:

我们在实施了敏捷后,效果的确很好

晓波 says:

不过在效率的问题上

晓波 says:

没有明显改善

晓波 says:

也就是说,工作量加大,沟通成本过高

blue-pm-bj says:

是否因为过于注重沟通了?

晓波 says:

在schedule上无法看到优势

blue-pm-bj says:

文档减少了多少?

songhuijuan1982@hotmail.com says:

是否还是需要及时更新项目计划啊

richard-leader-shanghai says:

这个是肯定的

richard-leader-shanghai says:

这种增加成本的可能性也是有的

blue-pm-bj says:

计划是短期的吧

richard-leader-shanghai says:

主要是要持续改进

songhuijuan1982@hotmail.com says:

就是项目计划啊,在系统中管控的计划啊

richard-leader-shanghai says:

项目计划一般是固定的

richard-leader-shanghai says:

但是如果迭代不如预期,可能就需要把一些东西从product bacjlog取出来,换句话说, 砍实现

songhuijuan1982@hotmail.com says:

现在发现一个问题,立一个项目,真正理解这个需求的人没有,问市场人员,他也不过滤一下,直接把客户的内容发给开发,你们觉得这样的项目怎么搞啊

richard-leader-shanghai says:

或者迭代比预期快,就要加东西,这些都是要更新计划的

songhuijuan1982@hotmail.com says:

你们更新计划存在繁琐的问题吗

richard-leader-shanghai says:

不存在,一般都是如预期的

richard-leader-shanghai says:

因为所有的东西大家都比较清楚,还有一些buffer

songhuijuan1982@hotmail.com says:

可我们这里很难做到啊

richard-leader-shanghai says:

这个你要把需求理解之后找客户确认

richard-leader-shanghai says:

醉应该更懂这种这些

bluestar_pm_BJ says:

客户也说不清呢,尤其是做政府项目

songhuijuan1982@hotmail.com says:

感觉这样的人不是很多啊,呵呵呵

blue-pm-bj says:

那你的计划肯定要变的

songhuijuan1982@hotmail.com says:

你们做项目都是用什么系统来管理的啊

chinamath(海茶)-Sr.SE-北京 says:

谢谢richard今天的讲课,让我受益匪浅。希望以后能有更多的机会交流。今天还有事,先走一步。各位兄弟继续。

谷雨霖【pharos】-CTO-BJ【帮忙推荐JAVA工程师--北京等地】 says:

 

richard-leader-shanghai says:

客气

blue-pm-bj says:

+姐妹

susan-pm-湖北 says:

感谢,我也得忙去了

chinamath(海茶)-Sr.SE-北京 says:

不好意思,兄弟姐妹们继续

谷雨霖【pharos】-CTO-BJ【帮忙推荐JAVA工程师--北京等地】 says:

richard的技术功底很扎实,让大家受益匪浅

不胜人生一场醉-闲人一个-海口 says:

 

richard-leader-shanghai says:

 

xiyeqing99-pm-上海 says:

 

谷雨霖【pharos】-CTO-BJ【帮忙推荐JAVA工程师--北京等地】 says:

好的。今天我们有幸请richard分两期介绍了自己在敏捷和代码管理方面的经验

谷雨霖【pharos】-CTO-BJ【帮忙推荐JAVA工程师--北京等地】 says:

非常感谢!

blue-pm-bj says:

thanks

richard-leader-shanghai says:

谢谢老谷

richard-leader-shanghai says:

谢谢大家

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/85849/viewspace-619374/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: 挣值指标体系
请登录后发表评论 登录
全部评论

注册时间:2008-07-28

  • 博文量
    8
  • 访问量
    18916