想成為首席軟體工程師?請放下編譯原理來學習彈性工程!
如果你想成為一名影響力的員工/首席工程師,請放下編譯器,學習彈性工程!是的,毫無疑問,深度編譯器工作原理可以對軟體世界產生巨大影響,但這是一個專業,通常對僱用你的公司影響很小!還需要進一步學習系統理論。
點選標題見彈性工程論文(https://github.com/lorin/resilience-engineering):
- 自動化
- 設計錯誤
- 人為因素/人體工程學
- 認知建模
- 認知架構
- 腦力勞動
- 態勢感知
- 認知錯誤
- 技能和培訓
- 介面設計
一個有彈性的組織可以有效地適應意外。
當我們談論設計高可用性系統時,我們通常會涉及諸如冗餘、重試、回退和故障轉移等技術。我們考慮可能會出現什麼問題(例如,伺服器故障、網路分割槽),並設計我們的系統以優雅地處理這些情況。
另一方面,彈性描述了系統處理設計人員無法預見的問題的能力。您可以將健壯性視為能夠很好地處理已知的未知數,將彈性視為能夠很好地處理未知的未知數。
改變對事故和安全的看法
彈性工程作為一個領域出現在安全科學界。這就是為什麼您會經常看到航空和醫學以及其他安全關鍵領域(如海上、太空飛行、核電和鐵路)的示例。
由於這段歷史,我們與彈性工程相關聯的早期論文是對以前對事故和一般安全的思考方式的反應。
請注意,傳統的安全方法通常側重於最大限度地減少與人類工作相關的差異,使用諸如檔案化程式和執行機制之類的技術來偏離它們。
新面貌/新觀點
“新面貌”或“新觀點”是指對事故如何發生的看法發生變化,重點是瞭解事件中參與者採取的行動如何合理,考慮到這些參與者在事件發生時所掌握的資訊.
隆德大學的 Johan Bergström 擁有三部優秀的短片(<10 分鐘):
兩篇很棒的介紹性論文(唉,都是付費的)是:
- 重構人類對事故的貢獻: 德克爾關於錯誤和績效的新觀點
- Robert Wears計算錯誤的錯誤
一本關於在事件調查中將這些想法付諸實踐的好書是:
- Dekker 的《理解“人為錯誤”的現場指南》
複雜系統
有沒有想過為什麼彈性工程提倡“沒有根本原因”?
彈性工程中一個反覆出現的主題是關於系統的整體推理,而不是將事物分解成元件並分別推理元件。這種觀點被稱為系統思維,這是一種在彈性工程社群中具有影響力的思想流派。
當您將世界視為一個系統時,原因的概念變得毫無意義,因為無法孤立單個原因。相反,世界是一個錯綜複雜的影響網路。
您會經常聽到“社會技術系統”這個詞。這種語言強調系統應該被認為包括人類和技術,而不是孤立地考慮技術方面。
- Richard I. Cook 的《複雜系統如何失敗》是一個很好的起點。這是一篇簡短的論文,非常容易閱讀。
- 西德尼·德克爾 (Sidney Dekker) 的《陷入失敗》 ( Drift into failure)是一本面向非專業讀者的書,因此可讀性也很強。Dekker 大量借鑑系統思維,提出了一個關於複雜系統如何演變成不安全狀態的理論。
自動化
我們軟體人員與安全關鍵世界的共同點是自動化的越來越多的採用。自動化帶來了挑戰,而這些挑戰的本質是許多彈性工程論文的主題。
您可能會在自動化上下文中聽到“聯合認知系統”這個詞。該術語指的是由人類和軟體組合組成的執行認知工作的系統。有一個完整的研究學科研究聯合認知系統,稱為認知系統工程,最初由 David Woods 和 Erik Hollnagel 開發,他們兩人後來都在發展彈性工程領域發揮了重要作用。
由於像 Woods 和 Hollnagel 這樣的彈性工程研究人員紮根於認知系統工程,並且由於社會中軟體自動化的使用不斷增加,因此該社群非常關注與自動化使用不當相關的潛在脆弱性。
- Lisanne Bainbridge的自動化反諷是一篇關於自動化可能引入的問題的經典論文。該論文最初寫於 1983 年,並繼續被廣泛引用。
- Christoffersen 和 Woods 撰寫的《如何使自動化系統成為團隊成員》討論了以前的自動化系統如何存在問題,並提出了改進自動化的策略。
- Klein 等人提出的使自動化成為團隊合作者的十大挑戰。是最近的一篇論文,概述了自動化在社會技術系統中真正有效的要求。這項工作很大程度上借鑑了前面討論的協調主題。
作為模型的邊界 (Rasmussen)
已故的 Jens Rasmussen 是彈性工程社群中極具影響力的人物。
- 動態社會中的風險管理:建模問題,發表於1997年,是拉斯穆森最著名的論文之一,介紹了拉斯穆森的動態安全模型。
在這篇被廣泛引用的論文中,拉斯穆森提倡採用跨學科、基於系統的方法來思考事故是如何發生的。他認為事故的發生是因為系統遷移到了危險的邊界,而這種遷移發生在正常工作的過程中。
這是該論文中模型的描述:
大衛伍茲
我們已經參考了 David Woods 撰寫或合著的幾篇論文。伍茲Woods 是彈性工程領域的一股自然力量,在建立該領域本身方面發揮了關鍵作用。伍茲非常多產,並介紹了與彈性工程相關的各種概念。
Woods 對適用於各種不同型別系統的彈性工程原理感興趣:無論我們是在談論生物有機體中的器官還是像 NASA 這樣的組織。
因為他對一般原則感興趣,所以他的許多論文都是在非常抽象的層面上寫的,他在其中討論了通用概念,例如自適應行為單位或飽和度。
相關文章
- 《編譯原理》學習心得編譯原理
- 為什麼軟體工程師應該學習哲學?軟體工程工程師
- 學習編譯原理的步驟編譯原理
- 軟體工程師第一性原理思考 - AddyOsmani軟體工程工程師
- 為什麼想成為 Geeker 的人要學習 JSJS
- 編譯原理第二章學習總結編譯原理
- JS學習系列 01 - 編譯原理和作用域JS編譯原理
- 想成為一名物聯網工程師,需要學習哪些知識?工程師
- 給軟體工程師的學習參考薦軟體工程工程師
- 要想成為一名物聯網工程師,需要學習哪些知識?工程師
- 0909 關於編譯原理學習的想法編譯原理
- 工程中的編譯原理 -- Jison入門篇編譯原理
- 工程中的編譯原理 -- Mapfile解析器編譯原理
- 譯:軟體工程師的軟技能(一)軟體工程工程師
- 為什麼要學習編譯器課程?編譯
- 如果要想成為一名物聯網工程師,需要學習哪些知識?工程師
- 假如你想成為全棧工程師…全棧工程師
- 0909初學編譯原理編譯原理
- 編譯原理編譯原理
- 為什麼編譯原理被稱為龍書?編譯原理
- 幽默:歐洲人認為如沒有工程學位就不算軟體工程師軟體工程工程師
- 【album】編譯工程編譯
- 編譯 App 工程編譯APP
- 作為軟體工程師,我學到的9件事軟體工程工程師
- 全棧學徒(軟體工程師)全棧軟體工程工程師
- 彈性分散式深度學習系統分散式深度學習
- 如何成為 10 倍軟體工程師軟體工程工程師
- 尋找卓越的(Android)軟體工程師(譯)Android軟體工程工程師
- 【編譯openjdk學習筆記】編譯JDK筆記
- 學習Ant編譯指令碼編譯指令碼
- 寫給想成為前端工程師的同學們——前端工程師是做什麼的?前端工程師
- Flutter 編譯原理Flutter編譯原理
- 編譯原理概述編譯原理
- 使用xmake編譯工程編譯
- 為什麼軟體工程師應該養成寫作的習慣?軟體工程工程師
- [Vue原始碼]一起來學Vue模板編譯原理(一)-Template生成ASTVue原始碼編譯原理AST
- 想成為一名物聯網工程師需要學習哪些知識?這套教程限時送工程師
- 為什麼科學需要更多的研究型軟體工程師? - nature軟體工程工程師