Agile Journal

正规的软件开发过程太烦琐,我们真的需要一个简单高效一点的开发模式,比如XP和Agile。至于什么是XP和Agile,我以为关键都是要充分发挥开发人员的主观能动性,而不仅仅把其当作一颗螺丝钉。

自从上次安装了一个 Mingle的测试版, 就觉得这就是我想像中的Agile项目管理工具,相比之下MS Project太过于烦琐!Mingle最让我喜欢的地方就是Use Story和Release Iteration的管理。因为相比那几十页的软件规格需求文档,Use Story就显得很简洁明了,也容易量化和跟踪。同样,可以在Release Iteration里自由拖放安排Use Stroy也是很方便的,比Project的甘特图什么好多了。软件开发还是没有达到其它行业的成熟程度,无法准确的估量工作量到人日。但是Mingle的运行速度太慢,启动后我的T43就动不了了。不知道正式版会不会快一点,还没有时间试用呢。

今天收到了一封Mingle的新闻邮件,点击附带的链接来到了 Agile Journal,发现真是一个好地方。正好有空,就随便浏览了起来。

Balancing Skills For Agile Team Success

一个开发团队里有些人精通业务,有些人则精通技术,相互之间就会产生意见分歧。因此,你需要提拔那些既懂业务又懂技术的队员来充当仲裁者(Tie-Breaker)。敏捷开发,最忌讳的就是自以为是。

FEATURED BOOK: Continuous Integration: Improving Software Quality and Reducing Risk

Martin Fowler也推荐了《持续集成》这本书,主要是讲CruiseControl和xUnit等工具的使用。持续集成在敏捷开发里占有很重要的地位,当年看《微软的秘密》就知道MS是靠强大的Build机器战胜对手的。CruiseControl我们也用了两年,感觉很好。但是如何跟xUnit等工具结合使用,那还真得看一看这本书。

Make it Fun,Make it Agile

在大企业里做软件开发越来越没有意思了,高手们都跑去了Web2.0公司了。不要让繁琐的计划和官僚压抑了开发人员的热情,如何让开发变得有趣?关键还是要把工作交到开发人员的手里,要对其信任放手让他们去做。要让他们真正喜爱自己的工作,并为其工作成果感到自豪。

Behavior Driven Development -- An Evolution in Testing

测试,就是完成后再去校验,这并不符合TDD的精神。TDD其实倡导先写测试用例,再开发。写测试用例的时候,你就要设想对象的外部行为,实际上就是在做设计了。TDD测试的其实不是单个的方法,而是设计了一个应用场景。从这一点上来说,现有的IDE为类的每个方法,甚至包括私有方法,自动生成测试用例其实不是一个好的习惯。因为私有方法并不对外表现,而且隔立的看待每一个方法其实是没有多大意义的。所以,作者提出了“行为驱动开发(BDD)”,通过应用场景来描述和校验对象的对外行为。最好能把test这个字眼给换成更自然的描述,并举了一个rSpec的例子(再次让我们见证了Ruby的灵活语法,使得 DSL变得简单)。你也可以在现有的xUnit框架上使用BDD的思想,只要把测试用例的类和函数名起得有意义一点,比如 test_shouldHaveOneElementWhenAddedTo()。

没错,太同意作者的观点了。

Challenging Why (Not If) Scrum Works

在告诉别人如何做之前,你最好能让他相信为什么这样做是好的。有信心,才会有勇气克服困难坚持到底。Scrum开发模式为什么得到大家的青睐呢,是什么使得它能够成功呢?

Structured Flexibility: Creating Sustainable Large-Scale Agile Adoption 如何大规模的应用敏捷的开发模式,特别是如何在大项目里还能保持软件的随时可用状态。Build Pipeline把持续构建的过程分为了编译,单元测试,功能测试以及非功能测试几个阶段。只有在前一个阶段通过之后,才能进入下一个阶段,这样开发人员就可以得到快速的反馈而不是要等到所有的测试都结束,从而大大的加快了发布的速度。在小团队里使用小纸片和Excel表格来管理Use Stroy的方式,在大项目里也不适用了,我们需要更好的ALM工具,比如Mingle。  

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


什么是设计模式一套被反复使用、多数人知晓的、经过分类编目的、代码 设计经验 的总结;使用设计模式是为了 可重用 代码、让代码 更容易 被他人理解、保证代码 可靠性;设计模式使代码编制  真正工程化;设计模式使软件工程的 基石脉络, 如同大厦的结构一样;并不直接用来完成代码的编写,而是 描述 在各种不同情况下,要怎么解决问题的一种方案;能使不稳定依赖于相对稳定、具体依赖于相对抽象,避免引
单一职责原则定义(Single Responsibility Principle,SRP)一个对象应该只包含 单一的职责,并且该职责被完整地封装在一个类中。Every  Object should have  a single responsibility, and that responsibility should be entirely encapsulated by t
动态代理和CGLib代理分不清吗,看看这篇文章,写的非常好,强烈推荐。原文截图*************************************************************************************************************************原文文本************
适配器模式将一个类的接口转换成客户期望的另一个接口,使得原本接口不兼容的类可以相互合作。
策略模式定义了一系列算法族,并封装在类中,它们之间可以互相替换,此模式让算法的变化独立于使用算法的客户。
设计模式讲的是如何编写可扩展、可维护、可读的高质量代码,它是针对软件开发中经常遇到的一些设计问题,总结出来的一套通用的解决方案。
模板方法模式在一个方法中定义一个算法的骨架,而将一些步骤延迟到子类中,使得子类可以在不改变算法结构的情况下,重新定义算法中的某些步骤。
迭代器模式提供了一种方法,用于遍历集合对象中的元素,而又不暴露其内部的细节。
外观模式又叫门面模式,它提供了一个统一的(高层)接口,用来访问子系统中的一群接口,使得子系统更容易使用。
单例模式(Singleton Design Pattern)保证一个类只能有一个实例,并提供一个全局访问点。
组合模式可以将对象组合成树形结构来表示“整体-部分”的层次结构,使得客户可以用一致的方式处理个别对象和对象组合。
装饰者模式能够更灵活的,动态的给对象添加其它功能,而不需要修改任何现有的底层代码。
观察者模式(Observer Design Pattern)定义了对象之间的一对多依赖,当对象状态改变的时候,所有依赖者都会自动收到通知。
代理模式为对象提供一个代理,来控制对该对象的访问。代理模式在不改变原始类代码的情况下,通过引入代理类来给原始类附加功能。
工厂模式(Factory Design Pattern)可细分为三种,分别是简单工厂,工厂方法和抽象工厂,它们都是为了更好的创建对象。
状态模式允许对象在内部状态改变时,改变它的行为,对象看起来好像改变了它的类。
命令模式将请求封装为对象,能够支持请求的排队执行、记录日志、撤销等功能。
备忘录模式(Memento Pattern)保存一个对象的某个状态,以便在适当的时候恢复对象。备忘录模式属于行为型模式。 基本介绍 **意图:**在不破坏封装性的前提下,捕获一个对象的内部状态,并在该
顾名思义,责任链模式(Chain of Responsibility Pattern)为请求创建了一个接收者对象的链。这种模式给予请求的类型,对请求的发送者和接收者进行解耦。这种类型的设计模式属于行为
享元模式(Flyweight Pattern)(轻量级)(共享元素)主要用于减少创建对象的数量,以减少内存占用和提高性能。这种类型的设计模式属于结构型模式,它提供了减少对象数量从而改善应用所需的对象结