第2章 态度决定一切

选定了要走的路,就是选定了它通往的目的地。

——Harry Emerson Fosdick(美国基督教现代主义神学家)

传统的软件开发图书一般先介绍一个项目的角色配置,然后是你需要产生哪些工件(artifact)——文档、任务清单、甘特(Gantt)图等,接着就是规则制度,往往是这么写的:汝当如此①这般……本书的风格不是这样的。欢迎进入敏捷方法的世界,我们的做法有些不同。

① 或更通俗地写成:系统应当如何如何……。

例如,有一种相当流行的软件方法学要求对一个项目分配35种不同的角色,包括架构师、设计人员、编码人员、文档管理者等。敏捷方法却背道而驰。只需要一个角色:软件开发者,也就是你。项目需要什么你就做什么,你的任务就是和紧密客户协作,一起开发软件。敏捷依赖人,而不是依赖于项目的甘特图和里程表。

图表、集成开发环境或者设计工具,它们本身都无法产生软件,软件是从你的大脑中产生的。而且它不是孤立的大脑活动,还会有许多其他方面的因素:个人情绪、办公室的文化、自我主义、记忆力等。它们混为一体,态度心情的瞬息变化都可能导致巨大的差别。

因此态度非常重要,包括你的和团队的。专业的态度应该着眼于项目和团队的积极结果,关注个人和团队的成长,围绕最后的成功开展工作。由于很容易变成追求不太重要的目标,所以在本章,我们会专注于那些真正的目标。集中精力,你是为做事而工作。(想知道怎样做吗?请见下一页。)

软件项目时常伴有时间压力——压力会迫使你走捷径,只看眼前利益。但是,任何一个有经验的开发者都会告诉你,欲速则不达(我们在第15页将介绍如何避免这个问题)。

我们每个人或多或少都有一些自我主义。一些人(暂且不提他们的名字)还美其名曰“健康”的自我主义。如果要我们去解决一个问题,我们会为完成任务而感到骄傲,但这种骄傲有时会导致主观和脱离实际。你也很可能见过设计方案的讨论变成了人身攻击,而不是就事论事地讨论问题。对事不对人(第18页)会让工作更加有效。

反馈是敏捷的基础。一旦你意识到走错了方向,就要立即做出决策,改变方向。但是指出问题往往没有那么容易,特别当它涉及一些政治因素的时候。有时候,你需要勇气去排除万难,奋勇前进(第23页)。

只有在你对项目、工作、事业有一个专业的态度时,使用敏捷方法才会生效。如果态度不正确,那么所有的这些习惯都不管用。有了正确的态度,你才可以从这些方法中完全受益。下面我们就来介绍这些对你大有裨益的习惯和建议。

目录