什麼是工程師思維

ZhanLi發表於2024-04-24
  • 什麼是工程師思維
    • 前言
    • 系統思維和批判意識
    • 少就是指數級別的多
    • 總結
    • 參考

什麼是工程師思維

前言

在部分所謂的技術嚮導性公司,可能存在一些慣性思維,銷售和產品經理會覺得自己沒有話語權,開發工程師會覺得自己的地位高人一等。

這是不對的,推崇技術當然是正確的,但是健康的公司都必然是業務導向的公司,所有的技術人員如果希望有好的職業發展,也必然需要去理解業務。

什麼才是真正的工程師文化?

從淺層意義上講,工程師就是要實現業務的自動化。DON'T REPEAT YOURSELF! 某件重複的事情只做一個就好,以後不需要再重複做。

工程師的自動化思維體現的內在邏輯就是如何把問題 Close ,如何把問題徹底解決,而編碼只是一種工具而已。

在我們日常的工作中,很多問題不需要我們用編碼來解決,但是確實需要我們使用"徹底解決"的思維去完成。這種思維不限於工程師,同樣適用於所有人。比如開餐廳需要解決的是服務質量問題,這一點海底撈就解決的很好,當時並不一定需要用編碼的方式解決。對於我們需要的問題,如何徹底解決,這是一個值得我們深思的一個問題。

很多人喜歡待在自己的舒適區,習慣於做任務,每天重複相同的工作,就不符合我們所說的'工程師文化'。我們需要達到的狀態是,今天⼲完⼀件事,明天開啟新的事。

從兩一個角度上看,工程師把這種問題 Close,徹底解決的思維,著重看的是自己工作的長期價值。如果我們只是在做事務,卻沒有在實質上解決這個問題,那麼這件事情的長期價值就是零。

所以工程師文化也就是產品文化,把所有問題以一種自動化的方式解決,這才是我們應該推崇的工程師文化。

⼀個公司各個崗位是彼此協作的團隊,⼯程師並不是特殊群體。銷售、技術⽀持、產品、開發 ⼯程師每⼀個⻆⾊都是平等的。每個⼈都應該秉承⼯程師精神,把⼀個個問題 Close,讓它不 要再發⽣。不需要顯得很忙,忙不代表成就,真正的⼯程師⽂化應該是推動整個團隊往前⾛, 每個團隊成員都在成⻓。

系統思維和批判意識

從更層次上講,工程師思維是一種系統化的思維,僅僅是編碼和自動化是不夠的,很可能我們在做的編碼只是在實現某種事務性工作,而不是用系統或者結構化的方案來解決問題。

真正的工程師會系統的考慮的有效性。他們追求的是用更小的編碼工作來結局更大的範圍的問題。

少就是指數級別的多

現實中,⼀些⼯程師經常對於⾃⼰編寫的程式碼形成⼀種情感依附,這是⼈之常情。⼀些⼈可能 會在你刪除多餘程式碼時提出抗議:“如果我們以後需要這個程式碼怎麼辦?”“我們為什麼只是把 這些程式碼註釋掉,這樣稍後再使⽤它的時候會更容易嗎?”“為什麼不增加⼀個功能開關?”

這些都是糟糕的建議。

原始碼的管理系統的中的回滾是很容易的,但是大量的註釋程式碼則會造成干擾和混亂,尤其是我們還要繼續演進的時,那些,由於功能開關沒有開啟而沒有被執行的程式碼,更像是一顆顆定時炸彈一樣等待爆炸。

極端地說,當你指望⼀個軟體 24 ⼩時不間斷服務時,在某種程度上來說每⼀⾏程式碼都是負 擔。所以 SRE 需要推崇的實踐是保證所有的程式碼⾏都有必須存在的⽬的。

從軟體工程的角度上講,傳統意義的工程強調的是複製性,但是軟體編碼是一項不確定性很強的創新性工作,我們總是在不斷的迭代出新的技術。所以軟體工程是一件頗為複雜的東西,它需要在不確定性和複製性這對矛盾中尋找平衡。

所以優秀的工程是還需要有批判精神。經驗當然是有價值的,但是過於相信慣例就會抑制創新能力。尋求本源,不迷信慣例和權威。以資料為指導,從根源觸發去解決系統性問題。

總結

這裡簡單瞭解了什麼是工程師文化,工程師文化,也就是產品文化,把所有問題以一種自動化的方式解決,這才是我們應該推崇的工程師文化。

需要達到的狀態是善於把問題 Close,徹底解決的思維狀態。簡單的講,今天⼲完⼀件事,明天開啟新的事。

我們在平時的工作需要花點時間在專案工程上,如果我們只是在重複相同的重複性工作,我們的整個職業生涯不會有一個良性的發展。

重複性的事務工作雖然是不可避免的,這時候就需要我們用工程師的思維將問題提煉,以一種自動化的方式來解決毫無意義的重複性事務工作。

參考

【多工處理】https://zh.wikipedia.org/wiki/多工處理
【物件導向程式設計】https://www.liaoxuefeng.com/wiki/1016959663602400/1017495723838528
【許式偉的架構課】https://time.geekbang.org/column/article/89668
【什麼工程師思維】https://boilingfrog.github.io/2024/04/24/什麼是工程師思維/

相關文章