计算机专业文献翻译极限编程.docx
《计算机专业文献翻译极限编程.docx》由会员分享,可在线阅读,更多相关《计算机专业文献翻译极限编程.docx(48页珍藏版)》请在冰豆网上搜索。
![计算机专业文献翻译极限编程.docx](https://file1.bdocx.com/fileroot1/2023-1/22/8478a190-d405-4678-ac13-877645c70873/8478a190-d405-4678-ac13-877645c708731.gif)
计算机专业文献翻译极限编程
ExtremeProgramming(极限编程)
AswehaveexploredinseveralissuesofeAD,thetwomostpressingissues
ininformationtechnologytodayare:
正如我们在eAD的若干期中探究的那样,当今信息技术中最迫切的两个问题是:
Howdowedeliverfunctionalitytobusinessclientsquickly?
如何能快速地向商业用户交付功能?
Howdowekeepupwithnear-continuouschange?
如何才能跟上近乎连续的变化?
Changeischanging.Notonlydoesthepaceofchangecontinueto
accelerate,but,astheSeptemberissueofeADpointedout,organizations
arehavingtodealwithdifferenttypesofchange--disruptivechangeand
punctuatedequilibrium.Disruptivetechnologies,likepersonalcomputers
intheearly1980s,impactanindustry(inthecaseofPCs,several
relatedindustries),whileapunctuatedequilibrium-amassive
interventionintoanecosystemoraneconomy--impactsaverylarge
numberofspecies,orcompanies.TheInternet,whichhasbecomethe
backbonefore-commerceande-business,hasdisruptedawiderangeof
industries--moreapunctuatedequilibriumthanadisruption.
变化本身也在不断地变化中。
不仅仅是变化的速度在不断地提高,而且,如eAD的10月中所指出的,组织正在不得不应付各种类型的变化--
剧变与不断被打破的平衡。
产生剧变的技术,象在80年代早期的个人计算机,冲击了一个工业(PC机以及若干相关的工业)而不时打断的平衡--一个对生态系统或者对整个经济产生巨大影响的介入--则
影响了无数的物种,或者说,公司。
已经成为电子商务支柱的Internet,就已使大范围的行业产生剧变--更多的是打断的平衡而不仅仅是一次剧变。
Whenwholebusinessmodelsarechanging,whentime-to-marketbecomesthe
mantraofcompanies,whenflexibilityandinterconnectednessaredemanded
fromeventhemoststaidorganization,itisthenthatwemustexamine
everyaspectofhowbusinessismanaged,customersaredelighted,and
productsaredeveloped.
当整个商业模式正在发生变化,当"时间意味着市场"正成为公司的咒语,当适应性与互连性正在成为甚至是最呆板的组织的需要的时候,我们将有必要检查以下的每一个方面:
商业是如何管理的,客户为什么而感到高兴,以及产品是如何开发的。
TheExtremeProgrammingmovementhasbeenasubsetoftheobject-oriented
(OO)programmingcommunityforseveralyears,buthasrecentlyattracted
moreattention,especiallywiththerecentreleaseofKentBeck'snewbook
ExtremeProgrammingExplained:
EmbraceChange.Don'tbeputoffbythe
somewhat"in-your-face"monikerofExtremeProgramming(XPto
practitioners).AlthoughBeckdoesn'tclaimthatpracticessuchaspair
programmingandincrementalplanningoriginatedwithXP,therearesome
veryinteresting,andIthinkimportant,conceptsarticulatedbyXP.
There'salotoftalktodayaboutchange,butXPhassomeprettygood
ideasabouthowtoactuallydoit.Hencethesubtitle,EmbraceChange.
终极编程(ExtremeProgramming)运动成为面向对象编程这个团体的一部分已经有数年了,
但是直到最近才引起了越来越多的注意,特别是最近KentBeck的《终极编程释义:
拥抱变化》(ExtremeProgramming
Explained:
EmbraceChange)一书的出版。
千万不要因为终极编程(业内人简称为XP)这一称呼而对它产生反感。
尽管Beck没有说象配对编程(pairprogramming),增量式计划(incrementalplanning)之类的来源
于XP,但是仍然有一些非常有趣的,我认为也是很重要的概念可以借用XP来表达。
现有有许多关于变化的讨论,
但是XP却有许多如何实际去做的非常好的想法。
也就是这个副标题:
拥抱变化。
Thereisatendency,particularlybyrigorousmethodologists,todismiss
anythinglessponderousthantheCapabilityMaturityModel(CMM)ormaybe
theInternationalOrganizationforStandardization'sstandards,as
hacking.Theconnotation:
hackingpromotesdoingratherthanthinkingand
thereforeresultsinlowquality.Thisisaneasywaytodismisspractices
thatconflictwithone'sownassumptionsabouttheworld.
有一种趋势,特别在那些严格的方法论者中,希望剔除那些与"能力成熟度模型"(CapabilityMaturityModel
CMM)或者是国际标准化组织的标准相比不那么笨重的方法,比如象hacking.注释:
hacking推崇行动而不是思考从而导致了较低的质量。
剔除与某人关于这个世界的假设相冲突的实践,这倒不失为一种简单的方法。
Lookedatanotherway,XPmaybeapotentialpieceofapuzzleI'vebeen
writingaboutoverthepast18months.Turbulenttimesgiverisetonew
problemsthat,inturn,giverisetonewpractices--newpracticesthat
oftenflyinthefaceofconventionalwisdombutsurvivebecausetheyare
betteradaptedtothenewreality.ThereareatleastfourpracticesI
wouldassigntothiscategory:
从另一个角度来看XP,它倒可能是一个难题的某个潜在的部分,这个一个我在过去18个月中一直都在写的内容。
混乱的时期产生新的问题,而后者又导致了新的实践--新的实践公然违抗
传统的知识,但却得以幸存下来是因为它们能更好地适应这个新的现实世界。
至少有四种实践方式我觉得是属于这个范畴的:
XP--thefocusofthisissueofeAD
XP--eAD本期的焦点
Leandevelopment--discussedintheNovember1998issueofeAD
轻量级的开发(Leandevelopment)--已经在eAD199811月中讨论
CrystalLightmethods--mentionedintheNovember1999issueofeADand
furtherdiscussedinthisissue
轻量级的Crystal方法(CrystalLightmethods)--曾在eAD1999年11月提到,在本期中将做进一步的讨论
Adaptivesoftwaredevelopment--describedintheAugust1998issueof
eAD(thencalledApplicationDevelopmentStrategies--ADS)
自适应软件开发(Adaptivesoftware
development)--在eAD1998年8月中描述过(当时叫做应用开发策略ApplicationDevelopment
Strategies--ADS)
Althoughtherearedifferencesineachofthesepractices,therearealso
similarities:
theyeachdescribevariationsfromtheconventionalwisdom
abouthowtoapproachsoftwaredevelopment.Whereasleanandadaptive
developmentpracticestargetstrategicandprojectmanagement,XPbrings
itsdifferingworldviewtotherealmofthedeveloperandtester.
尽管这些实践中存在着差异,但是它们中也有相似的地方:
它们都描述了与传统软件开发不同的方法。
虽然轻量级的开发与自适应开发针对的是战略与项目管理的,但是XP却用不同的视角将开发方法带入了程序员与测试员的领域。
MuchofXPisderivedfromgoodpracticesthathavebeenaroundforalong
time."NoneoftheideasinXParenew.Mostareasoldasprogramming,"
Beckofferstoreadersintheprefacetohisbook.Imightdifferwith
Beckinonerespect:
althoughthepracticesXPusesaren'tnew,the
conceptualfoundationandhowtheyaremeldedtogethergreatlyenhance
these"older"practices.Ithinktherearefourcriticalideastotake
awayfromXP(inadditiontoanumberofothergoodideas):
XP中许多部分其实都来自于业已存在的那些优秀的开发实践。
"XP中没有一个想法是全新的。
大多数想法产生的时间实际上和编程一样古老"Beck在他书中的前言中这样说道。
但是我在某一个方面考虑的也许与Beck有所不同:
尽管XP所用的实践方式不是全新的,但是概念的建立以及它们如何融合在一起极大地增强了
这些"老"的实践。
我想(除了许多其它的好思想外,还)可以从XP中提炼出四个关键的思想:
Thecostofchange
变化的成本
Refactoring
重构
Collaboration
协作
Simplicity
简单化
Butfirst,IdiscusssomeXPbasics:
thedozenpracticesthatdefineXP.
但是首先,我们来讨论XP的基础:
那十二个用于XP的实践方式。
XP-TheBasics
XP-基础
ImustadmitthatonethingIlikeaboutXP'sprincipalfiguresistheir
lackofpretension.XPproponentsarecarefultoarticulatewherethey
thinkXPisappropriateandwhereitisnot.WhilepractitionerslikeBeck
andRonJeffriesmayenvisionthatXPhaswiderapplicability,theyare
generallycircumspectabouttheirclaims.Forexample,bothareclear
aboutXP'sapplicabilitytosmall(lessthan10people),co-locatedteams
(withwhichtheyhavedirectexperience);theydon'ttrytoconvince
peoplethatthepracticeswillworkforteamsof200.
我必须承认一件事情,就是我喜欢XP的原因应该是它没有其他的那些花哨的东西。
支持XP的人们总是会向你指出XP适合的地方以及他的某些局限性。
而XP的实践者Beck以及Ron
Jeffties却相信XP会有更广泛的应用前景。
他们通常对于自己的要求都是很谨慎的。
例如:
小的(小于10人),公司局部(他们有直接的经验)两者对于XP的适应性都是很清楚的;他们并没有试图让人们相信XP可以适用于一个200人的团队。
TheProject
工程
ThemostprominentXPprojectreportedontodateistheChrysler
ComprehensiveCompensationsystem(theC3project)thatwasinitiatedin
themid-1990sandconvertedtoanXPprojectin1997.Jeffries,oneofthe
"ThreeExtremoes"(withBeckandWardCunningham),andIspentseveral
hourstalkingabouttheC3projectandotherXPissuesattherecent
MillerFreemanSoftwareDeveloperconferenceinWashington,DC,USA.
最为著名的XP项目是克莱斯勒综合补偿系统(称为C3工程),它在上个世纪的90年代中期开始,到1997演变为XP。
Jeffries,是"终极编程三人组"之一(另外两个是Beck同Ward
Cunningham)。
我在华盛顿特区同自由软件人谈论了有关C3的以及其他与XP项目有关的东西。
=================================
注解:
ChryslerComprehensiveCompensationsystem克莱斯勒综合补偿系统
================================
Originally,theC3projectwasconceivedasanOOprogrammingproject,
specificallyusingSmalltalk.Beck,awell-knownSmalltalkexpert,was
calledintoconsultonSmalltalkperformanceoptimization,andthe
projectwastransformedintoapilotofOO(XP)practicesafterthe
originalprojectwasdeemedunreclaimable.BeckbroughtinJeffriesto
assistonamorefull-timebasis,andJeffriesworkedwiththeC3team
untilspring1999.Theinitialrequirementsweretohandlethemonthly
payrollofsome10,000salariedemployees.Thesystemconsistsof
approximately2,000classesand30,000methodsandwasreadywithina
reasonabletoleranceperiodoftheplannedschedule.
最初,C3是一个基于OO(面向对象技术)的开发项目,尤其是它采用Smaltalk语言进行开发。
(Smaltalk
:
Xerox公司开发的一种高级程序设计语言,它支持和鼠标合用的选项屏驱动式应用程序,有助于建立便于使用的计算机程序。
)作为著名的Smalltalk专家,Beck被邀请来讨论有关SmalTalk性能优化的问题,并且在原项目被认为不可救要的时候将其变为一个采用面向对象OO(XP)方法的试验性项目。
Beck并且带来了Jeffries用于帮助那些基本的东西,Jeffries在C3组一直干到1999年的春天。
最开始的需求是要做一个对约10,000个雇员每月薪水发放进行管理的系统。
这个系统由大约2,000个类以及30,000个方法构成,并且在计划方面提供有合理的容忍度
Aswetalked,IaskedJeffrieshowsuccessontheC3projecttranslated
intoXPuseonotherChryslerITprojects.HisgrintoldmeallIneeded
toknow.I'vebeeninvolvedinenoughrapidapplicationdevelopment(RAD)
projectsforlargeITorganizationsovertheyearstounderstandwhy
successdoesnotconsistentlytranslateintoacceptance.Therearealways
atleastahundredverygoodreasonswhysuccessatRAD,orXP,orlean
development,orotherout-of-the-boxapproachesdoesn'ttranslateinto
wideruse--butmoreonthisissuelater.
正向我们所谈到,我问Jeffries他怎样成功的将C3变为XP并应用到其他的克莱斯勒IT项目。
他笑着告诉了我。
多年来我为许多大型IT组织开发了不少RAD系统(快速原型开发),因此我知道为什么我们无法将成功的经验运用于其它项目中.
对于RAD,XP,轻量级的开发以及其它一些未得到广泛应用的方法,它们成功的原因至少有一百条.
Practices
实践
OnethingtokeepinmindisthatXPpracticesareintendedforusewith
small,co-locatedteams.Theythereforetendtowardminimalism,atleast
asfarasartifactsotherthancodeandtestcasesareconcerned.The
presentationofXP'spracticeshavebothpositiveandnegativeaspects.At
onelevel,theysoundlikerules--dothis,don'tdothat.Beckexplains
thatthepracticesaremorelikeguidelinesthanrules,guidelinesthat
arepliabledependingonthesituation.However,some,likethe"40-hour
week,"cancomeoffasalittlepreachy.Jeffriesmakesthepointthatthe
practicesalsointeract,counterbalance,andreinforceeachother,such
thatpickingandchoosingwhichtouseandwhichtodiscardcanbetricky.
应记住的一件事情就是我们应倾向于在小型的,局部的团队中运用XP。
除了代码与测试用例外,
尽量减少有些的影响。
XP的实践既有正面的表现,也有负面的。
在某些方面看来,他们听起来就像一堆规则,要做这个,不要做那个。
对此Beck解释道,
与规则相比,
X