關於Release Management

什麼是release management?

簡單的說就是管理軟件的發佈和更新。這是一個相對比較新但是在軟件工程領域中發展相對迅速的一個方面

爲什麼需要release management?
1 軟件資源,軟件開發過程以及開發人員的分散化,導致軟件發佈管理的複雜化。比如在全球化協作的環境下開發,開發人員分佈在全球各個不同的site,每天都 有不同的人在對軟件的code 進行更新和修改,如果沒有統一的發佈管理,那麼任何一個環節出現問題,都會導致複雜度急劇上升,從項目軟件的角度上講,日積月累,項目的target date就會沒有保障,因此必須有一個統一的環節對相關方面進行把關和統一管理。
2軟件開發在當前的環境下不是一蹴而就的過程。不同於傳統的軟件開發,當今環境下軟件開發大多采取迭代式或者敏捷軟甲開發過程,即使採取最傳統的瀑布開發 流程,也不能保證軟件發佈後客戶不對軟件提出修改或者升級意見。而很多情況下爲了搶先佔領市場和抓住有利時機,很多軟件不可能將所有 requirement 全部實現再發布,而是先發布包含某些功能的版本,然後根據市場的反饋和相關決策進行後續開發。這樣爲了保證產品的長期成功,需要統一的過程來管理這些發佈 和變更。
3release management是對PM的一個有效的補充。軟件的持續變更和集成需要佔有的資源來保證軟件開發流程的繼承,測試,發佈和相關係統的支持。即使PM在 項目管理過程中也會關注這些process 和resouce,但畢竟幾種在比較high level的層面,而PM也不可能在後續的過程中有那麼多時間去關注每天技術層面的變化。

Release Manager 扮演的角色:
(1) 促進者:是stakeholder或者說客戶的一個聯絡員。保證每一個business unit 都能夠按時並且平滑的進行發佈或更新。此時他代表了客戶的利益。
(2)“守門員”:保證產品或項目能按期實現
(3)Architect :站在較高層次,對軟件實現的流程進行識別,設計以及創建,以便能夠高效的管理code
(4)Supporter:給開發以及其他相關人員一些支持,以解決除code層面的其他問題;
(5)協調員:對資源,項目,團隊等進行協調。

Release Manager主要關注的層面:

  • Software Defects
  • Issues
  • Risks
  • Software Change Requests
  • New Development Requests (additional features and functions)
  • Deployment and Packaging
  • New Development Tasks

Release Management 的基本process:

software Release cycle:

Pre-alpha:
在軟件進入測試之前的所有活動,包括需求分析,軟件設計,編碼實現以及UT。

Alpha:
alpha是軟件release的第一個階段,其中的活動可能包括白盒測試,黑盒測試,灰盒測試。在此階段軟件可以是不穩定的,crash和data loss一般可以接受。
Alpha階段通常用feature freeze爲結束點,即意味着功能完成。

Beta:
從feature complete開始,在beta測試階段主要focues在可用性。beta release也是軟件首次被開發組織以外的用戶使用。beta測試的用戶可以是客戶、用戶或者組織內的prospctive customer。

release candidate (RC) :
code complete階段,除非有defect需要再fix一般不會有新的code變化。

RTM:用的很少,所以不太瞭解。一般是到了RC就直接GA了

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章