敏捷到底是什麼?

2021-04-12 21:34:35 字數 1804 閱讀 4884

文/ivar jacobson

在支援軟體工程(比如rational統一過程rup)與敏捷陣營(比如scrum或是xp)之間,人們一直存在著衝突。也不難理解,因為這兩種方法間都是在用著彼此並不相容的方式來描述的。其實大可不必,因為他們背後的觀點全然是相輔相成的。關鍵在於該如何用對兩者來說都公平的方式來融合它們。

在軟體世界裡,我們都喜歡跟風。我們從對一種開發方法的青睞轉為對另一種開發方法的熱衷,其實就是太過極端。有些人已經跟了一輩子的風,最後自己也受夠了這種方式。

看來到如今我還在這個陣營之中,而且還打算再待上很多年。那個很不高興的傢伙第二天更加鬱悶,因為他被他的老闆炒掉了。不過,uml和rup略顯動力不足倒是不爭的事實,只是離消亡還遠著呢。它們只是在這個快速變化的世界裡打了個小盹而已。

我們曾經處於一種極端,即做任何事情都使用uml,並像大多數人一樣堅信它在軟體開發過程上的強大描述能力;另一方面,我們又倒向了另乙個被叫做敏捷的極端。年輕的一代人正在開始著他們的第一次跟風,目前來說就是敏捷了。非常有趣的是,那些稍稍年長的人們正在從軟體工程的極端倒向敏捷。我們不停地追逐,而我們所在的公司也在跟隨著我們的步伐。

如今,每個人都敏捷了。可不,敏捷之外的就成了愚蠢的。我也要清楚而大聲地喊出來:我是敏捷的大粉絲,我們在ericsson的團隊也是極其「敏捷」的。

可是,我所交談過的大多數人對敏捷真正所講述的東西並不十分清楚。去年三月,我參加了一場英國的敏捷「傳教士」座談會。組織者原本希望我是反對敏捷的,然而他們失望了。觀眾讓我們為敏捷做出定義,台上那些聲稱是敏捷專家的「傳教士」們開始暢談起來。他們不停地強調敏捷最重要的要素就是迭代。那可是完全錯誤。迭代式開發是rup的核心實踐,而且它遠在rup出現以前就已經存在了。它原本被稱作螺旋式開發,是由barry boehm在70年代末建立的。於是我不得不幫助他們來解讀敏捷:

敏捷是關於三件事情的:

1.最重要的,敏捷是一門社會科學。這是敏捷最大的特點所在。它關注的是如何讓大家像乙個團隊一樣來工作,如何激勵團隊成員,如何相互合作等等。

2.敏捷是輕量級的。與rup完全依賴「顯式知識」不同,敏捷還依賴很多隱含的知識。在rup中,我們努力把我們認為是最佳的實踐寫出來。不過,既然實際情況是人們根本不讀關於開發過程的書,寫下它們也就變得毫無意義。相反,敏捷認為要想開發出優秀的軟體,有知識豐富的人就足夠了。雖然這一點顯然會遭受置疑,但事實的確如此。

3.敏捷也提供了一些技術性的實踐。這實際上是敏捷中最不重要的一部分。這些技術性實踐大多不是新生事物:就像我前面提到的,迭代與增量式開發都有悠久的歷史;使用者故事(user story)可以看作某種形式的簡化版用例(use case)。最為有趣的新點子是測試驅動開發。我並不是說敏捷的實踐技術沒有價值,我只是要強調:如果僅有這些內容的話,我們是不會為敏捷如此痴狂的。

就像你們所看到的,軟體工程與敏捷抓住了軟體開發的不同方面。軟體工程的強處在於技術性實踐;而敏捷的優勢是社會工程。因此,它們是互補的。

軟體工程就像是件緊身衣,而敏捷是輕巧的,並且更難於駕馭。問題在於,我們能否集合兩個世界的優點。是的,我們能!

最後,軟體工程陣營有一系列的實踐技術,對岸的敏捷方法也有另一些略帶重複的實踐。我們能找到一種共融之道嗎?是的,我們能!

要做到這些,我們必須用嶄新的理念來看待「實踐」。我們可以不再贅述過程了,實踐取而代之成為了第一等公民。過程只不過是實踐的組合。

與其談論第二代軟體過程的被動與臃腫,我們不如展望第三代軟體過程的靈活與面向實踐。

如果你打算看看第三代軟體開發過程,可訪問我的**www.ivarjacobson.com。

敏捷到底是什麼

我想每個人都有乙個自己的定義 很多人都認為敏捷就是tdd 我就曾經這麼認為,這難道錯了嗎?沒錯,但是這不是敏捷的不夠全部 不是敏捷的核心 那麼敏捷到底是什麼呢?敏捷是關於3件事情的 1.敏捷是一門社會學科 這是最衝要的,也是敏捷的最大特點所在。他關注的是人 而不是 如何讓乙個讓大家像乙個團隊一樣,怎...

敏捷心態到底是什麼?

如果,有這麼一名高管,他並不了解什麼對於敏捷來說最重要,當這位高管在公司酒會上請你回答具有 敏捷心態 意味著什麼時,你能在他喝光杯中酒走開之前做出足夠清晰的回答粘住他嗎,甚至讓他端起第二杯?你應該講什麼內容,如何一針見血地指出培養心態的必要性?我向自己發起了挑戰,試著進行了總結,在此分享一下我的經歷...

敏捷心態到底是什麼?

如果,有這麼一名高管,他並不了解什麼對於敏捷來說最重要,當這位高管在公司酒會上請你回答具有 敏捷心態 意味著什麼時,你能在他喝光杯中酒走開之前做出足夠清晰的回答粘住他嗎,甚至讓他端起第二杯?你應該講什麼內容,如何一針見血地指出培養心態的必要性?我向自己發起了挑戰,試著進行了總結,在此分享一下我的經歷...