[小溪暢流觀點]軟件定制開(kāi)發(fā)不應該有按模塊的報價方式

2020-04-18 10:34:37

    這(zhè)兩(liǎng)天在與新客戶溝通時發(fā)現一個問題,客戶要求出報價單,即客戶想要開(kāi)發(fā)的軟件按照模塊來報價。這(zhè)種(zhǒng)情況我相信很多同行都(dōu)有遇到過(guò),今天表達一下小溪暢流的觀點。

    軟件定制開(kāi)發(fā)有按模塊的開(kāi)發(fā)方式但不應該有按模塊的報價方式,因爲軟件開(kāi)發(fā)是一個系統性的整體工作,不能(néng)拿出某個功能(néng)單獨的評估開(kāi)發(fā)周期和價格。

    軟件定制開(kāi)發(fā)

    軟件定制開(kāi)發(fā)是根據客戶的需求,量身定制一系列符合客戶實際應用的軟件。這(zhè)個關鍵詞很容易理解,就(jiù)想我們定制一套衣服一樣(yàng),普通的服裝設計師會(huì)把我們全身的尺寸量一遍,客戶選擇所用的材料,厲害一點的服裝設計師還(hái)會(huì)根據客戶的性格,喜好(hǎo),從事(shì)的職業,出席的場合等等因素爲客戶提供整套的服務定制結局方案。軟件定制開(kāi)發(fā)也是這(zhè)樣(yàng),但是現實情況是很多不規範的軟件公司沒(méi)有能(néng)力站在客戶的角度考慮軟件的開(kāi)發(fā)和最終的應用效果,從第一次接觸客戶開(kāi)始,爲了簽下這(zhè)一客戶,就(jiù)無限降低行業的原則。

    一套軟件的定制開(kāi)發(fā),從最初的需求确認,到最終用戶使用上需要做很多的工作。而編碼,隻是其中一小部分内容。在于客戶溝通需求時,由于客戶不專業,那麼(me)就(jiù)應該花較多的時間讓客戶能(néng)盡量多的了解軟件開(kāi)發(fā)的專業性知識。

    分模塊式的軟件開(kāi)發(fā)

    小溪暢流曾經(jīng)參與開(kāi)發(fā)過(guò)中國(guó)重汽旗下動力有限公司的生産執行系統MIS,這(zhè)個系統僅僅是編碼開(kāi)發(fā)過(guò)程就(jiù)耗費了20人的研發(fā)團隊整整一年的時間。而爲了研發(fā)團隊的工作效率更高,我們采用了模塊化的開(kāi)發(fā)方式,即插件式軟件。某個業務模塊相對(duì)獨立,注意是相對(duì)獨立。比如:倉庫管理模塊。這(zhè)個模塊是我主導開(kāi)發(fā)的,是最先進(jìn)的JIT(Just In Time)無庫存管理方式。這(zhè)個模塊與系統的整體框架約定好(hǎo)了通訊協議,用戶權限處理、數據讀取處理等規則,開(kāi)發(fā)完成(chéng)後(hòu),需要配置這(zhè)個功能(néng)模塊的相關參數到整個系統裡(lǐ),才有最終的應用效果。

軟件開(kāi)發(fā)流程

    客戶絕大多數情況不專業,不了解軟件系統的開(kāi)發(fā)工作都(dōu)有哪些,不了解軟件的運行都(dōu)需要哪些條件。很多客戶簡單的認爲,軟件開(kāi)發(fā)就(jiù)是把你們之前開(kāi)發(fā)過(guò)的模塊稍微一拼就(jiù)能(néng)夠出來一個新的軟件。

    在軟件報價評估需要的考慮的因素中确實有這(zhè)個代碼的複用率這(zhè)個參數,但,絕不是直接拿來主義。

    首先不能(néng)複用的則是軟件的UI,即軟件的界面(miàn)。任何一家軟件公司不可能(néng)直接拿别人的UI給到新的客戶,任何客戶也不能(néng)接受使用别人家的軟件UI。那麼(me),就(jiù)需要UI設計師根據客戶的具體需求設計軟件的UI。比如客戶公司的LOGO,VI的色調,比如客戶使用習慣等等因素。而軟件的UI一換,前端的數據接口就(jiù)需要重新來一遍。

    小溪暢流的長(cháng)期合作夥伴濟南公交集團,有一次與領導彙報升級計劃,領導直接就(jiù)說了,我以爲換個樣(yàng)子就(jiù)像換書皮一樣(yàng)簡單呢!

    我想有這(zhè)種(zhǒng)想法的客戶應該很多,因爲客戶不專業。

    第二,就(jiù)是涉及到數據結構的調整。人家的産品包含10個屬性,你們家的産品包含20個屬性。那麼(me)數據結構必須要調整,數據結構一旦調整,所有的接口,業務規則處理就(jiù)要重新開(kāi)發(fā)一遍。

    所以說,軟件定制開(kāi)發(fā)代碼的複用率極其有限。

    

    再說按模塊報價,上面(miàn)已經(jīng)說過(guò)插件式開(kāi)發(fā)模式,相對(duì)獨立而不是絕對(duì)獨立。而且任何軟件都(dōu)不是能(néng)夠將(jiāng)模塊獨立出來的。我們舉一個很簡單的例子。比如,微信商城或者小程序商城中的購物車功能(néng),我們不能(néng)把購物車擋車某個獨立的模塊來報價,將(jiāng)商品添加到購物車,然後(hòu)結算,支付,是一個完成(chéng)的業務流程。涉及到用戶數據,商品數據,訂單數據和支付數據。而其中的業務邏輯是整體存在的。

    

    再遇到有類似的客戶,希望做好(hǎo)售前的溝通,盡量讓客戶理解,明白。軟件定制開(kāi)發(fā)是一個系統的工程,而不是在菜市場買棵大白菜那麼(me)簡單。