首页 » 程序员必读之软件架构 » 程序员必读之软件架构全文在线阅读

《程序员必读之软件架构》理解“敏捷”

关灯直达底部

要理解你的软件架构需要多敏捷,就应该看看敏捷究竟是什么。美国空军战斗机飞行员约翰•博伊德(John Boyd)提出了一个名为OODA循环的概念2 。本质上,这个循环构成了基本的决策过程。想象一下,你是一个正与敌人缠斗的战斗机飞行员。为了击败对手,你需要观察情况,确定自己的方位(比如做一些分析),决定做什么,并采取行动。在激烈的战斗中,为避免被对手击落,这个循环要执行得尽可能快。博伊德说,如果你能洞悉对手的OODA循环,执行得比他更快,就能混淆视听,误导对手。如果你比对手更敏捷,就能成为最后的赢家。

2 http://en.wikipedia.org/wiki/OODA_loop ——观察、定向、决策和行动,Observe、Orient、Decide、Act。——译者注

在一篇题为“What Lessons Can the Agile Community Learn from A Maverick3 Fighter Pilot”(敏捷社区能从特立独行的战斗机飞行员身上学到什么)4 的论文中,不列颠哥伦比亚大学的史蒂夫•阿道夫引用了博伊德的概念,将其应用于软件开发,得出的结论是敏捷是相对的,且按时间来衡量。如果你的软件团队交付的软件跟不上所处环境的变化,就不算敏捷。如果你在一个庞大而行动缓慢、鲜有改变的组织中工作,很可能交付软件要花费数月,却仍被组织认为是“敏捷”的;在一个精益初创团队中,情况多半就不一样了。

3 Maverick是电影《壮志凌云》中汤姆•克鲁斯饰演的飞行员的代号。——译者注

4 http://ieeexplore.ieee.org/xpl/articleDetails.jsp?tp=&arnumber=1667567