本文讲述敏捷方法诞生的故事,集中于敏捷宣言发起者在思考模式转变过程中的角色变化。以深入采访17名敏捷宣言发起者中的12位为依据,我们将描述技术驱动的力量怎么会使得敏捷方法引起文化的变革。我们会介绍发起者孩提时代的背景,他们在构想出敏捷宣言之前的主要职业活动,以及敏捷宣言制订的过程。我们希望在本文中传达的一则主要消息是:虽然敏捷宣言的发起者是由技术主导的,但实际上,软件社区倾心于敏捷的原因却是由于敏捷宣言注重人性的方面。这则讯息说明了在采用敏捷软件开发的过程中,应该强调什么样的人性面及方法、实践及工具。
1. 介绍
敏捷软件开发给软件工程引入了一种新的模式。这种模式认可了关于软件开发过程的新方法、新实践和工具、新价值、新行为、新观念和新视角。 此外,敏捷方法带来的软件开发环境的改变并不局限于开发人员;它还包括管理人员、客户以及项目的其他利益相关者。
显然,敏捷方法已经在软件开发社区成为主流方法[1]。从管理和技术角度去调查敏捷软件开发的诞生,会产生这样的问题:这种思考模式的转变是怎么开始的?在它演进的背后,主要力量是什么?它是如何演进的?它是 想像出来的吗?
为了解答其中一些问题,我们采访了17位软件从业人员中的12位,2001年2月,他们在犹他州瓦萨奇山脉的一个滑雪胜地举行了一个为期3天的会议,制订了敏捷宣言(http://www.agilemanifesto.org/),并致力于讨论广大从业人员对软件开发的共同见解。那次会议的主要成果是决定使用术语“敏捷”来表达共同性,并制订了敏捷宣言。
敏捷宣言的制定表达了以人为本的思想和文化变革。但是,根据对采访内容的分析,揭示出敏捷宣言的发起者实际上是由技术力量驱动的,文化变革不是他们的明确意图;相反,敏捷宣言在人性、组织以及文化方面的理念,赢得了当时的软件业。换句话说,敏捷软件开发引发的文化变革是故事的结尾,而该故事是以技术为中心的意图推进的。本文讲述这个故事的主要参与者——敏捷宣言发起者的叙述。这个故事以匿名形式复述采访内容,不提及个人资料;用序号表示发起者。
2. 数据搜集和分析
数据搜集自对敏捷宣言发起者(以下简称为“发起者”)的采访。附录提供了采访问题。每次采访持续大约1.5小时。
2007年8月采访了10位发起者(9人在2007年的敏捷大会上采访,另一个在北美的其他地方采访),有2名发起者通过电子邮件采访。其余5名发起者要么拒绝采访,要么联系不到。
由于数据基于12次采访,因此这种情况下,统计分析是没有意义的。相反,我们采用了定性的方法——内容分析法,这种方法是定性研究普遍使用的分析方法。分析过程利用了本文作者不同专业学科的优势,让我们可以从两个方面考察这个主题:一个是行为和心理方面,另一个是技术方面。
在定性分析方法的指导下,以下故事主题基于采访分析获得。因此,并非所有对采访问题的回答都会在本文中给出。只有相关的主要主题才会予以介绍,并通过说明性的引述给予证实。
3. 敏捷宣言发起者的故事:从技术领导者转变为文化变革的社区领袖
这部分介绍敏捷宣言发起者如何从技术领导者转变为文化变革领袖的故事。故事按照发起者生活的3个阶段划分:在敏捷宣言制定前,孩提时代及软件从业阶段(第3.1部分);转折点——敏捷宣言的创立(第3.2部分);以及现在,成为文化变革领袖后(第3.3部分)。
3.1 在创建敏捷宣言之前:技术驱动的力量
我们把发起者创建敏捷宣言前的生活分成两个阶段:孩提时代(第3.1.1)及职业生涯阶段(第3.1.2)。
3.1.1 童年
根据发展心理学,童年经历会塑造一个人未来的表现。因此,我们关注一些发起者孩提时代的事情,找出他们成长方式的相似之处,以便探索他们小时候的特殊经历是否会影响他们未来的活动。
我们发现,大多数发起者在这样的家庭中长大:父亲是自由职业者; 母亲通常是家庭主妇,爱好阅读,有其他艺术或文化相关的嗜好。大部分发起者在他们童年时代搬过多次家,住过几个不同的地方;因此,他们在小时候就得学会应对变化。而且,他们在家里由非常相似的价值受到启发。现在,我们详细阐述和说明发起者童年时代的这些相似性。
例如,从一个地方搬到另一个地方的现象(不提及具体地名以维护道德准则),像这样表示:
[1]:我出生在华盛顿。
问:从那以后你离开过吗?
答:数百次。
[4]:我出生在北卡罗来纳的[城市名]。……它是北卡罗来纳最大的城市之一。……嗯,其实我只在那儿住了一段时间,然后从儿童早期开始, 我分别在[城市名]和[城市名]住了几年,我在[州名]住了一段时间,然后从[年龄]5、6岁到11岁,生活在农场。
父母的职业似乎非常相似。我们有10名发起者中9人母亲的信息,他们都有富有创造力的母亲,鼓励教育。他们的父亲都是自由职业者,从事工程(4人)、商业(3人)、科学(2人) 以及医学(1人)。如同在下面的引述中他们所指出的一样,这种双重视角影响了他们未来的动向。
[8]:我母亲就是一位母亲,家庭主妇……我想我母亲对我的影响很大,甚至包括我对阅读的喜爱。我父母都重视教育。
[4]:我想我从我的工程师父亲那里遗传了部分分析能力,从我母亲那里继承了部分社会组织发展能力的东西。
[5]:嗯,我父亲思考问题很理论化,他在日常生活中非常喜欢实践。……我母亲……口才很好,我从她那里继承了这一点,她会让我去美术馆,去跳舞,去剧院。……这同我做的一些事情联系到了一起,我喜欢与人打交道。
他们受到的教育教会他们正确地做事:
[1]:大家期望我们表现良好。
[8]:经常可以听到“去清理你自己的房间”,“你要在学校里好好表现”,“老师是权威,要重视老师。”
[10]:创造力,[即]用自己手头的资源去完成需要做的事情。自力更生。坚持不懈。教育的意义是学习事物如何运作,不一定要在正式环境中。
所有发起者都是从小就有技术偏好,下面的引述描述了这种情况:
[6]:我的爱好,小时候我对电子器件、视频、音响这样的东西真地十分感兴趣。
3.1.2 技术专家
大学里,大多敏捷宣言发起者学习计算机科学或电子工程学。他们的童年和学生时代都受到了技术人员的影响。这种影响会在这小节里进一步阐述,我们会具体说明他们在敏捷宣言概念化之前工作过的技术课题。这种例证进一步加 强了敏捷宣言的创立是由技术力量驱动的论据,如下引述所说:
[8]:[软件从业人员] 曾经谈起过敏捷方法是由喜欢编程的人发展出来的,我认为那是事实。所以敏捷方法是非常自下而上、程序员驱动的。
具体来说,在敏捷宣言制定前,发起者的工作集中在3个相关课题——Smalltalk,面向对象的开发和模式上。接下来,我们将介绍他们在这些课题上的工作如何导致一些敏捷实践的诞生,乃至建立社区以分享软件开发过程的类似想法。
总体来说,Smalltalk、面向对象的开发及模式,激发了一种信念,那就是需要有一种不同于当时普遍采用的软件开发方法的出现。例如,使用Smalltalk工作促进了一种不同的开发方式,如以下引述所说:
[8]:敏捷宣言的编写者们引人注意的一件事情是,他们中有多少人知道Smalltalk这门编程语言。我认为,敏捷开发风格的根源可以追溯到非常灵活的编程环境上,特别是Smalltalk,它起源于70年代末、80年代初,同时还有开发风格,可以追溯到Lisp编程语言的特征,它起源1957年。这些是我所知的最早的事情。
[11]:Smalltalk的项目生命周期是迭代、渐进和有机的。我可以尝试我的想法并看看效果如何,而不是预先想好所有事情,这让我感觉自在得多。
[9]:Smalltalk似乎是一门干净、简单、强大的语言。它完全是为了表达我所想表达的想法而设计的一门计算机语言。……就像我们刚才所说的,Smalltalk交互性很强,嗯,让我们用它编写程序看看。所以,我们不会在编程前,只在白板上工作,争论什么是正确的想法,相反,我们会说,让我们先编程看看。……我们想做那件事,那就让我们开始做,一头扎进去,完全同大家认为的方式相反。……所以你问,它是哪里开始的呢?那确实是根源。这是对于编程的喜爱。……Smalltalk真正发挥出这种爱。……然后我们说,哦,这里有些事情正在发生,它不是技术。
虽然Smalltalk被认定为实验室编程语言,但软件业开始使用面向对象的开发作为编程范式。当面向对象的开发被逐渐广泛使用时,一种合适的、不同于过程化编程的开发方法开始走红。
[6]:我被要求构建一个开发工具,可以将他们公司引领到适当的水平上,……在过程中利用面向对象的软件环境,可以加速开发过程。
[3]:我认为[敏捷开发]对面向对象的设计有一些影响,当人们[使用]……增量式开发,而不是试图[事先弄清楚所有需求]时。……我们没将其称之为敏捷,我们不知道它是敏捷。我们只是紧密地与客户合作。那大概是90年代中期。
[9]:嗯,有很多事情[有关面向对象开发]。一,进度安排很简单,因为我不担心依赖……由于我们[在面向对象的开发]中可以按照任何顺序去开发,因此所有这些大家担心的依赖就消失了……即使在今天,人们还是不相信这一点。
由于发起者对面向对象开发的兴趣,他们中一些人在OOPSLA会议【译者注:OOPSLA是Object-Oriented Programming, Systems, Language & Applications的缩写,是计算机协会的一个年度性会议,主题包括面向对象编程相关的系统、语言和应用。】上碰头并开始形成一个社区。
[4]:许多极限编程者从面向对象运动产生,因此他们有一个中心,他们的联络就在OOPSLA会议上进行——面向对象的会议。
模式也被认为是形成发起者取向和思维方式的课题,如下引述所说:
[6]:因此,80年代和90年代的整个软件运动是围绕模式思考发展的……
下面的引述把面向对象开发和模式联系到了一起:
[9]:在第二次OOPSLA会议时,……我想是第二或第三次会议时,我们开了一个研讨会,是关于对象设计的研讨会。我们只是走进去说到:这就是如何用模式去完成它,我们只是展示了……我们有信心。在场的每个人,大概有30人,聆听后说道:听起来有点道理。带着那种信心,在OOPSLA的研讨会上,我们开始着手建立一个社区,讨论模式如何运作。……我们有了第一次编程模式语言会议,PLoP会议【译者注:PLoP是Pattern Languages of Programming conference的缩写,PLoP会议的目的是开发精炼软件设计模式】。……模式和代码互相协调,我们仍然关注在代码上……我们说:我们正在用不同的方式做事。……设计模式的书籍在那时同时出版,而且,设计模式比任何敏捷书籍都成功。……因此,先有了对象,然后人们才开始了解模式。
在软件项目中,Smalltalk、面向对象开发和模式的实际应用产生了新的开发习惯和人机交互方式。这些新概念中的部分,后来被归入敏捷开发的伞下,就像下面的引述所说的那样:
[4]:首先我记得,在90年代初,那时不叫敏捷。当时我从事了一项称之为快速开发的项目。……一周一轮迭代……同客户一起……我们在1993年发布了第一篇相关的文章。
[5]:当时我们还没有敏捷这个单词,大家脑子里都没有。但有使用模式而成功的项目……大概是94、95、96年的时候,我……想讨论尝试使用轻量的过程,减轻这个过程,我有个术语叫面向对象的项目求生法则(surviving object-oriented projects)。
[9]:我们以像循环一样的方式做程序……甚至不知道怎么做……但我们觉得这非常重要……与争论相比,我们用各自的知识并缝合在一起在某种程度上是富有建设性的。……故而我们有过这样的循环,当我们有一个想法时,我们会先探索一天,如果我们取得进展,我们会再投入一天,然后在大约第三天,我们实际上做了重构,并清理我们在实验中所做的,让其看起来很干净。……我提出了整个方法,你们只要在卡片上写下笔记。有关卡片的好处是,你不需要那些复杂的图表去包罗万象,你可以抓住一件事情并讲述一个故事。……通过自觉地不做事先计划, 使我们能够自由地思考我们那一刻的感觉。
3.2 转折点:从技术驱动的领导者到文化驱动的领袖
OOPSLA、PLoP以及其他关注技术的会议,都是敏捷宣言发起者聚会的地方,并开始形成一个社区。正如下面所说的那样,这系列会议的高峰是 2001年的一次会议,创造了单词“敏捷”(Agile),并制定了敏捷宣言:
[5]:2001年的会议是我们所有人10年工作的结尾,那不是某样东西的起点或结束,而是正处其发展过程中。……它是之前故事的结尾;而不是新故事的开始。
本节的重点是2001年的会议。我们会考察用单个术语即“敏捷”来表达前面小节中出现的想法有什么样的重要性和影响。我们还提出,为何敏捷宣言使用以人为本的术语来制定,以及为何敏捷宣言跟人有关的方面会吸引当时的软件社区。
2001年会议的重要性,来源于这样的事实:它使用一个名字、一份宣言和一些领导者建立了一个社区,如下引述所示:
[4]:2001年2月,我们在雪鸟滑雪场相聚。我们是[不同方法]的代表者,我们知道我们都是独特的,但我们想要有一个统一性术语。
[11]:除了给出一个名字,我们的任务是回答一个问题:所有这些不同的方法有什么共同点?
[2]:我说,就让我们开这次会议吧,但我不想所有人都聚在会上一起讨论,我们应该制定出一个结果,后来事实证明宣言就是会议成果。
在实践中,一个不同于“轻量级”(lightweight)的名字被用于代表那种共同性。
[8]:轻量级是美式英语,隐含着不严肃、愚蠢、没有实际办事能力的意思,而且大家认为它不是一个良好的品牌,所以大家明确选择了敏捷一词,它比轻量级的牌子更具吸引力。
[4]:直到那时,大家广泛使用的词语是轻量级方法(Lightweight Methodologies),我们不喜欢它,所以我们把一些单词放到板子上,……有15~20个不同的词语,我们多少对这些词语做了点系统分析,并认定敏捷一词是最恰当的。
[6]:我不记得具体的那些词语了,……但敏捷是其中之一,我们选定敏捷就是我们要的单词。这就是敏捷一词是如何出现的。
虽然敏捷一词是在民主过程中挑选出来的,它也有一些缺点:
[11]:我认为敏捷是个无力的名字。没人不想变得敏捷,人们声称自己敏捷是没有成本的,但他们可以按照他们自己的方式行动。这个术语没有问责制。当时我的预测是,这个术语会淡化,不再代表任何意思。我期望大家都说他们是敏捷的,他们在许多方面会表现地与自己一贯的做法完全一致。一些人士和组织已经作出了很大变化,但总体上来说,术语敏捷并不包含很多意义。当你访问一家“敏捷”公司时,他们的价值和/或实践可以是五花八门的。
在创造敏捷一词以及发布敏捷宣言后,软件从业人员可以感觉到自己是社区的一部分,他们寻求一种全新的开发方法,并明确表示使用一个特定的名字来描述他们的开发过程。此外,人们可以登录到敏捷宣言的网站 (http://www.agilemanifesto.org/sign/display.cgi)并表达他们的支持;这一选项进一步扩大了社区的发展,可以从以下陈述中观察到这一点:
[8]:宣言所做的是它给出了一个名字,许多人风格上趋向于那个方向…… 它给出了一篇文档,只有一页长,人们可以看到并说:是的,这就是我的意思。而且他们可以签上自己的名字……我认为签名有很大影响。
[6]:现在,2001年发生了什么,通过让17位项目领导者聚集到一起并发布[宣言],突然间,出现了数以百计的论文和数以千计的书籍,因此,总的来说,忽然间我们有了敏捷市场营销机器,使得敏捷应用更快地激增。
[5]:不管怎么说,我们描述的是那么多人正在做什么,或者想做什么。这样他们来到我们的网站上并签上自己的名字,有数以百计的人过来注册。我们并没有指使任何人,很多人想要它,它出现的时候他们说:是的——那就是我一直想说的。
尽管敏捷宣言反映了某种实在的感觉,但从业者想要加入一个真实的社区。这种需求导致了敏捷联盟的成立,以及第一次敏捷大会的组织工作。
[7]:在2002年……我们在想:所有这些人都想推行敏捷宣言,他们想加入我们的行列……加入什么呢?没有什么可以加入的。然后我说,我们干吗不启动一个什么呢,我们可以称之为像敏捷联盟之类的,这样大家都可以加入进去,觉得他们自己是一部分。然后[组织]了第一次敏捷会议。
有趣的是,发起者没有预料到宣言引起的巨大反响:
[5]:我们预计的比实际的要少得多。……人们突然跳出来加入,是一个巨大的惊喜,我们中没人预计到5年后这变得如此普遍。
发起者对于敏捷宣言会产生的影响预期不大,但它实际的吸引力如此巨大,这之间的差距怎么解释呢?我们假设,导致这种差距的原因是敏捷宣言发起者和软件社区所持的角度不同。具体来说,当时发起者由技术力量驱动(如3.1小节所述),因此着重从技术角度去看敏捷宣言,而软件业则被敏捷宣言传递的文化信息所吸引,符合当时的行业需求。我们应该记得,在软件业仅仅几次有意义的活动之后,敏捷宣言就被发布了——千年虫,2001年高科技泡沫的破灭以及感到不满的客户,如下所述:
[6]:到2000年,军方抽样数据表明,投入项目的35亿美金中,75%的钱是完全、彻底的浪费,绝对失败,产出的软件从未被使用过。这种失败率是在大项目中使用传统项目规划造成的。
因此,假设软件业只是需要一些新的信息去依附是合乎情理的,而敏捷宣言传达的信息很适合。
确实,仍然需要解释的是,发起者的(技术)意图同实际制定以人为本的敏捷宣言之间的差距。这种差距可以用几种方式来解释。首先,以人为本的术语可以封装到区区几句句子中,表达所有发起者完全一样的精神,这种共性很可能无法使用技术术语来表达。其次,当敏捷实践开始应用时(甚至在创造术语前,就像3.1小节所示的那样),对软件开发有关人的方面的认识开始演进,并最终影响了敏捷宣言的制定,如下所述:
[6]:这里有一个巨大的背景……组织理论,心理学,动机以及……所有这些东西都融入到计算机科学中。
敏捷一词的迅速传播,以及敏捷宣言发起者没有打算领导文化变革的事实,可以解释为何没有举行后续会议,但是:
[12]:它是一个宣言,一套思想和哲学理论。17个人坐在一间房间里, 分享了几天经验。然后,在发布后,就是那样了。
[8]:一年半以后,实际上举行过第二次敏捷会议,依旧是这群人,减去了几个,加上了几个其他人……协议已经制定,我们无法再做什么事情,我们升起了帆就应该让它去吧。
3.3 在创建了敏捷宣言 之后:文化驱动的力量
敏捷宣言的发起者成为了敏捷社区的领袖(当然,后来有一些新的领导者产生,而有些发起者则不再是领导小组的一部分)。但是,如上所述,尽管他们的初衷是由技术驱动的,今天他们是文化变革的领袖,就如他们自己承认的那样:
[5]:我处在中间,实际上我们都在中间从事组织的发展工作,因为我们试图做敏捷开发,但这要求团队结构、汇报、谈话习惯、过程,任何这些东西都要改变。所以我们都是某种程度的前程序员(ex-programmers)……我们发现自己作为组织顾问,处在中间位置上。
[11]:我们已经发现,技术和社会技能的集合,对工作坊和咨询非常有效。
总结
通常认为,敏捷软件开发已演变为大家对软件项目成果不好的解决方案,大家都想采取实际并慎重的决定,去改变软件项目管理的模式。本文讲述的故事表明,这种说法可能只概括了产生敏捷软件开发的部分故事而已。本文强调这个故事的另一个方面,那就是技术力量促进了文化变革。事实上,快速浏览任何敏捷会议的大纲,你会发现它们都揭示了敏捷软件开发是文化和技术观念的混合物。
因此,敏捷宣言发起者可以看作是引发文化变革过程的推动者。应该记住,要不是当时的软件社区急需在开发过程中,对其技术和行为上的价值观及规范做出改。
最后,在这种情况下,我们提出几个问题,以突出本文的本质:启动文化变革,需要什么样的敏捷价值及原则?它们应该是技术导向的还是文化导向的?特别是,如果我们觉得我们的组织需要一次文化变革,通过技术变革发起变革是否是一个好的策略?当大型组织有很强的规划及中央集权文化时,需要什么样的敏捷方法、实践和工具去启动一项重大变革?
虽然一个答案未必适合所有组织,我们建议在考虑变革时,应该考虑(技术的和文化的)两个方向;但是,它们各自所占的份量,应该取决于组织的需要、状态和文化。一种选择是:从技术导向的变革开始(使用诸如短迭代和度量的实践),同时,开始日益重视文化问题,例如,通过促进定期的反思过程,让技术变革裹上人和文化的方面。这个观点的一个主要含义是,无论一个组织选择哪个方向作为其采用敏捷过程的第一个阶段,不能忽略其他方面,因为两者是紧密联系的。我们认为:仅仅认识到这一事实,就应该可以引导敏捷的同化过程。但是,正如前面提到的,采用敏捷的过程中,应该对组织实现敏捷过程的每个阶段进行特征分析,基于这种分析仔细检查每个方向应该占据的确切份量。
致谢
我们深深感谢Kent Beck、Alistair Cockburn、Ron Jeffries、Brian Marick、Bob Martin、Jeff Sutherland和其他敏捷宣言的发起者,他们与我们分享了自己对于出现敏捷软件开发的想法和反思。
关于作者
Orit Hazzan博士是Technion——以色列理工学院科学和技术教育专业的副教授。2004年5月,她出版了与已故的Jim Tomayko一起合作编写的《人力方面的软件工程》(Human Aspects of Software Engineering)。在2008年,施普林格【译者注:Springer,是德国一家世界著名的科技出版公司】出版了她 与Yael Dubinsky合著的第二本书《敏捷软件工程》(Agile Software Engineering)。在她进行研究工作的同时,她还是以色列 软件业几个软件项目的顾问。她在计算机科学和软件工程教育会议(例如SIGCSE),以及常规的软件工程会议(例如,ICSE软件工程大会)和专门的敏捷软件开发会议上(例如极限编程和敏捷会议)发表她的研究。
Tali Seger博士是以色列黑梅克黑费尔(Hemek Hefer)Ruppin学术中心管理商学院的工商管理学管理组织发展项目的负责人。在过去的1989-1998年,她在通讯公司担任人力资源经理和会员企业管理相关工作。她的教学和研究领域:组织心理学、组织中的情感、小组和团队心理动力学、战略人力资源管理。
Gil Luria博士是海法大学人类服务部社会福利及健康科学系的讲师,他主导了对组织氛围和文化的研究。他获得了Technion——以色列理工学院管理学院授予的博士学位。Gil对不同的组织进行了项目研究,从领先的制造公司和军事组织到小型工厂。这些研究报告发表在科学和专业杂志上,并被 几个组织中的实践者作为安全管理应用工具采用。他最近的研究重点是领导力与氛围的关系,以及一种新的文化模式来平衡变革。
附录——对敏捷宣言发起者的采访提纲
1. 突破软件开发的模式
1.1 您还记得敏捷软件开发的第一阶段是什么样的? 对您来说,什么是特别重要的?
1.2 怎样想出“敏捷”这一术语的?
1.3 请描述小组工作的过程。 你们开过几次会? 会议是什么样子的? 过程中是否有一个正式的经理? 请描述会议的氛围。
1.4 从想法的构思到初步执行,用了多久?
1.5 谁是第一个执行的(除了原来的17名发起者/人)?您和谁比较接近?与您合作的组织具有什么样的特点?
1.6 组织中提出反对意见的理由是什么? 组织中谁提出的这些意见? 您怎样处理这些反对意见?
1.7 在探索阶段,您的组织/管理顾问是否协助您规划行动计划并在全世界实施敏捷方法?
1.8 您对敏捷发展的方向有什么期望? 假如您在2000年被问及敏捷方法的接受程度时,您会做出怎样的预测?
1.9 在这个过程中,您面对过什么样的危机? 您认为有失败的可能吗? 如果有,是什么促使您去积极应对?
2. 职业感想
2.1 在您职业生涯的起始阶段,经历过什么亮点和困难(就您能想起的)?
2.2 您可以描述一下您的人际关系网的发展吗?您的职业网络是什么样子的?会议?通信?在您看来,和谁保持联系是很重要的呢?
2.3假设您和组织的顾问一起工作,您对这个职业怎么看?您是按照与组织顾问的联系结果去实施工作和管理方法的吗?
3.学生生涯
3.1 您事先是否知道在大学里会学习什么专业领域,或者您是否有过怀疑?如果有,是什么呢? 如果您当初没有学习软件工程有关的课题,你会选择学习什么?
3.2 还是学生时,您的特点是什么?您特别喜欢什么课程?
3.3 在您看来,您的同学会怎样描述您? 您当时的风格是什么呢?当您还是学生时,有什么特别的表现?
3.4 您喜欢怎样学习? 独自一人? 还是一组人一起?
4. 家庭背景
4.1 你出生在哪里(国家)? 城市/城镇/郊区/村庄?城市/农村/周边/中心?
4.2当您还是孩子的时候,喜欢玩什么?您的爱好是什么?您最喜爱什么运动?如果有的话,您在哪种圈子里玩(例如,体育俱乐部等)?
4.3 当您还是孩子的时候,您父母的职业是什么?
4.4 您和您父母在哪些方面相似?您认为谁影响了您的成长?您喜欢他们什么呢?什么个性最吸引你?
4.5当您还是孩子的时候,您记得您的家庭注重什么样的价值观吗?
[1] 出处:http://www.versionone.com/pdf/AgileMyths_BetterSoftware.pdf。
译者简介:石永超(Stone Shi),Irdeto BSS软件工程师,CSM,敏捷爱好者,《User Stories Applied中文版》译者之一。目前主要从事.NET开发。主要兴趣包括:民乐、羽毛球、旅游。