于軟件產(chǎn)品化的幾點思考

發(fā)布日期:
2018-04-09

瀏覽次數(shù):

國內(nèi)很多軟件企業(yè)尤其是行業(yè)軟件企業(yè)是從開發(fā)一、二個軟件項目起家的,而且項目規(guī)模和復(fù)雜度也不大,依賴其中一兩個高手,他們能夠在客戶適度滿意的狀態(tài)下成功完成項目?;跐h捷的研究,成功的主要因素是項目具備以下特點:

  • 如果是需求定制形的項目,項目需求明確且范圍不大,變動不多。這樣的項目要么客戶方需求明確,要么企業(yè)對需求足夠了解,這樣,意味著項目雙方至少有一個人對需求有全面并且細致的了解;雙方合作氛圍很好,這可以減少需求變更的量和避免沖突尖銳。

  • 如是技術(shù)引領(lǐng)型的項目,則依賴于企業(yè)的獨特技術(shù)。

  • 企業(yè)有一兩名技術(shù)和業(yè)務(wù)的高手。

  • 項目使用的技術(shù)涉及面不廣,往往一兩個人兼而關(guān)注就可以把握。

  • 一點運氣:正好選對了技術(shù)平臺;正好高手沒有離職……

隨著時間的推移,企業(yè)承接的項目多了,人員多了,企業(yè)規(guī)模也擴大了。這時候,企業(yè)的內(nèi)外部環(huán)境都發(fā)生了很大的變化。

從外部環(huán)境來看:

1)? 客戶行業(yè)發(fā)展迅速,需求在寬度、深度、變化頻度上發(fā)生了持續(xù)的變化。具體來說,要求軟件系統(tǒng)支撐的業(yè)務(wù)多了(需求寬度增加);并發(fā)使用軟件系統(tǒng)的人多了、時間長了,業(yè)務(wù)過程復(fù)雜了(深度增加);競爭加劇,客戶需要經(jīng)常進行業(yè)務(wù)的調(diào)整(變化頻度多了)。這種變化,往往會使客戶的需求管理成為一個專業(yè)、持續(xù)、并且工作量相當(dāng)?shù)倪^程。也就是說,企業(yè)具有需求管理與軟件開發(fā)進行分工的需求。

2)? 軟件系統(tǒng)開發(fā)使用的第三方技術(shù)平臺種類多,且復(fù)雜,更新?lián)Q代也快,如果軟件系統(tǒng)在性能、持續(xù)穩(wěn)定性有要求,并且軟件使用周期設(shè)計要求滿足一定的年限,就要求企業(yè)對第三方技術(shù)平臺的發(fā)展進行跟蹤,并尋求有效應(yīng)用的實際經(jīng)驗(最佳實踐規(guī)范)。這樣,企業(yè)就逐步有將集成應(yīng)用技術(shù)(含軟、硬件集成應(yīng)用技術(shù))進行專業(yè)分工的需求。企業(yè)的軟件項目越多、第三方技術(shù)平臺越多樣復(fù)雜、軟件系統(tǒng)的要求故障時間越短,這方面的需求就越迫切。

3)? 市場技術(shù)競爭的重要性增加,關(guān)系競爭弱化,企業(yè)發(fā)現(xiàn)為了獲取合同,他們需要有研發(fā)能力的保障,并且要在技術(shù)競爭考察中勝出。迫使企業(yè)對客戶關(guān)注的重點專業(yè)技術(shù)進行投入。

從內(nèi)部狀況來看:

1)? 企業(yè)同時運作軟件項目數(shù)量增多,但依賴于高手的項目模式?jīng)]有改變。各項目都需要高手來保障,如果沒有高手,項目就停滯不前,而且往往以非正常手段結(jié)束。

2)? 隨著軟件項目的深入展開或軟件的升級換代,企業(yè)會發(fā)現(xiàn)有些模塊的開發(fā)總是在重重復(fù)復(fù)地做,上一個版本做了,這個版本還要繼續(xù)做,同時開展幾個項目,都有類似的事情在重復(fù)做。但要直接使用之前的內(nèi)容,又不行。例如,很典型的是,每個軟件項目都在做系統(tǒng)的登陸權(quán)限管理;每個軟件項目都有錄入合法性校驗問題等等。

3)??技術(shù)人員總是有很多理由不去寫文檔,如果不是一個人將一個模塊從分析設(shè)計負責(zé)到代碼,后一個環(huán)節(jié)的人總是得意于自我創(chuàng)新,并容易發(fā)生設(shè)計人員和開發(fā)人員的扯皮。

4)??軟件項目在前期開發(fā)時候是一路凱歌,到了快要交付的時候,卻又難產(chǎn),總是達不到要求,改改代碼重新測試,沒完沒了。而技術(shù)人員又非常辛苦。甚至出現(xiàn)部分或大全部返工現(xiàn)象。

5)??軟件項目開始的時候,誰也不知道什么時候能完成,領(lǐng)導(dǎo)說三個月就三個月,半年就半年,實際上,沒有按期完成的,延期3-5個月是常事,1-2年也是有的,甚至不得不換班子重開爐灶。

面對以上變化和問題,企業(yè)的解決辦法之一是延續(xù)原有項目的成功模式——高手主導(dǎo)的項目模式,即給每一個項目配備高手。如果沒有那么多高手,就讓把所有的項目壓在有限的高手身上。如果高手有限的話,實際上企業(yè)是將問題轉(zhuǎn)移給相對低資源能力的高手去解決。當(dāng)然,有限的高手也同樣可以使用同樣的手法進行問題轉(zhuǎn)嫁。這有點像項目承包,企業(yè)完成軟件項目的能力依賴于不同的高手,如果高手恰恰不行的話,軟件項目將一塌糊涂。高手們在項目中可以進行分工調(diào)整,由于項目的臨時性特征,這些調(diào)整注定也是為項目服務(wù)的。形成公司能力積累的方式往往是產(chǎn)生一些專業(yè)的高手。而且,項目出現(xiàn)的問題越多,這樣的高手越能獲得公司的重視。這種解決辦法由于將所有的問題轉(zhuǎn)移到高手身上,企業(yè)管理就研發(fā)方面的決策難以形成明確的方向和目標(biāo),在研發(fā)方面只有用人的戰(zhàn)略。

顯然,以上并非根本性的解決方案。企業(yè)很難找到或培養(yǎng)那么多高手,導(dǎo)致企業(yè)業(yè)務(wù)發(fā)展受限,而且這種方式面臨的風(fēng)險很大;過度的項目定制開發(fā)不但影響項目的交付進度和質(zhì)量,也使成本居高不下,侵襲了企業(yè)本來就比較有限的利潤。那么,出路只能是走向產(chǎn)品化。

然而,軟件產(chǎn)品化是一件相當(dāng)困難的事情,企業(yè)在各個方面都將面臨挑戰(zhàn),并必須作出相應(yīng)的改變。

首先,企業(yè)需要轉(zhuǎn)變經(jīng)營理念和思路。其實不管是項目化還是產(chǎn)品化,都要堅持客戶導(dǎo)向,但是就客戶導(dǎo)向的內(nèi)涵和實現(xiàn)方式上,很多企業(yè)往往是被動地滿足客戶需求,甚至遷就客戶五花八門的需求。我們到底選擇什么樣的客戶?這是企業(yè)成長中必須作出的回答。即便已經(jīng)明確了這個問題,對客戶各種需求也不是不加區(qū)別的滿足,而是需要抓住目標(biāo)客戶的核心需求和偏好,并認識到客戶只要在核心利益上得到足夠的滿足,他們愿意犧牲一些個性化的特性——這正是產(chǎn)品化的前提假設(shè)。

在實現(xiàn)方式上,當(dāng)然就是要堅持平臺化的開發(fā)模式,基于需求分析提煉和規(guī)劃產(chǎn)品平臺,然后在產(chǎn)品平臺的基礎(chǔ)上,劃分產(chǎn)品系列,從而形成平臺產(chǎn)品或產(chǎn)品版本。在貫徹平臺化開發(fā)思想的過程中,應(yīng)注意在差異化和通用性上取得平衡。可以說,復(fù)制是軟件利潤的唯一來源,所以軟件重用度的目標(biāo)甚至要優(yōu)先于差異化的目標(biāo),因為只要有足夠大的重用度,就能夠大幅度降低成本,企業(yè)只要在核心需求上滿足了客戶,再加上價格和速度的優(yōu)勢,必將在競爭中處于不敗之地。

根據(jù)漢捷的咨詢經(jīng)驗,產(chǎn)品平臺化實施過程中將面臨各方面的困難。面對外部一些新的市場機會和客戶特殊需求,營銷人員總是傾向于把握新機會和響應(yīng)客戶的新需求,如果高層在增長壓力下沒有確定相應(yīng)的戰(zhàn)略原則去約束產(chǎn)品決策,則很可能使既定產(chǎn)品定位和產(chǎn)品化方向的努力付諸東流。即使公司界定了產(chǎn)品定位和方向,在具體操作時,到底用戶的某個特性是否需要加入產(chǎn)品規(guī)劃中,到底某個需求是否應(yīng)當(dāng)納入到產(chǎn)品功能開發(fā)中......如何在標(biāo)準(zhǔn)產(chǎn)品與客戶最終產(chǎn)品之間取得平衡,這仍然產(chǎn)品化開發(fā)模式下最為頭痛的問題。有些需求一旦納入標(biāo)準(zhǔn)產(chǎn)品之中,對產(chǎn)品可能是致命的打擊。在平臺化開發(fā)模式下,產(chǎn)品架構(gòu)和模塊/組件設(shè)計將更多地考慮開放性、通用性和冗余設(shè)計,從局部來看會影響產(chǎn)品開發(fā)的進度和效率,尤其對新產(chǎn)品系列的第一個產(chǎn)品,將需要更長時間才能推向市場,這是企業(yè)必須認識和接受的代價,但換來的是后續(xù)產(chǎn)品開發(fā)速度的大幅提升。另外,產(chǎn)品平臺化開發(fā)還會來自內(nèi)部高手的挑戰(zhàn)和開發(fā)人員習(xí)慣的阻力。高手們總是希望按照自己的思路規(guī)劃和開發(fā)產(chǎn)品,要讓大家都統(tǒng)一到一致的平臺架構(gòu)和開發(fā)模式下絕非易事。開發(fā)人員也不喜歡條條框框,總是想弄點什么新的東西,但平臺化則需要更多的標(biāo)準(zhǔn)化和規(guī)范要求。綜上,要解決這些難題,企業(yè)需要足夠的決心和耐心。

顯然,軟件產(chǎn)品化不僅僅是技術(shù)上的問題,然而技術(shù)也是其中關(guān)鍵的一環(huán),包括架構(gòu)設(shè)計、技術(shù)平臺、模塊化構(gòu)造、數(shù)據(jù)結(jié)構(gòu)、函數(shù)/算法、接口技術(shù)等。例如技術(shù)平臺的工作一般包括:

  • 第三方技術(shù)平臺選型

  • 技術(shù)使用研究,確定軟件項目技術(shù)路線和技術(shù)架構(gòu)

  • 制定開發(fā)規(guī)范,并形成開發(fā)案例和模板,掃清開發(fā)隊伍大規(guī)模開發(fā)時的障礙

  • 開發(fā)技術(shù)控件,提高開發(fā)隊伍大規(guī)模開發(fā)的效率等等。

軟件產(chǎn)品化還與行業(yè)發(fā)展?fàn)顩r、企業(yè)產(chǎn)品形態(tài)成熟度、企業(yè)管理成熟度、軟件技術(shù)發(fā)展、人員職業(yè)化程度等因素相關(guān),所以軟件產(chǎn)品化和平臺化建設(shè)還要與企業(yè)研發(fā)管理、項目管理、人力資源管理一同推進。

相關(guān)推薦