- 快速开发(纪念版)
- (美)史蒂夫·麦康奈尔
- 2097字
- 2025-04-12 22:16:59
本书的主要特色
我是以“软件开发人员的直觉”,围绕“为什么我们常见的快速开发方法都基本失败了”这一中心来构思本书的。书中讲述的所有实践活动都是特定环境下开发人员实际工作的真实写照,正是这个原因,本书提倡在学习使用书中的方法时,应根据自身情况,做一些自己的小小变革。
我个人对于软件开发的观点是,软件项目可以基于多种目的进行优化,如基于最低错误率、基于最快执行速度、基于最佳用户接受度、基于最佳维护性、基于最低的成本、基于最短开发周期等。软件工程方法的一个主要目的就是要平衡得失:你能够通过降低质量要求、降低可用性要求、让开发人员超时工作等手段优化开发时间吗?当项目结束的时间逼近时,你最终要压缩哪些环节?本书将回答这些关键性的权衡问题及其他一些问题。
1.提高开发速度
你可以在特定的项目中采用本书所描述的策略和最佳实践方法,尽可能地提高开发速度。通常,大多数人都能够通过采用本书中的策略和实践方法使开发速度大大改善。我可以说,对任何软件项目,你总会在本书中找到若干适用的方法。根据你的项目情况,“最佳开发速度”有可能并不像你期望的那样快,这不仅仅是运气,也与你没有使用快速开发语言,或还在使用过时的代码,或工作在嘈杂不利于生产的环境中有关。
2.快速开发对传统理论的倾斜
本书中描述的有些方法并不属于典型的快速开发方法,如风险管理、软件开发原理和生命期计划,这些通常被看作是典型的“好的软件开发方法”,而非快速开发方法的范畴。然而,这些方法具有深刻的开发速度内涵,许多情况下,也称它们属于快速开发这一主题。本书将这些方法在提高开发速度方面的实践纳入到了与此相关的其他一些快速开发的实践方法中。
3.实践方法的重点
对有些人而言,“实践”意味着“编码”,对这些人,我必须承认本书并不“很实践”。我避免基于编码的“实践方法”主要有两个方面的原因:第一,我已经写过一本800页的有关编码实践方法与技巧的书籍《代码大全》,有关编码,我没有更多要说的了;第二,许多有关快速开发的关键要素并非基于编码,而是一种策略和理念,有时,更是一种实践而非理论。
4.快速阅读结构
我尽可能以更为实用的方式来组织本书的快速开发资料。本书的前两部分描述了快速开发的策略和理念,其中有约50页的案例讨论,所以你可以清楚地看到策略和理念在实践中的作用。案例以明显的形式排版,如果你不喜欢这些案例研究,可以很方便地跳过。本书的其余部分是由一系列的快速开发实践构成的,这些实践也以便于快速查找的方式编排,你可以根据自己项目的需要,很方便地找到感兴趣的内容。本书描述了怎样使用这些实践中的方法、使用这些方法使进度缩短的程度以及伴随而来的风险。
我在书中也采用了一些图标和特殊文字,用来帮助你快速找到与你目前阅读内容有关的其他信息,指出应避免的典型错误、最佳实践中容易忽视的盲点,或查找书中提到的定量的支持信息。
5.有关快速开发的新思路
在软件开发领域,快速开发方面的谈论颇多。最近许多毫无价值的开发方法都打着“快速开发实践”的招牌,开发人员对这些所谓的“开发实践”非常气愤。尽管有些“实践”也还是有用的,但它们真正的作用被开发人员的冷嘲热讽所掩盖。
每种工具的提供者和每种方法的倡导者都想让人相信,他们的工具与方法可以满足你在开发中的所有需要。而本书的目的,就是指导你正确分析快速开发方面的各种资源,就像要将小麦从谷壳中分离出来一样,帮助你找到快速开发的真谛。
本书提供了一个可操作的模型,该模型可以帮助你客观地分析快速开发的工具,以及决定怎样将其为你所用。当一个人来到你的办公室说:“我刚从GigaCorp公司获知,一种功能强大的新型工具可以将我们软件开发的时间缩减80%!”你可能想知道这时你应该有何反应。我无需讲述任何有关GigaCorp公司和它们新型工具的内容,当你读完本书的时候,你就会知道这种时候应该提什么样的问题,应该如何一分为二地判断GigaCorp公司这种说法的可信程度,以及你如果决定采用这样的工具,应该怎样将它们集成到你的开发环境中去。
与其他的快速开发书籍不同,我并不要求你将所有的鸡蛋放到同样尺寸的篮子里。我认为不同的项目具有不同的需求,而一种方法很难解决项目计划中的所有问题。我一直以不能说是刻薄,也至少是挑剔的眼光看待这些快速开发实践的有效性,并一再假设这些实践不能很好地工作。书中我也再访了一些曾大肆宣传的实践方法与工具,即便它们没有以前宣传的那样有用,但对其真正有用部分还是应该倡导的。
6.为什么本书会这么厚
信息系统、办公软件、军事应用以及软件工程领域的开发人员都各自发现了一些有价值的快速开发实践方法,但不同领域的人员之间可能很难彼此交流经验。本书从各个领域收集最有价值的实践活动,很多快速开发的资料是首次汇总在一起。
是否每个想了解快速开发的人都有时间读完这几百页的书呢?可能性很小,大多是读到一半的时候可能就不得不简化那些无关紧要的部分了。作为补救措施,我将本书的结构组织成便于快速阅读与选择性阅读的形式,在旅行途中或等车期间,也可以只翻阅一下简短的摘录部分。第1章和第2章包含有理解快速开发产品所必须的一些内容,读完这些章节后,你就可以任意选择自己感兴趣的部分来阅读了。