敏捷史話(八):敏捷的破局之道——Martin Fowler
在 Martin Fowler 的世界裡,任何事情都有最優解。
1963年,Martin 出生於英格蘭的沃爾索爾(Walsall),也在同樣位於沃爾索爾的瑪麗女王文法學校中接受中等教育。在這裡的鄉村中,他度過了一段簡單、愉快的少年時光。
上了中學之後,Martin 接觸到了策略桌遊。在桌遊的“廝殺”中,
如何從複雜的局勢中找出最簡潔、直觀的破局之法
,就成為他想要尋找的答案,也成為日後他解決任何事情的目標。
1986年,Martin 畢業於倫敦大學學院,獲得了電子工程與電腦科學的學士學位。自此,Martin 踏入了軟體領域。
重構
畢業後,Martin 分別在 Coopers & Lybrand 和一家名為 Ptech 的小型科技公司工作了一段時間。之後,又作為一名獨立顧問,為世界各地的公司提供相應的幫助。
在觀察了多家公司的工作模式之後,Martin 發現,
由於軟體需要不斷地修復 Bug 並新增新特性,這會讓原本的程式碼庫變得繁雜,導致之後的工作進度越來越緩慢
。
舉一個很簡單的例子
:假設我們有一個抽屜,最初,裡面只有三四樣物品,這樣我們很輕鬆地就能找到並拿出某一物品。但當抽屜內放置的物品越來越多時,再想要找到特定的物品就非常困難了。
那麼,如何用一種簡單、直觀的方式來解決這一問題呢?Martin 想到,為了應對更改逐漸疊加的這一情況,可以用重構程式碼來減少這些不必要的複雜性。於是,Martin 開始籌備《重構》一書,希望能夠將程式碼重構的實踐帶給更多的公司與團隊。
1991年《重構》出版發行,這本書成功地推動了“重構”實踐的普及,幫助程式設計師們編寫出易懂、易維護的程式碼,同樣也開闢了一個“炒熟飯”的市場,指導了企業或開發者,如何將“爛程式碼”重構。這之後,Martin 又分別於2013年和2018年出版了《重構:Ruby 版本》及《重構:改進現有程式碼的設計》,以指導職業 Ruby 程式設計師實踐重構,並指出:重構並不是出現在專案計劃中的一項特殊任務,而應該是程式設計活動中的一個常規部分。
Martin 認為,重構其實很簡單,只需將複雜的事情拆分開。
《敏捷宣言》
隨著應用軟體的蓬勃發展,軟體開發的升級成本越來越高,Martin Fowler 開始轉而追尋軟體開發的最佳實踐,“輕量”方法論漸入人們的視野。
隨後,Martin 為了形成全面運動的核心,開始同 Robert C. Martin、Alistair Cockburn 著手組織一個關於“輕量”方法論的聚會。
會中,Martin 與 Ward Cunningham 兩人對會議進行了全面的調節,快速制定出了會議流程與決策方法。就這樣,雪鳥會議開始了。
回憶起二十年前的那場會議,Martin 認為,參與雪鳥會議的這十七個人並沒有什麼特殊之處,他們也並不是唯一擁有這些價值觀和原則的人。他們在隨後掀起的敏捷運動中沒有任何特殊的地位,也並沒有要把自己建立在這樣一個地位上的願望。
實際上,
對於敏捷軟體的未來,每個人都擁有發言權
。
“bliki”的誕生
對 Martin 來說,記錄是一個非常好的習慣。一方面,在與行業夥伴進行深入交流後,能夠產生一些靈感碰撞產生的火花;另一方面,他會親自思考實踐並抽象總結,然後透過出版物、部落格、網站等,同大家分享自己的理念。
Martin 的寫作之路,早在20世紀就出現了苗頭。90年代末,Martin Fowler 為《分散式計算》寫了一篇專欄。同時,Martin 接觸到了一位出版社編輯,也陸續在 Addison-Wesley 公司出版了一系列的書籍,包括:《分析模式:可重用物件模型》、《UML 精粹:標準物件建模語言的簡明指南》、《重構:改進現有程式碼的設計》等。
在21世紀初,Martin Fowler 又在《IEEE軟體》雜誌的設計專欄做了五年的編輯。這幾段專欄作者以及編輯的經歷讓 Martin 體驗了從文章產出、校對到發表的全流程。與需要經過複雜校對稽核的流程相比,Martin 更傾向於自己掌握主導權。
與此同時,blog 開始流行,很多人開始邁入 blog 大軍的行列,Martin 也躍躍欲試。但在接觸了 blog 後不久,他對此有了一些微詞。在他看來,blog 中簡短的文字就如同天空中的花火:
稍縱即逝、無法保留
。給他類似感受的,還有 wiki——一個很容易就會導致資訊複雜、冗長的網站。因此,他決定建立一個介於 wiki 和 blog 之間的網站,既能像 blog 一樣釋出一些簡短的想法,又能像 wiki 一樣建立一個交叉連結的主體。
很快,一個名為“martinfowler.com”的 bliki 網站誕生了。一開始,Martin 會在網站上時不時地更新自己的文章,文章內容涵蓋了軟體開發領域的方方面面。隨著網站越來越受歡迎,他認為,是時候以這一網站為平臺來幫助更多作者增加曝光度了。所以,Martin 開始在網站中逐步增加他人的文章,並對收到的每一篇文章都進行仔細地審查,以確保網站內容的質量。
現今,已年近古稀的 Martin Fowler,同妻子住在波士頓市郊。在工作之餘,他們會去度假、攝影、徒步,也會將沿路的風景、人文分享給自己的讀者。這些日常不僅帶給了 Martin 很多工作中的靈感,也激發了他寫作的動力。或許,
問題的最優解,就藏在生活的每一處小細節中
。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69982050/viewspace-2760747/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Martin Fowler談Scrum認證、敏捷現狀與未來Scrum敏捷
- 敏捷史話(五):敏捷已逝 —— Dave Thomas敏捷
- 敏捷史話(十一):敏捷宣言“間諜”——Steve Mellor敏捷
- 敏捷史話(四):敏捷是人的天性 —— Arie van Bennekum敏捷
- 瀑布和迭代可混合:敏捷定義者Martin Fowler定義瀑布法敏捷
- Martin Fowler大神 - 微服務、貧血模型、重構、敏捷開發方法論微服務模型敏捷
- 首度揭祕:騰訊敏捷研發和極速交付破局之道敏捷
- 敏捷史話(六):也許這個人能拯救你的程式碼 —— Robert C. Martin敏捷
- 敏捷史話(十二):你現在接觸的敏捷也許是“黑暗敏捷”——Ron Jeffries敏捷
- 敏捷史話(九):用做麵包的方式做敏捷——Alistair Cockburn敏捷AI
- 敏捷史話(十五):我發明了敏捷估算 Poker —— James Greening敏捷
- 敏捷史話(十四):敏捷之峰的攀登者 —— Jim Highsmith敏捷MIT
- 敏捷史話(三):篤定前行的勇者——Ken Schwaber敏捷
- 敏捷史話(十六):我對《敏捷宣言》沒有半點貢獻—— Brian Marick敏捷
- 騰訊敏捷之道,實施敏捷開發,看我就夠了敏捷
- 敏捷史話(十三):我被 Facebook 解僱了——Kent Beck敏捷
- Fowler:敏捷還是精益?——毫無意義的問題敏捷
- [翻譯]-領域事件-Martin Fowler事件
- 貧血模型-Martin Fowler 翻譯模型
- Martin Fowler:英國口音的軟體工程 (轉)軟體工程
- 真北敏捷八月小結:入精益敏捷的廳堂敏捷
- 歷史:敏捷宣言誕生記敏捷
- Martin Fowler:繼承是被誤用了繼承
- 敏捷史話(十七):維基(Wiki)背後的靈感來源—— Ward Cunningham敏捷
- 模式與教練:敏捷管理困境的解決之道模式敏捷
- Martin Fowler講述重構的工作流程
- Martin Fowler 談“編輯”“釋出”相分離
- 直播| Python Web開發者的破局之道PythonWeb
- 基於 GitHub 的敏捷學習方法之道與術Github敏捷
- CORNERSTONE對話騰訊&華為敏捷專家敏捷
- 敏捷史話(一):用一半的時間做兩倍的事——Scrum之父Jeff Sutherland敏捷Scrum
- 開放出版:徐毅《大測大悟:測試的敏捷之道》敏捷
- 敏捷的思考敏捷
- 敏捷的文件敏捷
- 敏捷專家認為敏捷框架SAFe實際最不敏捷敏捷框架
- 中式太極敏捷與西式敏捷的區別敏捷
- 包建強的培訓課程(17):Java程式碼敏捷之道Java敏捷
- Martin Fowler三萬字解讀原始碼分支管理模式原始碼模式