www.martinfowler.com/articles/newMethodology.html#FromNothingToMonumentalToAgile
engineering methodologies(工程方法,又或则plan-drive methodologies,计划驱动方法),这些方法通
过对开发过程进行严格而详细的规定,以期使软件开发更可预知以及获得更高的开发效率,这种强调前期计
划灵感来源与其他工程领域的实践,从而得名工程方法。不过工程方法虽然存在了很长时间,但并没有引起
人们太多的注意,对其主要的评批是太过于个官僚化,太多德事情需要做,会延缓整个开发进程。
agile methodologies(敏捷方法)以对工程方法的反其道而行得以发展,主要是在无过程和过度过程中寻找
一种平衡,即从合理的过程中获得满意的回报。
敏捷方法与工程方法有一些明显的区别,其中之一反映在文档上,敏捷方法不是面向文档(document-
oriented)的,其倡导的是在给定的任务中使用更少的文档,敏捷方法更象是面向代码(code-oriented):
文档的核心应该是源代码
文档方面的特点并不是敏捷方法的关键所在,文档减少只是表象,其更深层次的特典是:
1.敏捷方法是强调“适应”而不是“预见”,工程方法试图在代码构建之前定制一个详细的计划,若项目庞
大,那么就需要在一个很长的时间跨度内作出详细计划。然后依照计划进行开发。这种方法的本质是拒绝变
化的。而敏捷方法强调的是“welcome change”,其目的就是设计出适应变化的过程,甚至通过改变自身来
适应变化。
2.敏捷方法是面向人(people-oriented)而非面向过程(process-oriented)的,工程方法的目标是定义一
个适合所有人使用的过程。 而敏捷方法则认为没有任何过程可以替代开发组的技能,所以过程的作用应该是
为开发组提供支持
将设计与建造分离开来?
《代码大全》的部分比喻在
Martin Fowler的文章中显得有些不合适了,软件工程不同于传统的工程项目,比如土木工程。工
程方法的思路类似与传统的工程项目,将设计与建造完全分开,因为在传统的工程项目了,设计与建造是两个截然不同的活
动,设计是难以预计的,需要昂贵的有创造性的人员,建造过程则比较机械,只需要按部就班的工作,这样在建造过
程中就能使用技能相对较低的人员。然后土木工程与软件工程存在许多不同,首先,土木工程中,设计相对与建造无论是在时
间上还是经费上都要少得多。但软件工程中编码所占的时间一般要少的多,McConnell 指出在大型项目中,编码和单元测试只
占15%,这几乎和桥梁工程中的比例倒过来了。即使把所有测试工作都算作是建造的一部分,设计仍要占到50%。
对比软件工程和传统工程,可以得出一些结论:
1.在软件开发中,具体建造费用低得可以认为是没有。
2.软件开发中所有工作都是设计,因此需要富有创造性的才智之士。
3.创造性的过程是不太容易计划的,因此,可预见性或许是个不可能达到的目标。
4.我们应该对用传统工程来隐喻软件构造保持足够的警觉,因为它们是不同类型的活动,需要不同的过程。
分享到:
相关推荐
Modern Software Engineering Methodologies for Mobile and Cloud Environments 英文无水印原版pdf pdf所有页面使用FoxitReader、PDF-XChangeViewer、SumatraPDF和Firefox测试都可以打开 本资源转载自网络,如...
Venkat Subramaniam作为Agile Developer, Inc.的创始人,在美国、加拿大和欧洲培训和指导了成千上万的软件开发者,他本身在软件应用的架构、设计和开发方面拥有丰富的经验。Venkat帮助客户在他们的软件项目中有效地...
水晶敏捷方法论(Crystal Agile Methodologies)是一种灵活且适应性强的敏捷开发方法,由Alistair Cockburn于1998年提出,并在2001年及2004年进行了进一步的发展和完善。水晶方法论的核心理念在于认为不同的项目应...
软件工程方法论是指导软件开发过程的一套规则、原则、程序和过程,它帮助管理和控制软件工程项目的开发。当前实践中广泛使用的两种著名软件工程方法论是瀑布模型和螺旋模型,它们分别以任务的顺序性和循环性为特点。...
Software Engineering For Modern Web Applications-Methodologies and Technologies ---------Daniel M. Brandon
文件标题为“Methodologies for Jitter and Signal Quality Specification - MJSQ”,描述中提到的具体内容是关于T11.2标准项目1316-DT的修订版本12.2,日期为2004年1月30日。标签为“jitter”,即时钟抖动,这是...
Human Computer Interaction: Concepts, Methodologies, Tools and Applications Paperback: 3024 pages Publisher: Information Science Reference; illustrated edition edition (October 30, 2008) Language: ...
Software Design Methodologies 软件设计方法论介绍
the fully revised Third Edition of Essentials of Software Engineering offers a comprehensive, accessible, and concise introduction to core topics and methodologies of software development. Designed ...
### Thinning Methodologies – A Comprehensive Survey The paper "Thinning Methodologies – A Comprehensive Survey" by Louisa Lam, Seong-Whan Lee, and Ching Y. Suen provides an in-depth exploration of ...
Project management is one of the most in-demand skills in today's job market, making more and more employers turn to AGILE methodologies to enhance delivery and results. The PMI-ACP certification ...
Today's software engineer must be able to employ more than one kind of software process, ranging from agile methodologies to the waterfall process, from highly integrated tool suites to refactoring ...
Review of Smart Meter Data Analytics Applications Methodologies and Challenges
High Performance Computing for Big Data Methodologies and Applications 英文azw3 本资源转载自网络,如有侵权,请联系上传者或csdn删除 本资源转载自网络,如有侵权,请联系上传者或csdn删除
### Web工程:超媒体应用设计中的模型与方法论 #### 引言 随着网络技术的飞速发展,超媒体应用已成为信息展示与传递的强大工具。这类应用不仅融合了多种媒介形式(如文本、声音、视频和图像),还通过链接机制实现...
High Performance Computing for Big Data Methodologies and Applications 英文epub 本资源转载自网络,如有侵权,请联系上传者或csdn删除 本资源转载自网络,如有侵权,请联系上传者或csdn删除
《Applied Guidance Methodologies for Off-road Vehicles》是Springer Tracts in Advanced Robotics系列的第138卷,由Javad Taghia和Jayantha Katupitiya共同编著。这本书深入探讨了应用于越野车辆的导航与控制技术...