敏捷史話(十):我犧牲了滑雪時間,參加了一場軟體革命——Jon Kern
“在鏡頭定格的一剎那,所有美好都和你不期而遇”,這是 Jon Kern 對生活的表達。為了更好地記錄生活,他在一家名為 flickr 的網站上建立了一個屬於自己的照片部落格,在這個部落格裡,Jon 上傳了各種隨手拍下的照片,拍攝的物件可能是一艘滿載的渡輪,可能是一對長得像警衛的消防栓,也可能是倒映在水面的一隻蜥蜴……Jon 不 僅在生活中習慣於觀察、欣賞身邊的小細節,同樣在工作中也習慣於從細節入手,推動業務成功。
忽略他身上的耀眼光環,你會重新認識 Jon Kern。
一、“初識軟體開發”
20世紀60年代末,“軟體危機”出現之後,人們開始思考:如何滿足不斷增長的需求,以及如何維護數量不斷膨脹的軟體產品。這之後的幾十年間,快速原型、增量等模型不斷湧現,推動軟體行業不斷向前發展。也正是在這一激烈動盪的時期中,Jon Kern 發現了一個未知的世界,帶著對這個世界的好奇,他開始踏足軟體開發領域。
1981年,Jon 順利地從俄亥俄州立大學畢業,獲得了航空工程學士學位。帶著初入社會的興奮與激情,他以一名專案工程師的身份進入海軍航空推進中心工作,在推進中心,Jon 的工作內容主要是巡航daodan噴氣發動機的高階研發測試。這段時間裡,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 賦予了生活新的意義,那就是不斷地尋求“新知”。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69982050/viewspace-2763727/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 敏捷史話(十三):我被 Facebook 解僱了——Kent Beck敏捷
- 敏捷史話(十一):敏捷宣言“間諜”——Steve Mellor敏捷
- 你會為了效能而犧牲程式碼簡潔性嗎?
- 機械硬碟:雲時代的下一個犧牲品?硬碟
- 敏捷史話(十五):我發明了敏捷估算 Poker —— James Greening敏捷
- 敏捷史話(一):用一半的時間做兩倍的事——Scrum之父Jeff Sutherland敏捷Scrum
- 敏捷史話(五):敏捷已逝 —— Dave Thomas敏捷
- 犧牲速度來節省記憶體,Redis是覺得自己太快了嗎記憶體Redis
- 敏捷史話(十六):我對《敏捷宣言》沒有半點貢獻—— Brian Marick敏捷
- 開會:簡直就是犧牲工作!(有圖有真相 :D)
- 敏捷史話(八):敏捷的破局之道——Martin Fowler敏捷
- Jon Skeet:我不想知道我在SO上到底花了多少時間(圖靈訪談)圖靈
- 《敏捷革命》(三)敏捷
- 敏捷史話(四):敏捷是人的天性 —— Arie van Bennekum敏捷
- 革命性移動端開發框架-Flutter時間簡史框架Flutter
- [英]Jon Skeet:我不想知道我在SO上到底花了多少時間(圖靈訪談)圖靈
- 容器十年 ——一部軟體交付編年史
- C++程式設計師看過來,你會為了效能而犧牲程式碼簡潔性嗎?C++程式設計師
- 敏捷史話(九):用做麵包的方式做敏捷——Alistair Cockburn敏捷AI
- 是時候給糟糕的技術面試來場革命了面試
- 我參加了吉位元未來遊戲製作人大賽遊戲
- 敏捷史話(十二):你現在接觸的敏捷也許是“黑暗敏捷”——Ron Jeffries敏捷
- 敏捷史話(十四):敏捷之峰的攀登者 —— Jim Highsmith敏捷MIT
- IPA:年輕人視訊通話時間在封鎖後增加了近1個小時
- 槓上敏捷宣言了!在推動敏捷過程中我們失去了軟體設計! -zdnet敏捷
- 敏捷史話(三):篤定前行的勇者——Ken Schwaber敏捷
- “雙11”奶粉大賣背後是不少企業犧牲利潤拋庫存
- 我去一場真人互動影視遊戲的片場,參觀了拍攝過程遊戲
- 第三次技術革命:軟體革命
- 工具和敏捷軟體開發之間的關係敏捷
- 敏捷需求管理軟體敏捷
- Java Card 3是一場革命Java
- 零基礎參加軟體測試培訓需要學多長時間
- 碎碎念研發01:敏捷簡史和幾種軟體開發模型敏捷模型
- 軟體架構與敏捷架構敏捷
- 一個共享軟體作者的話
- 直播軟體搭建,當前時間、既定時間後的時間及時間比較大小
- 佛盛龍滑雪場管理系統