敏捷史話(十):我犧牲了滑雪時間,參加了一場軟件革命——Jon Kern

本文轉自敏捷開發

“在鏡頭定格的一剎那,所有美好都和你不期而遇”,這是 Jon Kern 對生活的表達。爲了更好地記錄生活,他在一家名爲 flickr 的網站上創建了一個屬於自己的照片博客,在這個博客裏,Jon 上傳了各種隨手拍下的照片,拍攝的對象可能是一艘滿載的渡輪,可能是一對長得像警衛的消防栓,也可能是倒映在水面的一隻蜥蜴……Jon 不 僅在生活中習慣於觀察、欣賞身邊的小細節,同樣在工作中也習慣於從細節入手,推動業務成功

 

忽略他身上的耀眼光環,你會重新認識 Jon Kern。

 

一、“初識軟件開發”


20世紀60年代末,“軟件危機”出現之後,人們開始思考:如何滿足不斷增長的需求,以及如何維護數量不斷膨脹的軟件產品。這之後的幾十年間,快速原型、增量等模型不斷湧現,推動軟件行業不斷向前發展。也正是在這一激烈動盪的時期中,Jon Kern 發現了一個未知的世界,帶着對這個世界的好奇,他開始踏足軟件開發領域。

1981年,Jon 順利地從俄亥俄州立大學畢業,獲得了航空工程學士學位。帶着初入社會的興奮與激情,他以一名項目工程師的身份進入海軍航空推進中心工作,在推進中心,Jon 的工作內容主要是巡航導彈噴氣發動機的高級研發測試。這段時間裏,Jon 不停地在編寫數據採集代碼,用來實時計算推力、氣流等元素。 不論是工作要求還是自身的性格使然,這段經歷都讓Jon更加註重細節之道

5年後,他又以航空航天工程師的身份加入了一家名爲 Veda 的國防部諮詢公司,從事半實物控制、飛行模擬,以及實時數據採集等研究。很快,軟件研發成爲了 Jon 的興趣所在,也是在這一過程中, 他逐漸發現了輕量級開發方法的過人之處,也開始探索新的面向對象範式。他認爲,這是軟件開發的必然要求。
 

二、“UML/MDA”


到了20世紀80年代末,Jon 開始探索新的面向對象的範式。在這一過程中,Jon 發現,不同的方法學家都在提出自己的面向對象分析設計學,一時間,竟呈現出百花齊放的局面。但這也帶來了一個問題: 各方法學雖萬變不離其宗,但都有自己的一套概念、定義、標記符號等,也就是說在這一領域裏,還沒有一個通用型的概念,當開發人員在選擇某一方法學時,會因爲這些細節的不同產生混亂。因此,一個統一的表示法亟需建立。

1997年,三位方法學家爲了打破這一僵局,開始取各方法學之精華,將所有建議合併成一套建議書。這一建議書最終得到 OMG( Object Management Group , 國際對象管理集團)全員的一致通過,UML(Unified Modeling Language, 統一建模語言)就此誕生。

UML 的誕生,讓 Jon 找到了堅定的方向和道路,他成爲了一名面向對象和輕量級過程的傳播者。與此同時,和他志同道合的還有一位朋友,這位朋友就是:Peter Coad —— FDD(Feature Driven Development, 特徵驅動開發)的支持者。不僅如此,Peter與Jon還是面向對象編程和 Coad/Yourdon 方法論的早期實踐者。對 Jon 而言,Peter 不僅是伯牙子期般的知音,更是攜手與共的同路人。

兩人有極深的淵源,早在90年代初期,Peter 就與 Jon 一起共事,在工作之餘,他們還合著了《Java 設計》一書。在Peter的身上,Jon 學到了一項非常重要的東西,就是“誠實”——軟件開發中,要確保團隊提升的是“頻繁的、切實的工作成果”,而不是無限趨近於完成但始終沒有完成的開發過程。“誠實”對 Jon 影響頗深,在之後的工作中,他也一直堅守這一原則,並將其運用到他所在的團隊中。

爲了更好地幫助客戶使用軟件開發交付業務價值,1995年,Jon 決定自己創立一家公司,並將其命名爲 Lightship。Lightship 公司致力於使用最佳實踐的軟件開發方法,爲客戶提供先進的、面向對象的、多層次的解決方案。在 Lightship 的工作期間,Jon 作爲開發 IBM 下一代製造執行系統的首席架構師和建模師,爲公司做出了巨大的貢獻。除卻在團隊中應用UML之外,Jon 對體系架構也極爲看重。他認爲, 首要目標是要幫助團隊構建一種能夠實現有效實踐以及可靠的體系結構的環境,最終達到高效地交付業務價值。因此,他着力從 人員 過程 技術等角度爲團隊尋找更好的方法來實現團隊目標。

Jon 對團隊以及客戶的看法贏得了許多人的認可,這其中也包括他的好友 Peter Coad。1999年,Jon 受邀加入 Peter 創建的 TogetherSoft 公司,幫助團隊進一步推廣UML建模工具。與他共事的團隊成員和客戶都說,Jon是一個非常有遠見的人。當然,這種遠見在他的日常工作中淋漓盡致地體現了出來:他重視同團隊、客戶進行互動,並指導團隊成員進行交付和反饋流程,使用技術實踐和工具等。在此工作的將近三年的時間裏,TogetherSoft 在 UML 建模/ IDE(集成開發環境)產品以及他所組建的專業導師團隊的支持下取得了驕人的成就。任職結束後,Jon 留下了一個對 TogetherSoft 更有價值的團隊。

2001年,一個新的概念被提出:MDA。MDA(Model Driven Architecture, 模型驅動體系架構)把建模語言用作一種編程語言而不僅僅是設計語言,並以一種全新的方式將 IT 技術的一系列新的趨勢性技術整合到一起。這些技術包括基於組件的開發、設計模式、中間件、說明性約束、抽象、多層系統、企業應用整合以及契約式設計等。模型驅動體系架構(MDA)的出現,爲如何提高文檔編制的便利性指明瞭解決之道。Jon 在接觸到 MDA 之後,發現 MDA 極佳的同步特性也能夠爲輕量型方法論提供有力支持,隨後,Jon 開始了 MDA 之旅。
 

三、“Agile UML/MDA”


同樣在2001年,Jon Kern 與其他十六位軟件開發領域的傑出代表共同編寫了“敏捷宣言”。在這一會議上,敏捷聯盟成立,他們通過激發羣智,將原本零零散散的“輕量”方法整合起來,形成包容度更大的概念,以滿足不同團隊、不同項目的實際需要。由此, Jon 轉向了 Agile MDA/UML 方向

在之後的幾十年間,Jon Kern 以 Agile MDA 的傳道者的身份踐行軟件開發實踐,同時也從事敏捷培訓等業務。他有過多種身份,例如敏捷顧問、Web 開發人員和架構師,甚至自己創立了幾家小型公司。無論過去、現在還是未來,也無論 Jon 的身份、角色發生了什麼樣的變化,他對敏捷的初心、對面向對象編程的堅持都沒有發生改變。

回憶起2001年的那場會議,Jon 說,他們中沒有一個人想到這場聚會竟然會在軟件開發領域掀起如此大的波瀾。因爲在當時,輕量型的方法在軟件開發的實踐中所佔的比重非常小。站在幾十年後的今天,我們不難看出,敏捷運動已形成了不可抵擋的形勢,仍在浩浩蕩蕩地向前發展。現如今的敏捷在最初的敏捷基礎上衍生出了新的分支和新的內容,對於這些新的內容,Jon 持支持態度,無論如何, 新鮮血液的湧入都能激發敏捷的活力

而當被問起當年聚會中有什麼遺憾的時候,Jon 的回答既出人意料又在情理之中。他是這樣回答的,“ 我應該早幾天過去,這樣在會議開始之前就有更多的時間去那裏滑雪了。”

對他來說, 無論是在工作中還是在生活裏,細節都是一項至關重要的因素。Jon 不僅善於從長遠角度看問題,更善於發現細節,並促使團隊或公司完善每一個細節處,從而推動業務成功。自始至終,Jon 都堅持認爲,建立起一個持久的、歷經檢驗的過程,以解決具有挑戰性的業務問題,並讓團隊受到面向對象和敏捷方法論的指導,是最有意義的事情,這也正是他一直堅持 Agile MDA/UML 的理由。

現如今,一方面,工作中的 Jon Kern 會在名爲“technicaldebt”的博客上分享相關的技術性內容;另一方面,日常中的 Jon Kern 在閒暇時間不僅會與妻子及家人一起出門旅行攝影、滑雪、登山、攀巖,還會去品嚐各地的美食,品鑑不同種類的啤酒、葡萄酒……Jon Kern 賦予了生活新的意義,那就是不斷地尋求“新知”。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章