(2)項目需求的確認
在軟件開發(fā)中,重要的活動是要明確項目的范圍、需求和提出至少一個可用的軟件架構方案。在明確項目范圍的過程中,不能認為是小型軟件開發(fā)項目馬馬虎虎的、想當然的認為已經(jīng)了解了客戶的真實需求。項目經(jīng)理應要項目的邊界、功能、限制條件等與客戶進行協(xié)商,并應以需求說明書和功能說明書的形式把客戶的需求記錄下來,并且和客戶達成一致的認識和理解。在此基礎上,再提供至少一個合適的軟件架構方案,并且完成原型系統(tǒng)。原型系統(tǒng)的目的不但是為了驗證技術上的可行性,而且是為了給客戶一個感性的認識,更好地完善對需求的理解和確認。
(3)人員角色的安排和定義
角色定義包括個人或團隊的行為和職責,包括設計人員、編程人員、測試人員、項目管理人員和輔助人員。比較小的項目往往是幾個人來完成,這幾個人基本上從頭到尾參加開發(fā)。而且由于項目小,項目負責人除了負責分析、設計和協(xié)調的工作外,也要參加編程。但在此過程中必須要合理進行人員角色的安排和定義,將技術任務和相應的責任劃分到具體的崗位,再將崗位責任落實到具體的人身上,避免推卸責任或由不專業(yè)的人馬虎應付了事。例如,一個人可以同時擔當幾個角色,一個角色也可以由幾個人來共同承擔,但前提都是要有責任的、有專業(yè)技能的。
(4)建立合理的開發(fā)流程,注重過程的銜接
一句話形容是"麻雀雖小,五臟俱全"。也是說即使是小型軟件的開發(fā),仍然應該遵循軟件開發(fā)的一般規(guī)律,必須的步驟和合理的開發(fā)流程還是不能省略。不但要建立合理的開發(fā)流程,而且還要注重分析與設計過程的銜接。當然,小軟件項目也有它自身的一些特點,實行起來可以相對靈活些。
例如:①要強調協(xié)調幾個人的工作比某一開發(fā)人員完成一段編碼更重要。因為在協(xié)調上出了漏洞,可能導致很大的問題。②是給每個開發(fā)人員要有明確的任務書,也是說每個開發(fā)人員必須非常明確自己的任務,而且這些任務是采用文檔來表示。③是要讓每個開發(fā)人員都清楚自己所做的工作在整個系統(tǒng)中處于什么地位,避免各人的代碼編寫完畢之后又要重復修改。
(5)重視文檔化過程
在小型軟件項目中有兩個特點:①是由于人員少,意味著不同人員的程序之間交互、接口相對少一些;②是由于人員少,往往是同樣的幾個人從頭到尾負責這個項目。但這兩個特點會讓人容易犯錯誤,是往往是幾個人碰一下頭,討論一下基本的任務分工便分頭去做自己的工作了,沒有一份較正式的開發(fā)文檔。當有人對任務理解有偏差時或有誤解時,可能會造成返工。因此,小型軟件開發(fā)項目也不應該忽視文檔化過程的作用。
文檔化有三方面的作用:①是有助于團隊溝通,能給別人一個交待以及給自己一個備忘。②是有助于自我理解,一般來說如果你不能寫下它,你可能沒有真正的理解它。③是有助于連貫一致性,它會使團隊擁有可重復的優(yōu)勢。雖然文檔是如此重要,但在小型項目中有用的文檔好也不要太冗長繁雜,一般1-2頁的過程說明足夠了。
(6)使用好制度與紀律這個工具
有效的團隊制度與紀律是非常有利于團隊有序工作的。也許在一、二十年前經(jīng)常聽到某位大俠單獨完成了某種創(chuàng)舉,成了人們崇拜的對象?蛇@種以自我為中心的大俠已經(jīng)很難有生存空間了,取而代之的是要發(fā)揮團隊力量才能攻克難關。
因此,軟件開發(fā)雖然是一項創(chuàng)造性的智力活動,但無可置疑的是制度與紀律對于能否成功也是至關重要的。如果因為項目小、人員少、周期短,在管理上可以一目了然失去了制度與紀律的觀念,必將會導致開發(fā)過程混亂不堪。所以,使用好制度與紀律這個工具,將有助于小型軟件團隊改進開發(fā)過程,遵從紀律來構建軟件將會得到大大的益處。
總而言之,大中型軟件開發(fā)項目事情會是很多,例如需求分析、概要設計、詳細設計、編碼、測試、安裝及維護等。但事實上,小型軟件開發(fā)項目的事情也并不少,同樣也需要管理好這些事情。雖然可根據(jù)實際的簡易程度進行適當?shù)娜∩,但只有堅持應用項目管理這個工具才是正道,才會取得成功。