發(fā)行是產品開發(fā)完成并交付客戶安裝、配置、使用的過程。軟件發(fā)行做為生產完成或階段性完成時刻的活動,不僅是一個短時期的任務,它和開發(fā)過程中的其他活動密切相關。
在整個軟件的生命周期中,開發(fā)活動總是迭代進行的。即使對于傳統(tǒng)的軟件開發(fā)方法(結構化設計),在維護階段一個用戶的需求變更,將導致軟件的新版本發(fā)行, 這時候不得不進行被動的迭代——在原軟件的基礎上改進并發(fā)行改進的補丁或者完整版本。但人們在面向對象的開發(fā)方法中,更加傾向于主動的迭代過程,以提高軟 件產品的質量。
我們也用更現代的視角來觀察整個過程和軟件發(fā)行這個活動。開發(fā)計劃在最初時刻定義了發(fā)行版本的內容,正常情況下,未來的發(fā)行將包含計劃中的所有開發(fā)內容。 開發(fā)過程中的各種活動如評審、測試等保證了發(fā)行的質量。版本管理是一個好的發(fā)行成功的根本保證。發(fā)行活動記錄軟件版本和發(fā)行的目標客戶,以進行后期的維護 如補丁發(fā)行、版本更新。
軟件的發(fā)行是有節(jié)奏、有內容、有質量的。節(jié)奏保證了開發(fā)人員和最終客戶的一致,所有人都知道版本將在何時發(fā)行。內容滿足最終客戶的期望。質量保證產品即滿足用戶的需求,又能夠提高后續(xù)版本發(fā)行能力。

軟件發(fā)行中主要存在的問題有三種:短路的發(fā)行、內容膨脹和缺陷積累。
短路的發(fā)行
短路的發(fā)行是指為了保證發(fā)行的節(jié)奏,或者因為設定了DEADLINE而導致在開發(fā)過程中縮減活動,如不經評審、粗略測試等。這導致了發(fā)行質量的下降,并影 響到后續(xù)的發(fā)行版本。這在國內的軟件企業(yè)中非常嚴重,我們常常看到連續(xù)的加班和最終的低質量的產品并存。
解決這個問題的方法是使用嚴密可行的、可變更的版本計劃。嚴密可行的計劃可以直接保證版本及時發(fā)行;當發(fā)現不能及時發(fā)行版本時縮減版本計劃中的內容可以在保證及時發(fā)行的基礎上同時保證版本的質量,畢竟質量才是最重要的。
內容的膨脹
內容的膨脹是指在版本開發(fā)過程中,不斷的增加計劃外的內容。這必然導致兩個結果之一:要么降低版本質量,要么拖延版本發(fā)行時間。任何一項都不是我們想看到 的。這和項目經理/需求人員的控制能力有關,很多時候,頂住客戶的壓力不是一件容易的事情。
所以這個問題的最終解決方案是提高項目經理/需求人員的能力,提高客戶對軟件開發(fā)的理解。除此之外,我們能夠做的就是在增加內容的同時縮減低優(yōu)先等級的內容,來保證發(fā)行的質量和節(jié)奏。
缺陷的積累
這個問題大家都已經注意到了,在發(fā)行前期,匆忙的構建過程中發(fā)現大量的缺陷,最終導致發(fā)行的拖延。
解決這個問題的手段也比較簡單,就是進行有效的日構建,盡早發(fā)現并解決缺陷,爭取在發(fā)行時刻的主動權。
最后,我們來看一個例子:
我本來想在今晚12:00以前寫完整個發(fā)行管理的,但現在看來我是不能完成了。我不想拖到12:00以后再發(fā)這篇文章,也不能敷衍的隨便寫寫了事。所以我 砍掉后面的發(fā)行管理的細節(jié)內容,這些內容將在后續(xù)版本中發(fā)行。這樣我即保證了本篇的質量,也趕上了我給自己定義的時間線。
軟件發(fā)行管理(下)
在整個軟件的生命周期中,開發(fā)活動總是迭代進行的。即使對于傳統(tǒng)的軟件開發(fā)方法(結構化設計),在維護階段一個用戶的需求變更,將導致軟件的新版本發(fā)行, 這時候不得不進行被動的迭代——在原軟件的基礎上改進并發(fā)行改進的補丁或者完整版本。但人們在面向對象的開發(fā)方法中,更加傾向于主動的迭代過程,以提高軟 件產品的質量。
我們也用更現代的視角來觀察整個過程和軟件發(fā)行這個活動。開發(fā)計劃在最初時刻定義了發(fā)行版本的內容,正常情況下,未來的發(fā)行將包含計劃中的所有開發(fā)內容。 開發(fā)過程中的各種活動如評審、測試等保證了發(fā)行的質量。版本管理是一個好的發(fā)行成功的根本保證。發(fā)行活動記錄軟件版本和發(fā)行的目標客戶,以進行后期的維護 如補丁發(fā)行、版本更新。
軟件的發(fā)行是有節(jié)奏、有內容、有質量的。節(jié)奏保證了開發(fā)人員和最終客戶的一致,所有人都知道版本將在何時發(fā)行。內容滿足最終客戶的期望。質量保證產品即滿足用戶的需求,又能夠提高后續(xù)版本發(fā)行能力。

軟件發(fā)行中主要存在的問題有三種:短路的發(fā)行、內容膨脹和缺陷積累。
短路的發(fā)行
短路的發(fā)行是指為了保證發(fā)行的節(jié)奏,或者因為設定了DEADLINE而導致在開發(fā)過程中縮減活動,如不經評審、粗略測試等。這導致了發(fā)行質量的下降,并影 響到后續(xù)的發(fā)行版本。這在國內的軟件企業(yè)中非常嚴重,我們常常看到連續(xù)的加班和最終的低質量的產品并存。
解決這個問題的方法是使用嚴密可行的、可變更的版本計劃。嚴密可行的計劃可以直接保證版本及時發(fā)行;當發(fā)現不能及時發(fā)行版本時縮減版本計劃中的內容可以在保證及時發(fā)行的基礎上同時保證版本的質量,畢竟質量才是最重要的。
內容的膨脹
內容的膨脹是指在版本開發(fā)過程中,不斷的增加計劃外的內容。這必然導致兩個結果之一:要么降低版本質量,要么拖延版本發(fā)行時間。任何一項都不是我們想看到 的。這和項目經理/需求人員的控制能力有關,很多時候,頂住客戶的壓力不是一件容易的事情。
所以這個問題的最終解決方案是提高項目經理/需求人員的能力,提高客戶對軟件開發(fā)的理解。除此之外,我們能夠做的就是在增加內容的同時縮減低優(yōu)先等級的內容,來保證發(fā)行的質量和節(jié)奏。
缺陷的積累
這個問題大家都已經注意到了,在發(fā)行前期,匆忙的構建過程中發(fā)現大量的缺陷,最終導致發(fā)行的拖延。
解決這個問題的手段也比較簡單,就是進行有效的日構建,盡早發(fā)現并解決缺陷,爭取在發(fā)行時刻的主動權。
最后,我們來看一個例子:
我本來想在今晚12:00以前寫完整個發(fā)行管理的,但現在看來我是不能完成了。我不想拖到12:00以后再發(fā)這篇文章,也不能敷衍的隨便寫寫了事。所以我 砍掉后面的發(fā)行管理的細節(jié)內容,這些內容將在后續(xù)版本中發(fā)行。這樣我即保證了本篇的質量,也趕上了我給自己定義的時間線。
軟件發(fā)行管理(下)