方格精選

軟體開發見聞錄#9:談「開發紀律」/葉光釗

閱讀時間約 4 分鐘

隨著軟體開發方法、工具、以及成品應用方式的變化,軟體開發已經不能只靠單一證照、程序、手段來完成;雖然如此,為了專案的進度與品質控管,仍然有一些共通的道理是必須遵守的。本文就來談談這些同樣也適用於其他專案管理的基本原則。

在微軟歷鍊這麼多年,有件事蠻汗顏的,就是從來沒有拿到過任何證照,連微軟自己的都沒有;還好公司、同事和客戶都很寬大,所以對工作並沒有什麼影響。
倒是很多人問我這個問題:微軟對軟體開發的方法,有沒有像ISO或CMMI之類的標準化認證?經理人需不需要考這方面的證照?
答案很簡單:沒有。
就我記憶所及,甚至連「需不需要這樣的標準化」都沒有討論過;而接下來的問題就很明顯:為什麼沒有?
當然,沒有標準化,並不表示沒有方法;實際上,微軟對於開發的紀律是非常重視的,因為過去發生過太多的慘案。
另一個特別的地方,就是每個主要開發團隊的自主性都非常高,所以個別團隊所訂出來的方法都不太一樣;更絕的是,以Office團隊為例,每個版本所用的工程追蹤控管指標都不一樣。
為什麼會有這種現象?我的解讀是兩個因素:
1. 功能策略不同
工程手法與每個版本的「功能策略」有很密切的關係;很多團隊還保有「A/B release」、也就是「時程一長一短」的習慣,而不同節奏的專案,KPI就不會一樣。
長時程專案多半因為要做架構的程式碼重構(refactoring)、或是檔案格式的改變 (例如有名的「doc」轉換為「docx」格式),所以控管方式比較接近傳統法則,相對比較謹慎。
而短時程專案則用來釋出新功能,所以手法比較像現在流行的敏捷開發,不過就是「微軟化」之後的版本。
2. 工程方法不同
隨著技術的快速演進,工程方法也必須跟著配合。尤其現今開發的主軸是以雲端服務為主,它的品質與效能指標與早期的用戶端程式碼(client code)或伺服器端程式碼(server code)也完全不同(例如服務相關程式碼完全不需要測「啟動時間」之類的效能)。
此外,加上開發工具也在變化;解譯程式碼(scripting language)與編譯程式碼(compiling language)的程式碼審查(code review)方式有很大的差別。這樣要固定住工法,幾乎是不可能的。

方法不同,原則相通

話說回來,開發工程究竟不像流行音樂,可以說改就改;其中還是有幾件重要的原則會恆定持續。而且,即使每個團隊都有自主權,還是會不約而同遵守這些些原則:
  • 臭蟲追蹤(Bug tracking)資料庫的公開透明
微軟很早就定下bug tracking工具(早期叫做「RAID」,現在稱為「Product Studio」)資料庫內容只能增加、不允許修改或刪除的規矩;所有的痕跡都必須留下,沒有人能夠掩蓋問題或「吃案」。
而且只要是微軟員工,都有權利檢視特定產品的臭蟲內容(當然,看不看得懂是另外一件事)。因為,公開透明是保持品質水準的基礎。
  • 工作完成時間的回報
這一點則是花了好久才建立起來的習慣。因為開發者通常不習慣被要求,甚至早期還有許多亂填資料的情況;但是對於較長的工期預測來說,這是不得不做的事。
如果沒有持續的資料累積,工期永遠只能由資深開發者來估計、或者根本亂猜;對於這一點,我們還給了一個專有名詞「SWAG」(Stupid wild-a** guess,總之就是「笨蛋亂猜」)。
微軟的產品經理,對於開發者所提的SWAG是不能質疑的,所以我們振振有詞地要求他們有回報的義務。
  • 超級謹慎的DCR(design change request,設計變更請求)審查
微軟的工程管理有一句名言「You always have the next release」,意思就是除非你有天塌下來的理由,別想DCR會過關,還是下個階段再提吧。
當然有些時候還是不得已要改設計,此時很多團隊就會設下限額;每個重大里程碑或衝刺項目sprint)只能有一或兩個DCR,而且每次審查都會問到祖宗八代,盡量要你知難而退。
原則如此,還是要有適當的組織結構才能落實。下一次就來聊一下微軟(尤其是Office團隊)落實開發紀律的組織及方法。
為什麼會看到廣告
avatar-img
1.4K會員
2.0K內容數
為您送上頂尖作者的最新管理與科技產業思維。
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
經營企業的過程中,除了努力開發新產品、新流量、新系統,同時也不能忽略管理的重要性,公司才能健康穩健地成長。本文提供四種電子商務模式的差異分析、以及現金流量的基本控管方式與工具,供讀者參考運用。
許多網路新創公司都提供「在家工作」的彈性制度,讓員工透過遠端工作,突破以往固定工作時地限制,以獲得更大的時間彈性。這樣的制度明明相當優渥,為什麼還有違法、甚至遭到裁罰的困擾?該怎麼辦?
如果一個企業或部門只強調管理,而不重視領導,那麼就會形成一種「官僚文化」;反之,如果只強調個人領導、而不重視制度化管理,那麼這個企業或部門就會形成隨領導者好惡的「幫派文化」。
這個社會就是一樣米養百樣人。永遠都會有許多個人和組織,為了特定目的和利益,去犯法或鑽法律漏洞;在虛擬世界,當然也會有很多人用各種方式濫用平台服務,因而衍生出各種平台管理上的難題。但什麼該管、什麼不該管、該管到什麼程度,都是困難的決定。
這個世界上,究竟還需不需要另外一張沒什麼福利的信用卡?要知道這個問題的答案,不妨先瞭解一下Apple Card的運作模式,而不要急著問它可以累積多少里程、或是現金回饋幾%。
在〈從兩種模型中,理解商業模式的意義與改進方法〉一文中,筆者透過「商業模式畫布」及「魏朱商業模式」來說明商業模式的意義。但前者沒有反映現金流量概念、以及內外部利益結構關係;在這兩點上,魏朱商業模式有很好的補充。本文則就這個題目,繼續深入探討。
經營企業的過程中,除了努力開發新產品、新流量、新系統,同時也不能忽略管理的重要性,公司才能健康穩健地成長。本文提供四種電子商務模式的差異分析、以及現金流量的基本控管方式與工具,供讀者參考運用。
許多網路新創公司都提供「在家工作」的彈性制度,讓員工透過遠端工作,突破以往固定工作時地限制,以獲得更大的時間彈性。這樣的制度明明相當優渥,為什麼還有違法、甚至遭到裁罰的困擾?該怎麼辦?
如果一個企業或部門只強調管理,而不重視領導,那麼就會形成一種「官僚文化」;反之,如果只強調個人領導、而不重視制度化管理,那麼這個企業或部門就會形成隨領導者好惡的「幫派文化」。
這個社會就是一樣米養百樣人。永遠都會有許多個人和組織,為了特定目的和利益,去犯法或鑽法律漏洞;在虛擬世界,當然也會有很多人用各種方式濫用平台服務,因而衍生出各種平台管理上的難題。但什麼該管、什麼不該管、該管到什麼程度,都是困難的決定。
這個世界上,究竟還需不需要另外一張沒什麼福利的信用卡?要知道這個問題的答案,不妨先瞭解一下Apple Card的運作模式,而不要急著問它可以累積多少里程、或是現金回饋幾%。
在〈從兩種模型中,理解商業模式的意義與改進方法〉一文中,筆者透過「商業模式畫布」及「魏朱商業模式」來說明商業模式的意義。但前者沒有反映現金流量概念、以及內外部利益結構關係;在這兩點上,魏朱商業模式有很好的補充。本文則就這個題目,繼續深入探討。
你可能也想看
Google News 追蹤
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
11/20日NVDA即將公布最新一期的財報, 今天Sell Side的分析師, 開始調高目標價, 市場的股價也開始反應, 未來一週NVDA將重新回到美股市場的焦點, 今天我們要分析NVDA Sell Side怎麼看待這次NVDA的財報預測, 以及實際上Buy Side的倉位及操作, 從
Thumbnail
Hi 大家好,我是Ethan😊 相近大家都知道保濕是皮膚保養中最基本,也是最重要的一步。無論是在畫室裡長時間對著畫布,還是在旅途中面對各種氣候變化,保持皮膚的水分平衡對我來說至關重要。保濕化妝水不僅能迅速為皮膚補水,還能提升後續保養品的吸收效率。 曾經,我的保養程序簡單到只包括清潔和隨意上乳液
Thumbnail
軟體開發專案管理的失敗原因複雜多樣,但管理不善是其中一大原因。學習為軟體開發專案而設的管理方法是有效管理的第一步,需對軟體開發專案的特徵進行評估,選擇合適的軟體開發生命週期和專案管理方法。
Thumbnail
R036 Blog API 伺服器的維護更新日誌 (2024/04/30) 開發環境技術 語言: Javascript 環境: Node JS 框架: Express.js 本次維護目的 優化及測試API伺服器程運行 重溫程式碼架構以便日後更新優化 Reac
Thumbnail
軟體開發時應該要有固定的命名規則,以提高程式的可讀性,本篇文章帶你認識常見的幾個命名方法。
Thumbnail
OpenAI 正在開发兩種類型的 AI 助手,這些軟體將協助完成原本由人類執行的任務,而無須人類密切監督。其中一種類型的 AI 代理人可以透過接管使用者的設備來自動化某些複雜任務,例如 ChatGPT 助理將數據從文檔轉移到電子表格或填寫費用報告並將它們輸入到會計軟體中。此類 AI 助理將需要使用者
那麼,Scrum 究竟是什麼?它是如何運作的,又是如何能夠幫助我們更有效地開發產品?接下來,我們將為你全面解釋 Scrum 運作流程,通過詳細 Scrum 入門教學,帶你一起掌握 Scrum 敏捷開發方法!
Thumbnail
前陣子在跟讀者聊天的時候,發現在 Junior 階段很容易遇到一些工作上挫折,但又不太知道怎麼解決或是優化。 也有可能在開發過程中碰到了些大地雷,但身邊的前輩、同事不一定能用比較軟性的方式好好的傳達,這是非常常出現的,尤其是在跨部門協作經驗較少的工程師,會不曉得怎麼用淺顯易懂的語言告訴⋯⋯
Thumbnail
這個秋,Chill 嗨嗨!穿搭美美去賞楓,裝備款款去露營⋯⋯你的秋天怎麼過?秋日 To Do List 等你分享! 秋季全站徵文,我們準備了五個創作主題,參賽還有機會獲得「火烤兩用鍋」,一起來看看如何參加吧~
Thumbnail
11/20日NVDA即將公布最新一期的財報, 今天Sell Side的分析師, 開始調高目標價, 市場的股價也開始反應, 未來一週NVDA將重新回到美股市場的焦點, 今天我們要分析NVDA Sell Side怎麼看待這次NVDA的財報預測, 以及實際上Buy Side的倉位及操作, 從
Thumbnail
Hi 大家好,我是Ethan😊 相近大家都知道保濕是皮膚保養中最基本,也是最重要的一步。無論是在畫室裡長時間對著畫布,還是在旅途中面對各種氣候變化,保持皮膚的水分平衡對我來說至關重要。保濕化妝水不僅能迅速為皮膚補水,還能提升後續保養品的吸收效率。 曾經,我的保養程序簡單到只包括清潔和隨意上乳液
Thumbnail
軟體開發專案管理的失敗原因複雜多樣,但管理不善是其中一大原因。學習為軟體開發專案而設的管理方法是有效管理的第一步,需對軟體開發專案的特徵進行評估,選擇合適的軟體開發生命週期和專案管理方法。
Thumbnail
R036 Blog API 伺服器的維護更新日誌 (2024/04/30) 開發環境技術 語言: Javascript 環境: Node JS 框架: Express.js 本次維護目的 優化及測試API伺服器程運行 重溫程式碼架構以便日後更新優化 Reac
Thumbnail
軟體開發時應該要有固定的命名規則,以提高程式的可讀性,本篇文章帶你認識常見的幾個命名方法。
Thumbnail
OpenAI 正在開发兩種類型的 AI 助手,這些軟體將協助完成原本由人類執行的任務,而無須人類密切監督。其中一種類型的 AI 代理人可以透過接管使用者的設備來自動化某些複雜任務,例如 ChatGPT 助理將數據從文檔轉移到電子表格或填寫費用報告並將它們輸入到會計軟體中。此類 AI 助理將需要使用者
那麼,Scrum 究竟是什麼?它是如何運作的,又是如何能夠幫助我們更有效地開發產品?接下來,我們將為你全面解釋 Scrum 運作流程,通過詳細 Scrum 入門教學,帶你一起掌握 Scrum 敏捷開發方法!
Thumbnail
前陣子在跟讀者聊天的時候,發現在 Junior 階段很容易遇到一些工作上挫折,但又不太知道怎麼解決或是優化。 也有可能在開發過程中碰到了些大地雷,但身邊的前輩、同事不一定能用比較軟性的方式好好的傳達,這是非常常出現的,尤其是在跨部門協作經驗較少的工程師,會不曉得怎麼用淺顯易懂的語言告訴⋯⋯