敏捷开发的根本
道德经说太极生两仪,两仪生四象,四象生八卦,八卦生六十四卦,六十四卦生万物。
但是多数企业的敏捷开发都太“八卦”了,上不能掌握太极的根本,下不能根据企业具体情况衍生出万物。博客上的其他文章描述描述“万物”已经够多了,这篇文章只说说两仪。
在前面的帖子里边,有几个人支持fastfeedback/shortiteration,另外一些人则支持transparency/teamwork,加在一起算是敏捷开发的两个最重要方面。
答案:持续改进+团队协作
如果用地道的敏捷开发词汇,就是这两个。
持续改进包括quickfeedback,continuesintegration,dailybuiding,standardupmeeting,shortiteration,refact,workingsoftware,etc.
团队协作包括standsforcross-functionteam,focusingoncustomer'svalue(把客户也当作双赢乃至多赢的团队的一部分),selforganizedteam,testautomation(开发人员做测试的事),
下面是这两者和12个敏捷原则的对应关系:
持续改进
1:Ourhighestpriorityistosatisfythecustomerthroughearlyandcontinuousdeliveryofvaluablesoftware
翻译:尽早并持续地交付有价值的软件以满足顾客需求。
3:Deliverworkingsoftwarefrequently,fromacoupleofweekstoacoupleofmonths,withapreferencefortheshortertimescale
翻译:经常发布可用的软件,发布间隔可以从几周到几个月,能短则短。
7:Workingsoftwareistheprimarymeasureofprogress.
翻译:可用的软件是衡量项目进展的主要指标
8:Agileprocessespromotesustainabledevelopment.Thesponsors,developers,andusersshouldbeabletomaintainaconstantpaceindefinitely.
翻译:敏捷流程应能保持可持续的发展。领导,团队和用户应该能按照目前步调持续合作下去。
10:Simplicity--theartofmaximizingtheamountofworknotdone--isessential.
翻译:保持简明-尽可能简化工作量的技艺-极为重要。英文说maximizingtheamountofworknotdone.我的理解是-任何还没有明确的工作都会花不可知的时间,因此要maximize,不要把那些还没有做的工作和正在做的工作混起来。
12:Atregularintervals,theteamreflectsonhowtobecomemoreeffective,thentunesandadjustsitsbehavioraccordingly.
翻译:时时总结如何提高团队效率,并付诸行动。
团队协作:
2:Welcomechangingrequirements,evenlateindevelopment.Agileprocessesharnesschangeforthecustomer'scompetitiveadvantage
翻译:敏捷流程欢迎需求的变化,并利用这种变化来提高用户的竞争优势。
4:Businesspeopleanddevelopersmustworktogetherdailythroughouttheproject.
翻译:业务人员和开发人员在项目开发过程中应该每天共同工作。
5:Buildprojectsaroundmotivatedindividuals.Givethemtheenvironmentandsupporttheyneed,andtrustthemtogetthejobdone.
翻译:以有进取心的人为项目核心,充分支持信任他们
6:Themostefficientandeffectivemethodofconveyinginformationtoandwithinadevelopmentteamisface-to-faceconversation.
翻译:无论团队内外,面对面的交流始终是最有效的沟通方式
9:Continuousattentiontotechnicalexcellenceandgooddesignenhancesagility.
翻译:只有不断关注技术和设计才能越来越敏捷.
11:Thebestarchitectures,requirements,anddesignsemergefromself-organizingteams.
翻译:只有能自我管理的团队才能创造优秀的架构,需求和设计.
把客户和商业价值等内容放到团队协作里边看似有点牵强,这也是我更喜欢用“无我”的原因。“团队”很容易让人局限到开发团队的内容,实际上团队协作是在说“不要只考虑我”乃至“不要只考虑我们(还要考虑客户)”。