一、简介
现在,让我们言归正传。 【相关文章:从尴尬到自豪 浪潮天梭让本土CIO“长脸】
本文与其它典型的java文章有所不同,这主要体现在两个方面。首先,我们没有深入讨论有关于一些api或优秀工具的细节,而是提供了使用敏捷方法与普通java对象(pojo)构建企业级java应用程序的一个指南。其次,本文中涉及到大量的从概念到工程发布等多方面的基本内容。因此,为了简洁起见,本文中仅提供了极少的代码摘录;然而,本文还提供了一个基于spring,hibernate,junit与ant构建的完全可运行的示例时间表应用程序(并有相应的源代码)供您参考。 【扩展阅读:华为“内部人士”称有意整体转让华为3Co】
在2001年,17位软件专家(包括martin fowler,kent beck与jon kern)聚集到一起共同探讨有关软件开发的轻量级途径;最终,他们联合定义了术语“敏捷”并发出了“敏捷软件开发宣言”—为这些敏捷方法提供了一组参考值与原则。 【扩展信息:内核级Rootkit的加载和调试(1)】
二、敏捷宣言
术语“敏捷”中融入了大范围的多种方法;其中一些包括极限编程(xp),scrum,特征驱动开发,敏捷建模以及crystal。而且,这其中的许多方法都倾向于至少包括过程与建模两个方面(因为它们经常联系在一起);接下来,我们将逐一展开讨论。而有关敏捷宣言与各种敏捷方法的更多细节,请访问agilemanifesto.org与agilealliance.org网站。
三、敏捷过程
一种最容易理解的敏捷过程就是scrum。尽管xp在整个敏捷社区似乎更为引人注目,但是它较之于scrum要更复杂些。不过,这两者却是高度互补的,因为xp提供一组优秀的工程实践,而scrum则更多地强调产品/工程管理。事实上,最近,我更倾向于推荐首先基于scrum进行“敏捷”开发,然后每次添加一项xp实践,这是因为完全基于xp进行开发对于许多组织来说还有些太冒然,并且要求他们对于许多工程的开发要作好充分的思想准备。
那么,scrum是如何工作的呢?很简单。我们只需提供相应于产品订货(backlog)中的一个应用程序的新特征或改变请求的一个列表即可。在我们的示例应用程序timeexpression中,这些包括:
◆按小时工资制的雇员能够签入到一个web应用程序并且输入对于某一周他们每天的工作小时数。
◆该雇员的经理必须同意这个时间表。 ◆在同意/否定了一个时间表之后,把通知发送给该雇员并指示该时间表的更新状态。 ◆等等……之后,我们只要按照最高优先级特征,把它们移动到一个sprint订货表中,并且通过一个月(或更短时间内)的反复工作来实现它们(称为“sprint”),并且继续这种以月为周期的sprint直到实现所有的特征。... 下一页