见着大师了,不过好象没怎么激动,Ivar没照片上那么老,看起来年轻的很,精神的很,一直都面带笑容,刚去的时候他站在门口对每个来的人打招呼,我hello,hello的支吾着就进去了,没带相机啊。听了一下午,我一向听课都爱打瞌睡的,这次还好,一直坚持下来了,涂抹了点笔记,算是小有收获。中间茶歇的时候,端着咖啡和点心正准备躲在一个桌子旁边大吃一顿,结果,Ivar端着杯咖啡直奔了过来,叽里咕噜的说了一句,偶僵硬的面带笑容,完全没听清他说啥,头脑里一片空白,一脸迷惑的看着他,请他又说了一遍,晕,还是没听清,他只好又说了一遍,这才听清,真是见鬼了,然后他问偶英语是不是很好,我说not good,哈哈,大概是在他问Yes/No的问题的时候偶很积极的举手吧。然后偶扯了一两句Card Game,夸了几句,然后短路,然后偶开始低头吃点心,哈哈,老头站了一会儿,发现我没动静,喝完那杯咖啡,溜达走了,他走后偶反省了一下,发觉的确是没话说想对他说,也没啥好问的,想问的问题估计他也一时半会解释不清楚,跟他瞎掰活吧,还真费劲用蹩脚的英语跟人聊天,总不能一上去问他吃饭没吧,晕。
整理一下偶的笔记:
ESSUP的号称是下一代软件开发方法学,集Unified Process, CMMI以及Agile Method的优点于一体。Ivar本来是整UP的,后来又加上后面那两个,大概是因为他意识到在中国和印度CMMI很流行,加上这个将有利于扩大他公司的咨询业务,同时敏捷貌似已是大势所趋,他自己也承认UP is too heavy,因此把这三者一起提出来,更能吸引中国boss们的眼球。当然Ivar自己的说法则是,ESSUP是站在三个巨人的肩膀之上,从UP学来的structure,从敏捷阵营学来的Agility以及从CMMI学来的process improvement。
UP和CMMI是跟过程有关的,而Agile Method则是跟具体的开发实践有关系。我理解的ESSUP就是把UP和CMMI的并集找出来,同时加入一些符合Agile开发的特性在里头,然后寻找一种表达方式,使它能够把三者所有要表现的方面都表达出来,然后就有了Card Game的概念。当然Ivar应该也不是因为敏捷流行就跟风才承认敏捷的,肯定也是意识到了敏捷的好处,演讲的时候多次提到实践第一,过程第二。
这个Card Game就是一系列的卡片,不是普通的白板,而是按照特定格式定制的特定的卡片,从需求、架构、用户故事,测试用例到开发,等等都可以用到这些卡片,每一步都有对应的卡片,每个卡片都有两到四页的Guidelien来指导你怎么做,填写这张卡片你该具备哪些技能,你需要参考哪些书籍,或者有更详细的内容向你解释如何来使用这张卡片。不是所有的卡片你都用上了才行的,每个项目可以针对自己项目的特点来定制一些需要的东西。至于到了具体的开发阶段,估计这些卡片的用法就完全可以和敏捷开发中那些卡片的使用方法一样了。
这些卡片如果是一张张的没有秩序的堆在一起的话,就不能称之为game了,真正的game是需要把这些卡片有机的组合在一起的。于是就有了Card Board,这也是我比较感兴趣的东西。Card Board从另一个角度进行了有条理的划分,当你把所有的卡片按照一定的顺序放到对应的Card Board上去了,就意味着你的过程在一步步按步就班的进行着。具体怎么组合,那段讲的比较快也比较含糊,估计也不是一两句话就可以搞定的。我估摸着,难度最大的就是如何Play Game了,所以大家应该花钱请Ivar给大家讲怎么用才能做出好的软件来。果然,后来Ivar提到Card Borad又叫过程内核(Process Independent kernel),可见是很重要的东西。
就算他们把卡片分到对应的Card Borad去了,不同卡片之间的关联,不同Card Board中Card之间的关系,Card Borad之间的关系等等,不知道如何管理和表述这些?我想这也是Ivar提到的想要过程工程师和开发工程师双方都满意的原因吧。Card和Card Borad应该也是需要人来维护的,说不定还有一套很复杂的东呢,不过今天好象是开发工程师的天下,除了一个人之外,所有的听众都希望开发工程师happy,呵呵。
纵观Card和Card Borad,还真有点面向方面的感觉,从不同的正交的方方面面对过程进行分解,又根据一些规则(Card Borad)有效的组织起来。将面向方面的想法运用于实践之中,也是Ivar的宣传之一。这个卡片好象说是和Eclipse,Word,可能还有Rational集成了,可以利用它们画电子卡片,也可以把电子模板打印出来变成纸版的卡片,这个好处就是更加直观。Card不一定要求文档化,可以根据自己的需要进行文档化。
接着Ivar讲了Intelligent Agent,这是一个软件系统,在软件开发中的作用类似于GPS的导航系统,对于开发人员来讲,它相当于结对编程中的另一个成员一样,可以和你做结对用例,结对架构等等。Ivar说很多人买他的书,但是他知道买他书的绝大多数人不会去看的,他说这是人的天性使然,有了Intelligent Agent,不愿意看书也没关系,Intelligent Agent可以指导你下一步该怎么做。理解了你的目标,你的职责,要执行的High-level task,以及你目前的状态等等,Intelligent Agent可以帮你做迭代计划,架构,用例,它是:
1)Active Guide
2) Active Review
3)Active Automation
具体怎么用还没有具体的概念。
Ivar多次提到了八个核心要素,其中有五个(Iterative,Architecture,Use Case,Component,Modelling)是开发和技术实践方面的,另外三个(Product,Process,Team)则是社会工程学以及其他一些相关实践方面的。这八个方面可以相互分离单独的实现。
后来有人提问,问到了Alpha和Beta之间的区别。Ivar讲了一大堆,我最后的理解就是Alpha就是一个项目中最重要要的基本的核心的要素,并且是抽象的,一个Alpha可以有Sub-Alpha,而Beta则是Alpha的注解,实现和细化。比如你将要实现的系统,backlog以及风险等等都是Alpha。每个Alpha都有一套自己的beta。比如一个项目的beta可能包括项目计划,风险的beta可能是一个风险列表等等。一般有八个Top Alpha,每个Top Alpha都可能有自己的Sub-Alpha,这是由具体的实践来决定的。Beta是Alpha的Evidence,Beta似乎也可以有自己的Sub-Beta。Alpha和Beta是什么,就是写在Card上的内容呀。
接着Ivar在回答别人的提问的时候大致说了一些Agile Team方面的东东,他说社会工程学是第一位的,然后是轻量级的实践,这种轻量级的实践中,文档很粗略,需要能力很强并且经验丰富的人,最后列举了些敏捷开发的实践比如TDD,Refactor,User Story TDD等等。这阶段因为接近尾声,精神比较涣散所以听的不太仔细。
最后结束之前,Ivar讲了自己的一个小故事,说1987年他从爱立信辞职,用8000美刀创建了自己公司,雇用了三个职员,不久他写了一篇论文,并借此去参加一个会议,在那个会议上,他进行了一个二十分钟的演讲,结果会上所有的人都很兴奋,因为他是唯一一个讲商业软件开发实践的人,其他的人都讲国防啊啥的,于是Ivar回去之后很兴奋,告诉他的职员要满怀信心,并立下雄心壮志,将来要占有市场3%的分额,然后他很得意,说3%可是个很大的数目哦,之前他提到过一个乜乜的分额现在是20%,我估摸着他的意思是当初想着3%已经够雄心壮志了,结果后来到了20%,大约是想让大家对他要有信心的意思。如果没讲全的,今天也到场的同学可以补充一下啊。
分享到:
相关推荐
初识C++ 初识C++ 初识C++初识C++初识C++初识C++初识C++
初识云计算初识云计算初识云计算初识云计算初识云计算初识云计算初识云计算初识云计算
python 列表初识,通过此代码,你能够了解到python的列表操作
jvm初识及JIT优化jvm初识及JIT优化jvm初识及JIT优化jvm初识及JIT优化jvm初识及JIT优化jvm初识及JIT优化jvm初识及JIT优化jvm初识及JIT优化jvm初识及JIT优化jvm初识及JIT优化jvm初识及JIT优化jvm初识及JIT优化jvm初识...
三年级信息技术课程《初识画图》课件内容 因为要参加比赛,所属机房 装不上
初识JavaScript(源代码)初识JavaScript(源代码)初识JavaScript(源代码)初识JavaScript(源代码)初识JavaScript(源代码)初识JavaScript(源代码)初识JavaScript(源代码)初识JavaScript(源代码)初识...
"初识计算机PPT课件" 计算机的基本概念: 计算机是一种电子设备,能够执行用户的指令,进行数据处理和存储。计算机的种类很多,可以分为台式计算机、便携式计算机、掌上计算机等。 台式计算机: 台式计算机是一...
初识C语言.pdf
初识ERP初识ERP
【初识Excel教学设计】 Excel是一款广泛应用于数据管理和分析的电子表格软件,对于初学者来说,理解其基本功能和操作是至关重要的。本教学设计针对初中信息技术课程,旨在引导初一学生逐步熟悉Excel,帮助他们建立...
### 数据结构的基本概念 数据结构是计算机存储、组织数据的方式。它旨在使数据的存取和处理更加高效。数据结构通常由数据对象和数据关系两部分构成。数据对象是指具有相同数据类型的元素的集合;...
#### 实验一:Windows 进程初识 ##### 实验目的 1. **学会使用VC编写基本的Win32 Console Application(控制台应用程序)**: - 通过本实验,学生将了解如何在Visual C++ 6.0环境中创建控制台应用程序。 - 掌握...
初识数据安全系列语音教程
【初识画图软件】是针对小学信息技术课程的一份详细说课稿,旨在引导学生入门基本的电脑绘画技能。这份教案以人教版小学信息技术第一册的第十课为背景,内容包括教材分析、教法、学法、教学准备以及教学过程。 首先...
在头歌平台初识Redis的答案可以总结如下: 一、基础知识 Redis数据库数量: Redis默认有16个数据库,可以使用select命令进行切换。 数据库大小与键的查看: 使用DBSIZE命令查看当前数据库的大小(即键的数量)。 ...
本课是中学信息技术-_《初识Excel》PPT课件.ppt 的课件
一站式学习Redis 从入门到高可用分布式实践(九) 包含Redis基础,使用经验介绍、Java,Python客户端示范、Redis使用规范,由浅入深讲解并伴有企业中Redis开发的相关项目以及大规模Redis的实战经验,是开发和运维...
根据提供的文件内容,本节课的主要内容是让学生初识数据结构,并理解算法的三种基本控制结构,包括顺序结构、分支结构和循环结构。同时,通过与学生生活紧密相关的实例,引导学生认识数据结构的概念和常见的数据结构...
这个“MATLAB初识神经网络”视频教程是为那些想要入门神经网络学习者设计的,它将引导你逐步了解神经网络的基本概念和MATLAB中的实现方法。 神经网络,作为人工智能的重要分支,模仿了人脑的结构和功能,通过大量的...