軟體工程之美(一) 公開信

ValueMar發表於2019-03-09

介紹

本系列文章是 《寶玉-軟體工程之美》的學習筆記。講述了為什麼需要學習軟體工程,並且如何在實際工作中運用到其方法論。按照軟體生命週期包括:規劃,需求分析,設計,編碼,測試,執行維護等六個階段的內容。

本篇文章主要是通過任正非-全面提升軟體工程能力與實踐,打造可信的高質量產品的公開信來引出許多我們日常軟體開發中的問題。

專案管理金三角

這三角分別是:

  • 時間(多久可以完成)
  • 範圍(需要實現多少功能)
  • 成本(花多少錢)

這三個要素直接決定了產品的質量(產品的質量,客戶的滿意度)

image.png

首先得明白一個最淺顯的道理:想要“多、快、好、省”都佔著,這是不存在的,你只能選兩樣。想要便宜還想要質量好,那就得等;想要快還想要質量好,那就得多花錢;要想便宜做的又快,那就得接受質量差!

image.png


軟體架構

  • 深刻理解架構的核心要素,基於可信導向來進行架構與設計。
  • 架構設計時,讓模組之間做到高內聚,低耦合。
  • 注意安全防範,許可權控制做好,暴露出的介面要少,讓攻擊面最小化。
  • 重用公共成熟元件和服務,不要浪費時間造輪子。


 重構時機

  • 沒有萬能的架構,只有適合當時需求、當時技術條件和人員的架構。
  • “面對腐壞了的架構,要毫不猶豫的去重構它。”
  • 重構,也不要忘記“可信”這個根本目標,“同時主動以可信設計原則為導向。”


安全性

重視安全問題,提高安全意識,從架構設計,程式碼編寫,測試等方方面面去注意。

技術是工具

  • “軟體技術是我們打造產品的工具”,技術只是工具。
  • 去掉技術鄙視鏈,沒有最好的技術,只有最適合的技術。
  • 沒有落後的技術,只有落後的產品。


一致性

我們要遵守過程的一致性。遵守適用的法律法規、遵循業界共識的標準、規範,確保規範到實現的一致性、程式碼到二進位制的一致性。架構要符合架構原則,設計要遵循設計模式,程式碼要符合程式設計規範,最終做到需求與實現一致,達成各項對客戶的承諾。我們只有腳踏實地做好每一步,才能真正打造出可信的高質量產品。


個人習慣

  • 重視程式碼質量, 質量並不只是QA的事。
  • 時刻考慮重構改進,不要被動的修修補補。
  • 遵守軟體工程規範。
  • 主動,系統性的去學習提升。
  • 團隊或者個人知識庫的共享。

技術和管理的關係

一切工程問題,首先要思考能否通過技術解決,當前技術無法解決的問題,暫時由管理手段代勞,同時不停止尋找技術手段。

我們將全面強化以Committer角色為核心的程式碼稽核和提交機制,程式碼經過更加嚴格和系統的稽核才能合入版本。為此我們將建立一支更高水平的Committer角色群體,負責軟體架構的看護、程式碼的稽核和提交,整體保障合入程式碼的高質量。我們要變革考核機制,要讓架構設計好、程式碼寫得好的人脫穎而出,對程式設計能力不滿足要求的人給予幫助和培訓。但任何人如果編寫的程式碼長時間不能合入版本,將會被團隊拋棄。


相關文章