锁定老帖子 主题:初识ESSUP
该帖已经被评为精华帖
|
|
---|---|
作者 | 正文 |
发表时间:2006-09-20
整理一下偶的笔记: 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%,大约是想让大家对他要有信心的意思。如果没讲全的,今天也到场的同学可以补充一下啊。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2006-09-21
引用 纵观Card和Card Borad,还真有点面向方面的感觉,从不同的正交的方方面面对过程进行分解,又根据一些规则(Card Borad)有效的组织起来。将面向方面的想法运用于实践之中,也是Ivar的宣传之一。 Card和Card Borad怎么就面向方面了? 引用 这个Card Game就是一系列的卡片,不是普通的白板,而是按照特定格式定制的特定的卡片,从需求、架构、用户故事,测试用例到开发,等等都可以用到这些卡片,每一步都有对应的卡片,每个卡片都有两到四页的Guidelien来指导你怎么做,填写这张卡片你该具备哪些技能,你需要参考哪些书籍,或者有更详细的内容向你解释如何来使用这张卡片。不是所有的卡片你都用上了才行的,每个项目可以针对自己项目的特点来定制一些需要的东西。至于到了具体的开发阶段,估计这些卡片的用法就完全可以和敏捷开发中那些卡片的使用方法一样了。 这些卡片如果是一张张的没有秩序的堆在一起的话,就不能称之为game了,真正的game是需要把这些卡片有机的组合在一起的。于是就有了Card Board,这也是我比较感兴趣的东西。Card Board从另一个角度进行了有条理的划分,当你把所有的卡片按照一定的顺序放到对应的Card Board上去了,就意味着你的过程在一步步按步就班的进行着。具体怎么组合,那段讲的比较快也比较含糊,估计也不是一两句话就可以搞定的。我估摸着,难度最大的就是如何Play Game了,所以大家应该花钱请Ivar给大家讲怎么用才能做出好的软件来。果然,后来Ivar提到Card Borad又叫过程内核(Process Independent kernel),可见是很重要的东西。 看了半天,还是面向过程的。 Aspect一般是declarative的,和顺序无关。 |
|
返回顶楼 | |
发表时间:2006-09-21
赫赫,mochow也去了,比俺写得好。
本来俺是想问关于显式知识和隐式知识的,不过从Ivar大师的演讲中,不强调文档化,只强调它的存在,而不强调它的形式,感觉他是认同了隐式知识。所以改问Alphas和Betas的区别了,Alpha被他抽象到了哲学层面,快成了不可说的东西。 大师确实给人精力充沛的感觉,思维活跃,阐述精辟,同他的实际年龄不符,而且很幽默,风趣,大家风范啊。 buaawhl 写道 引用 纵观Card和Card Borad,还真有点面向方面的感觉,从不同的正交的方方面面对过程进行分解,又根据一些规则(Card Borad)有效的组织起来。将面向方面的想法运用于实践之中,也是Ivar的宣传之一。 Card和Card Borad怎么就面向方面了? 引用 这个Card Game就是一系列的卡片,不是普通的白板,而是按照特定格式定制的特定的卡片,从需求、架构、用户故事,测试用例到开发,等等都可以用到这些卡片,每一步都有对应的卡片,每个卡片都有两到四页的Guidelien来指导你怎么做,填写这张卡片你该具备哪些技能,你需要参考哪些书籍,或者有更详细的内容向你解释如何来使用这张卡片。不是所有的卡片你都用上了才行的,每个项目可以针对自己项目的特点来定制一些需要的东西。至于到了具体的开发阶段,估计这些卡片的用法就完全可以和敏捷开发中那些卡片的使用方法一样了。 这些卡片如果是一张张的没有秩序的堆在一起的话,就不能称之为game了,真正的game是需要把这些卡片有机的组合在一起的。于是就有了Card Board,这也是我比较感兴趣的东西。Card Board从另一个角度进行了有条理的划分,当你把所有的卡片按照一定的顺序放到对应的Card Board上去了,就意味着你的过程在一步步按步就班的进行着。具体怎么组合,那段讲的比较快也比较含糊,估计也不是一两句话就可以搞定的。我估摸着,难度最大的就是如何Play Game了,所以大家应该花钱请Ivar给大家讲怎么用才能做出好的软件来。果然,后来Ivar提到Card Borad又叫过程内核(Process Independent kernel),可见是很重要的东西。 看了半天,还是面向过程的。 Aspect一般是declarative的,和顺序无关。 我理解AOP在EssUP中的应用,是把过程的本质东西和扩展东西分离。 比如Alphas和Betas。Betas扩展Alphas。Cards和对Cards的描述,还有对Cards描述的扩展,大量的书籍。 Game Board 同 Cards的关系更像插件的关系,当然也可以认为是一种扩展关系。 |
|
返回顶楼 | |
发表时间:2006-09-21
buaawhl 写道 Card和Card Borad怎么就面向方面了? 嘿嘿,我就是打个比方,对于AOP我的理解很粗浅,就是它最原始的意思,大致是将一些独立的东西和其他东西分离出来,比如,我觉得初中数学里学习的因式分解大概就算做一种AOP。这方面我是文盲,欢迎所有人就这个问题来教育我。 在ESSUP里就有两个方向的分离,一个是Card Borad这个方向的,这应该是从过程的结构方面入手进行方面的分离,一个Card Borad可以看做是一个方面。每个Borad都需要你去放置填充对应的Cards。而Card,则是从另一个方向对过程中的每一步涉及到的具体的相互可以独立方方面面进行分离,最后分离成一个个的基本元。 引用 看了半天,还是面向过程的。 Aspect一般是declarative的,和顺序无关。 本来就是用来描述过程的东西啊,不管使用什么手段其结果就是为了将一个过程描述清楚,只不过,ESSUP选择了用Card Game来完成它。所谓的面向方面我想只不过是手段而已。如果用一个三维空间来描述一个过程,那么这三个坐标可能是:Card, Card Borad和Life cycle of the Project。 |
|
返回顶楼 | |
发表时间:2006-09-21
partech 写道 赫赫,mochow也去了,比俺写得好。
本来俺是想问关于显式知识和隐式知识的,不过从Ivar大师的演讲中,不强调文档化,只强调它的存在,而不强调它的形式,感觉他是认同了隐式知识。所以改问Alphas和Betas的区别了,Alpha被他抽象到了哲学层面,快成了不可说的东西。 大师确实给人精力充沛的感觉,思维活跃,阐述精辟,同他的实际年龄不符,而且很幽默,风趣,大家风范啊。 啧啧,你就是那个问Alpha Beta的家伙啊,我当时还在感叹呢,我自己一直觉得听得人有云深不知处的感觉,居然有人跳出来问Alpha和Beta这么detail的问题,看来是很有认识啊。 |
|
返回顶楼 | |
发表时间:2006-09-21
mochow 写道 最后结束之前,Ivar讲了自己的一个小故事,说1987年他从爱立信辞职,用8000美刀创建了自己公司,雇用了三个职员,不久他写了一篇论文,并借此去参加一个会议,在那个会议上,他进行了一个二十分钟的演讲,结果会上所有的人都很兴奋,因为他是唯一一个讲商业软件开发实践的人,其他的人都讲国防啊啥的,于是Ivar回去之后很兴奋,告诉他的职员要满怀信心,并立下雄心壮志,将来要占有市场3%的分额,然后他很得意,说3%可是个很大的数目哦,之前他提到过一个乜乜的分额现在是20%,我估摸着他的意思是当初想着3%已经够雄心壮志了,结果后来到了20%,大约是想让大家对他要有信心的意思。如果没讲全的,今天也到场的同学可以补充一下啊。
俺咋听成他说有3%的机会能影响整个软件业了聂? 因为在瑞典,默默无闻的他,不可能推广自己的思想,所以他来到了软件业发达的美国,曲线救国。没想到3%的机会真的给他抓住了。 |
|
返回顶楼 | |
发表时间:2006-09-21
Ivar的深圳行,导致EssUP今天爆热,嘿嘿
根据前期看的一些资料,感觉基本上Ivar关于Essup的why、what论述的比较清楚了,但how的论述似乎还很单薄,而mochow、partech两位的“笔记”仍然对how语焉不详,似乎需要更多实践案例来呈现how的问题--尤其是对EssUP这样“可定制的”软件过程? “八个核心要素”,或者说5个技术实践+3个社会工程学相关实践,应该是EssUP最核心的内容,目前说明的也不够详细,今后EssUP应该围绕它们展开实践的,形成具体的实践方法、工具等,并转化成生产力,希望EssUP对它们的注解不是庞大的文档。 对EssUP这股“新风”还是有所期待。 |
|
返回顶楼 | |
发表时间:2006-09-21
how?没有how怎么实践
XP能火主要因素也是以how开头吧 |
|
返回顶楼 | |
发表时间:2006-09-21
抛出异常的爱 写道 how?没有how怎么实践
XP能火主要因素也是以how开头吧 Ivar在提出EssUP以来,一直还在改进,目前我感觉关于how阐述的不足,或许很快会充实起来。 EssUP虽然有大量敏捷元素,但毕竟不是传统的“敏捷方法”(或过程),思路肯定是有所不同的。 |
|
返回顶楼 | |
发表时间:2006-09-21
如果是对XP+CMMI的所有方法的筛选
没有新的发明而说自己是新东西。。。。 那么就与骗钱无异了 发明与优化总结是不同的 |
|
返回顶楼 | |