一個工程師的工程文化
軟體作為一本新興學科,只有短短几十年的歷史,相比較於土木工程這樣有悠久歷史的工程學,說軟體工程還處在嗷嗷待哺的嬰兒期,或是幼兒期一點也不為過,要真正形成一套理論完善,又能在實踐上運用成功的軟體工程學,我相信還有很長的路要走。正因為如此,軟體工程作為一本學科,其發展也是相當迅速的,從學校課本里的正統的符合CMMI流程的瀑布模型,到實際接受度更高的敏捷開發,各種工程學和方法論可以說是百家爭鳴、各有千秋。
作為一個有理想的猿類,在接受這些理論碰撞的同時,內心深處,應該要慢慢滋生出自己的工程文化,自己的最佳實踐。今天在一個內部討論中,有幸接觸到這樣一套文化,個人覺得還是言之有物的,故記錄於此。
Do the right thing
在錯誤的道路上,越努力只會越錯。
– 要具備挑戰領導的勇氣 (把握度,過之會自負)
– 要相信合理的,在可掌控範圍之內的衝突是有益的
Do the thing right
具體就是軟體工程的方法學
– Design review
– Code review
– Unit Test (Functional Unit Test) http://stackoverflow.com/questions/153234/how-deep-are-your-unit-tests
– CI/CD (Continuous Integration, Continuous Deployment)
– Measurement & Monitoring ( 推薦閱讀 《How to measure everything》) – 系統運維和系統提升的必備良藥
– Visualize your result (dashboard) – show給老闆看
Record it
好記性不如爛筆頭,做記錄,有時候也叫寫文件(猿類對寫文件這個詞有牴觸感),但以一個工程師的信譽擔保,必要的設計文件和工程記錄真的是非常重要,主要體現在
– Reference
– Communication
當然在CSDN寫博文也是一種記錄,如果說在公司寫專案的記錄,是為了公司和同事,那麼這裡的記錄更多的是為了自己,如果有幸這些文字能夠幫助到其他朋友,那更是開心了。 所以勤做記錄,於己於人都是一件功德無量的事。
Continuous Improvement
我們對這個世界的認識,有兩種方法論體系,即構建論和擴充套件論。
-構建論, 是相信個人英雄主義,相信一個很牛B的人,可以構建出人類的伊甸園,構建出一個和諧社會。
-擴充套件論,是相信個人的才能和所能領悟的知識是有限的,對世界的認知應該是站在巨人的肩膀上,一點一點向前推進。
法國人相信構建論,所以攻佔了巴士底獄,革命了封建王朝。
英國人相信擴充套件論,對舊的制度進行持續改良,從而形成了現今的君主立憲制。
在軟體工程裡,面對不斷腐朽的舊系統,同樣純在兩種不同的選擇,是全部推翻重新構建呢,還是循序漸進一點一點改良重構呢,我相信這要視具體情況而定了,要做權衡,如果推翻重來的代價比重構的代價還要小,也不是不可以考慮,但總體來說,我們還是倡導擴充套件方法論,通過程式碼重構,可持續整合,對系統進行一點一點循序漸進的改良。
所以Continuous Improvement是軟體保持生命力的重要手段,如果你不希望自己的系統淪落到要被別人革命的下場,那就持續的對其進行改良吧
相關文章
- 什麼是工程師文化?工程師
- 500塊一個的工程師工程師
- 什麼是工程師文化?-陳皓工程師
- 是什麼造就了優秀的開發者/工程師文化?工程師
- 一個測試工程師的養成工程師
- 一個軟體工程師在北京的反省軟體工程工程師
- 工程師文化:正版軟體應該公司買嗎工程師
- 一個小小工程師魔幻的 10年工程師
- 如何成為一個成功的軟體工程師軟體工程工程師
- 一個TD測試工程師的獨白工程師
- 一個演算法工程師的學習演算法工程師
- 你還不是一個軟體工程師軟體工程工程師
- 一個優秀的軟體工程師必然是全棧工程師(圖靈訪談)軟體工程工程師全棧圖靈
- 公司的電腦為什麼卡——因為缺少工程師文化工程師
- 一個老電子工程師的建議--《給年輕工程師的十大忠告》工程師
- 一個測試工程師的成長覆盤工程師
- 一個兩年Java工程師的面試總結Java工程師面試
- 一個 SAP 開發工程師的成長史工程師
- 如何成為一個偉大的前端工程師前端工程師
- 如何成為一個優秀的前端工程師前端工程師
- 一個研發工程師眼中的專案管理工程師專案管理
- Java 工程師如何得到一個好 OfferJava工程師
- 阿里工程師下鄉與一個瓜農的“北伐”阿里工程師
- 陸奇:如何成為一個優秀的工程師?工程師
- 一個老工程師給年輕人的十大忠告工程師
- 從一個面試官的角度談軟體工程師的面試面試軟體工程工程師
- 一個前端開發工程師的Vim跟IDE一樣前端工程師IDE
- 如何培養一個高階軟體工程師?軟體工程工程師
- 軟體工程師的15個信條軟體工程工程師
- [杭州][15-20]江乾區炫樂文化招聘php工程師PHP工程師
- [北京] 美餐網急招 Go/Golang 工程師, BI 開發工程師/品牌設計師,工程師文化團隊,等你來征服(15K-40K)~Golang工程師
- [PyQt5]一個後臺工程師的介面情結QT工程師
- 一個工作多年的嵌入式工程師漫談工程師
- 一個工程師和他價值 400 億美元的部落格工程師
- 如何做一個優秀的前端重構工程師前端工程師
- 一個高階PHP工程師所應該具備的PHP工程師
- 一個軟體測試工程師的學習體驗工程師
- 譯:軟體工程師的軟技能(一)軟體工程工程師