标签墙

Agile Develeopment

使用Mingle来管理你的敏捷项目

在2007年6月30日,由ThoughtWorks 公司开发的敏捷项目管理工具Mingle 正式发布了公测版本。自从2007年三月份宣布之后,人们一直热烈期待着Mingle的发布。凭借ThoughtWorks在敏捷领域的经验和以及其在高质量软件交付的历史佐证,Mingle最终可能会蚕食Trac 和VersionOne 公司在这一领域长期占有的市场份额。 Mingle发布的第一版本主要是关于项目的协作管理。在ThoughtWorks的Jay Wallace的指导下,来自InfoQ的人员领略了Mingle的独特之处,以及它在敏捷项目管理和团队协作方面的强大功能。 Jay带我们一起观看了Mingl....
More...

异地分布式敏捷软件开发探讨分析

异地分布式软件开发(Distributed Software Development)是指由多个位于不同地理位置的团队进行同一个软件项目的开发过程。这个词越来越频繁的出现在各种技术媒体中。 异地分布式软件开发不同于外包,它建立在平等关系的两个团队之间。通常是一个公司的不同分公司或办公室间的协作,他们之间大多不存在博弈的合同关系。而外包是指一个公司将其软件系统的开发委托给另一个公司或组织完成。二者之间是合同的甲乙方关系。 但无论是异地分布式软件开发或是外包,可以接触到实际客户的一端一般称为on-site,另一端可相应的称 为off-site,他们可以根据地理位置分为三类:on-shore(在岸,....
More...

一次有益的敏捷XP失败

漫谈企业应用项目的软件开发过程 一个PRM系统实施的经验与教训 ....
More...

一次有益的敏捷尝试

作者:张恂 PRM 项目所反映的问题和现象是非常典型的程序员高手和笃信编程技巧大于一切的观察家们会指着PRM 案例说这明显是开发人员的水平不够页面处理太笨数据库设计太次要是我早就搞定了可是这果真是技术问题吗? 俊生: 你好! 当我第一次在DW 上读到这篇文章漫谈企业应用项目的软件开发过程一个PRM 系统实施的经验与教训,就发现它是一篇非常难得的好文章。国内类似这样的软件工程案例分析太少了,很多人没有时间写或不愿与他人分享家中的宝贝,何况这篇 文章还是专门针对XP RUP 实践的。不管结果如何,原文篇幅不长,却有很多值得我们借鉴学习的地方。除了你总结的经验和教训之外,我还看出了一些另....
More...

XP中一些基本概念的简介

UserStory:开发人员要求客户把所有的需求写成一个个独立的小故事,每个只需要几天时间就可以完 成。开发过程中,客户可以随时提出新的UserStory,或者更改以前的UserStory。 StoryEstimates和开发速度:开发小组对每个UserStory进行估算,并根据每个开发周期 (Iteration)中的实际情况反复计算开发速度。这样,开发人员和客户能知道每个星期到底能开发多 少UserStory。 ReleasePlan和ReleaseScope:整个开发过程中,开发人员将不断地发布新版本。开发人员和客户一 起确定每个发布所包含的UserStory。 Iteration(开发周....
More...

XP中的重要惯例和规则

1项目开发小组(Team) 在XP中,每个对项目做贡献的人都应该是项目开发小组中的一员。而且,这个小组中必须至少有一个人 对用户需求非常清晰,能够提出需求、决定各个需求的商业价值(优先级)、根据需求等的变化调整项 目计划等。这个人扮演的是客户这个角色,当然最好就是实际的最终用户,因为整个项目就是围绕 最终用户的需求而展开的。程序员是项目开发小组中必不可少的成员。小组中可以有测试员,他们帮助 客户制订验收测试;有分析员,帮助客户确定需求;通常还有个Coach(教练),负责跟踪开发进度、 解决开发中遇到的一些问题、推动项目进行;还可以又一个项目经理,负责调配资源、协助项目内外的 交流沟通等等。项目....
More...

持续集成反模式——通过避免反模式轻松实现持续集成

让开发自动化: 持续集成反模式 通过避免反模式轻松实现持续集成 ....
More...

自动生成的测试与TDD[翻译自Uncle Bob的博文]

自动生成的测试与TDD Posted by Uncle Bob 译者:88250 测试驱动的开发方式TDD现在已经很流行了,很多公司都在采用。不过,一些人也当心这会花费太多的时间去写单元测试,所以并一直在寻找自动生成测试的工具,以降低编写单元测试的负担。 这负担可不是无关紧要的。在很恰当地使用TDD后,创建一个具有45,000行Java代码的应用,其中有15,000行代码是单元测试。我们可以很快计算出TDD增加了编码负担的整整13! 当然了,这是一个消极的分析。使用TDD带来的好处是很重要的,其价值远远超出了编写额外代码的负担。但是,33%的测试代码仍然觉得过....
More...

我的翻译生涯开始了

最近很热衷翻译工作,开源无处不在! 1月份寒假的时候加入了NetBeans中文社区,参与了一篇Web教程的翻译 2月底,开学后翻译了 Uncle Bob Robert C. Martin的一篇博文 3月份开始翻译Martin Fowler的Mocks Aren't Stubs ,in process now.... 3月28日加入了满江红,参与了Spring2.5.x的Reference翻译 最大的体会就是:看到了中国一些开源社区的繁荣,看到了有这么多的同僚为其他人服务。很高兴自己也能成为其中一份子,很高兴。我想喊一句: Open Source,Open M....
More...

介绍敏捷开发的七种主流武器

敏捷开发包括一系列的方法,主流的有如下七种: XP XP(极限编程)的思想源自 Kent Beck和Ward Cunningham在软件项目中的合作经历。XP注重的核心是沟通、简明、反馈和勇气。因为知道计划永远赶不上变化,XP无需开发人员在软件开始初期做 出很多的文档。XP提倡测试先行,为了将以后出现bug的几率降到最低。 SCRUM SCRUM是一种迭代的增量化过程,用于产品开发或工作管理。它是一种可以集合各种开发实践的经验化过程框架。SCRUM中发布产品的重要性高于一切。 该方法由Ken Schwaber和 Jeff Sutherland 提出,旨在寻求充分发挥面向对象和构件技术的开发方法....
More...

国人眼中的Scrum

作者 乔梁 发布于 2008年3月31日 下午8时17分 最近,在google的AgileChina讨论组中出现了一系列的帖子讨论Scrum,内容涉及对Scrum的理解、CSM的接受程度及其在国内的实施效果等方面。从这些讨论的字里行间不难看出,业内人员已对敏捷有了更深入的思考,而不再是最初的模仿。与此同时,InfoQ中文站也刚好完成名为《Scrum在中国企业实施情况调查实录》的调查报告,用事实回答了部分参与者提出的问题。 一、对Scrum的理解 徐毅说道: Scrum是一个框架,最主要的是一些basic value,这样的一....
More...

关于奥普迪词典软件竞赛的一点体会、抱怨与建议

关于奥普迪词典软件竞赛的一点体会、抱怨与建议 下面是我们(StoneAge小组)对本次活动的一点体会,也是我们想说的一些话,一些抱怨与建议: 一、本次赛事的目的 1. 奥普迪公司 开门见山。据我们了解,奥普迪公司正在做外语学习软件的suite package。以奥普迪公司的角度,产品化,或者部分产品化本次竞赛的结果是必然的。As everybody known, 日本奥普迪公司主要是做外包项目的,而外包项目也许永远也不能把自己公司的牌子打响。所以,在时机成熟时,做属于自己的产品是必须的。从大赛计划书后面关于lisence的声名与后来一系列会议的内容看,确定无疑。 2. 云南大学软件学院 作....
More...

设计演化与设计

转载请保留作者信息: 作者:88250 Blog:http:blog.csdn.netDL88250 MSN Gmail QQ:DL88250@gmail.com 我认为,要成为优秀的软件设计者,学习软件设计的演化(尤其是设计演化)比学习软件设计更为重要。只有从演化的过程中才能看清设计的本质。 以往,我们只注重设计,认为设计是优质软件制造的必要条件。但好的设计往往是依靠设计者多年从事此行的经验,特别是所谓的大规模软件,此类软件的设计过于依赖于经验,过于依赖于人的个体行为。这样的依赖过于具体。 记得OO原则中有一条 Dependence Inversion:抽象不应该依赖于细节,细节应....
More...

剖析短迭代

剖析短迭代 作者 Dave Nicolette译者 郑柯 发布于 2008年11月19日 下午3时56分 很多人都觉得:迭代的长度应该由发布周期的长短确定。我不同意,我认为这两个周期之间不应有关系。相对于长迭代来说,短迭代可以提供更为频繁的客户反馈, 同时也给予团队机会,让他们可以反思并改进自己的工作实践。短周期可以形成“心跳节奏”,这样的快节奏也足以展现更多意义。由于短周期的本性使然,团队不 大有机会创建过于冗长的工作项目,而这样的项目会使得人们很难产生成就感,除非等到大量的工作完成之后。即使发....
More...

单元测试与敏捷开发

单元测试与敏捷开发 转载请保留作者信息: 作者:88250 Blog:http:blog.csdn.netDL88250 MSN Gmail QQ:DL88250@gmail.com 在要求项目要尽量快地实现的时候,质量与开发进度上会出现一定的矛盾,最突出的就是单元测试代码与逻辑实现代码。 TDD 测试驱动开发必然没错,但是使用不当会造成开发效率的下降。在敏捷开发实践中,结合前辈经验与自己的经验, 如下几点是要关心的: 1. 为主要的、关键的逻辑组件,关键的逻辑方法进行测试驱动开发 这样对设计、设计演化很有帮助 2. 逻辑类似的组件如果存在多个,优先编写其中一种逻辑组件的测试代码 ....
More...

敏捷团队协作的加速器——Mingle

敏捷团队协作的加速器——Mingle转载请保留作者信息:作者:88250Blog:http:blog.csdn.netDL88250MSN Gmail QQ:DL88250@gmail.com一. Mingle是什么?Mingle是一个敏捷项目管理与团队协作工具,它提供给团队一个共享的工作空间。它支持各种各样的敏捷方法,内置了XP、Scrum、Agile Hybrid的项目模版。Mingle也是ThoughtWorks 7年多敏捷实践的结晶。而在英文字典中,Mingle这个词有着“合而为一,混合”的意思。的确,它让整个凝聚在了一起,为了共同的项目目标而努力。在Mingle中,everyth....
More...

书评:简洁代码──敏捷软件工艺指南

书评:简洁代码──敏捷软件工艺指南 作者 Ryan Cooper 译者 王瑜珩 发布于 2009年6月15日 上午11时58分 作为开发人员,我们的首要任务是写出能够工作的代码。但是,仅仅能够工作还不足矣,为了能够持续提供真正的价值,代码一定要简洁。在《简洁代码:敏捷软件工艺指南》 一书中,Robert C. Martin提供了大量示例来帮助我们识别代码中可以改进的地方,并提供了相应的办法来逐步改进这些代码。 什么是简洁代码? 在第一章,Martin以极富说服力的方式表明....
More...

James Shore:敏捷的衰落

作者 Chris Sims 译者 李剑 发布于 2008年11月19日 上午12时29分 James Shore声称敏捷正在走向衰落。他说,很多团队在用sprints和每日例会,但是却不采用那些可以在长期内产出高质量软件的技术实践。在他的估计中,已有无数个Scrum团队将敏捷用的如此之烂,不仅失败已成必然,而且会将敏捷的发展跟他们一起拖入泥潭。 James的文章中,大部分都是在指责Scrum和Scr....
More...

那些炒作过度的技术和概念

StackExchange.com上有一个贴子在评论着最近 20 年来被炒作过度的技术,对于出现的结果,大多数赞同,也有一些不赞同。

More...

再识 Java 的 final 关键字

在 Java 中,我们一般用 final 关键字来定义类字段常量,防止类继承、方法覆写。但其实我们也应该尽可能地使用 final 关键字来修饰方法参数与局部变量。

因为这样做可以使代码更易读,能让阅读者清楚地知道该参数/变量是不会在被重赋值的,也可以让编译器更好地帮助我们优化生成的字节码。

More...