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