在《淺談面向產品的需求開發(fā)》一文中,作者提到:“面向產品與面向項目的需求開發(fā)既有差別,又有聯(lián)系,產品的核心在開箱即用,項目產品的核心在'DIY'。”
本文繼續(xù)討論項目產品的'DIY'與項目產品的軟件需求開發(fā)過程。
項目產品的'DIY',是指軟件產品要成為用戶自己的軟件產品,雖然很可能還是由專業(yè)的軟件公司來開發(fā),但項目軟件的生產在本質上是“用戶自己做”的一個過程。
客戶化程度較高是項目產品的一個重要特點,為什么要客戶化呢?
主要是為了適應具體的業(yè)務場景,并使系統(tǒng)在真實的運行環(huán)境中達到最合理的狀態(tài)。
同時,項目產品的時間性要求更強一些,如果哪個項目軟件需要做上三年兩年的,那估計要被客戶給PASS了,項目需要在最短時間內展現(xiàn)達到關鍵目標。
因此,面向項目的軟件需求開發(fā)在很大程度上是定位、分析客戶系統(tǒng)的關鍵需求上。
需要認真思考以下三個問題:
(1)哪些需求是客戶最關注的?
(2)哪些需求對系統(tǒng)的功能實現(xiàn)和系統(tǒng)的穩(wěn)定性是最關鍵的?
(3)哪些需求是最初沒有考慮到或者客戶沒有明確提出,卻是將來在實際使用系統(tǒng)時實實在在需要的?
能否抓住特定應用場景中客戶系統(tǒng)的關鍵需求,將直接影響整個項目軟件開發(fā)的成敗。
那么,下一個問題是怎樣才能抓住客戶系統(tǒng)的關鍵需求呢?
最重要的還是客戶的積極參與,要和項目開發(fā)單位的技術人員一道,以主人翁的精神積極分析思考、深入調研實際業(yè)務流程和需求點。
在實際項目中,往往有兩種極端情況,卻經常出現(xiàn):
一是客戶很“甲方”,習慣性的做甩手掌柜,認為系統(tǒng)的分析、設計、開發(fā)都是乙方該做的事情,我們已經花錢了,就應該提要求就可以了;
二是客戶很有“高度”,高姿態(tài)的認為需求是客戶自己的事情,做什么做成什么樣我們說了算,乙方去想怎樣做就可以了。
這兩種情況對項目軟件質量的提高都危害很大。
首先,作為專業(yè)的軟件開放商,應該深入的熟悉并掌握業(yè)務、把工作流程、工作場景分析清楚、透徹,并適當引進專業(yè)的業(yè)務人員參與系統(tǒng)分析工作,以確保在需求開發(fā)過程中對系統(tǒng)分析的精準性,努力做到引導性、啟發(fā)式、專家型的需求捕獲與需求開發(fā);
另外,作為代表著最終用戶的客戶,需要真正加入到項目組當中,發(fā)揮自己對自己單位人和事都比較熟悉的業(yè)務優(yōu)勢,并以主人翁的精神把項目軟件開發(fā)真正看成是和開發(fā)商共同組建的項目組的共同任務,積極參與、認真分析、加強溝通與交流,切實梳理出自己單位的關鍵業(yè)務要素來,并作為系統(tǒng)分析與設計的重點。
隨著行業(yè)的成熟和甲方的不斷專業(yè)化,客觀的講,“項目軟件開發(fā)是甲乙雙方在項目中共同的工作任務,系統(tǒng)開發(fā)成功是雙方在項目中的共同工作目標?!边@一共識并不難達成。
但問題在于能否真正做實、做到位,僅僅口頭上、態(tài)度上達成共識不夠,這種共識必須轉化成有保障的全身心的投入。
可以說一個項目軟件產品的成功往往是項目組共同的心血結晶,這里的“項目組”包含了甲、乙雙方。
而需求開發(fā)則是項目伊始就要考慮好、做好的工作,也將最終影響系統(tǒng)的實際功能與運行效果。
因此,在很大程度上,項目產品是用戶“DIY”的過程,面向項目的軟件需求開發(fā)也是用戶“DIY”的過程,這里“DIY”主要是指融入到項目組中,成為其中的一員,發(fā)揮出團隊的整體優(yōu)勢;根據自身的業(yè)務特色,量身定制,將軟件產品客戶化,形成自己的軟件。