企業級軟體系統開發為何這麼貴?

liu66liu發表於2019-09-02


從事企業資訊化管理多年,經常有人諮詢開發一個企業軟體要多少錢?其實這個問題感覺很難回答,因為無論你怎麼回答,得到的反饋大機率是:“怎麼這麼貴?”

那麼今天我們就一起來看看為什麼企業軟體開發會這麼貴!

首先,改革開放這麼多年,企業太需要資訊化管理。然而,比這更重要的是:決策層、領導層要懂資訊化,如果不懂,是很難出成果的,還會浪費時間,打擊企業資訊化信心。因為不懂,所以他們面臨的第一大障礙就是:軟體開發太貴!有這種思想和理解,對資訊化而言所帶來的阻礙力量比你想象中要大。

記得知乎上有一個問題:如何看待領導花十萬上考勤系統的行為?--題主言下之意就是領導很二,人家買個考勤機幾百塊搞定的問題,領導花了十萬?當然還有可能認為領導吃了很多回扣,這種情況當然不排除,但不是我們今天的討論範圍。所以就算有人認為很簡單考勤系統,如果使用者數1000,全國都有門店,要實現考勤漫遊,如果還要支援手機端打考勤和請假,人員有定期排班和不定期排班,連上軟硬體,還有需求調研、開發、培訓、實施全員一起,全部上好(好吧,外加領導層全力支援!)。給你10萬,如果要開發絕對虧的底褲不剩(除非你有現成軟體)!如果對方領導還內部都沒統一意見,給你五十、一百萬都未必能成。

傳統行業上資訊化,企業老闆(或決策者)非常關鍵:

1、老闆(決策者)要懂資訊化,只有自己懂了,才能評價貴不貴的問題,才能清晰資訊化真正的價值,才能支援資訊化正確走向。現在當老闆真不容易,要會經營管理,能搞定客戶和各種關係,還要能盈利,還要懂資訊化。。。當然,老闆決策層懂,並不是要懂如何開發?畢竟不是每個老闆都是馬化騰、雷軍等程式設計師出身,而是要懂資訊化的價值!不懂怎麼辦?學呀!多參加IT論壇網際網路會議都好,不乏有老闆為了搞懂九零後思維,專門學習打王者榮耀、看玄幻網路小說;

2、其次,他要找一個懂資訊化建設的人來全盤規劃企業資訊化(就是CIO),並全面信任他(當然,前提他要有這個能力)。對這個人的要求其實非常高:

1)他要有很全面的IT視野。他的視野,一定程度決定企業視野,甚至決定企業的發展空間,IT經歷一定要豐富,IT技能要全面(要都幹過),包含七個層面:基礎架構、網路、伺服器、運維、開發、資料庫、實施測試,缺一不可。這七個層面全面了,他才可能將企業需求轉化為可操作的資訊系統(還不涉及到資金、時間成本、部門協作等問題)。

2)他要懂企業經營管理。企業上資訊化,不僅僅是把軟體開發出來,部署到伺服器就算成,如果用不起來就是一堆廢銅爛鐵(還是很費電、不斷增加成本的廢銅爛鐵)。所以他要清晰企業經營管理的方方面面,所有顯規則和潛規則,要能辨別有些即使他們叫苦連天,實際並無多大用處的需求,他(cio)的判斷力,就來源於他對企業經營管理的理解和經驗,如果判斷錯誤,後果可能很嚴重。所以,他不但是IT高手,還要是企業經營管理的能手,必須是老司機。

3)老闆必須全面信任他。他提出很多東西,如果老闆不完全信任,可能就支援不到位,系統本身很容易出BUG錯誤之類,如果不夠信任,系統一出問題,老闆心裡發毛,很多事情不議或不決,專案很可能就黃了。

3、要對資訊系統可控。這個也非常非常重要,但很多人沒有意識到(或沒感覺)。很多企業,選了大牌如SAP IBM 微軟 Saleforce 用友、金蝶等全套方案,看上去很完美了。並不是說這些方案不好,但千萬不要忽視兩個重要問題:

企業需求會不斷變化;

IT系統本身也需要持續改進。

如果系統上線,如果系統不可控會發生什麼?即使系統正常上線(沒什麼問題),半年一年後一定有新需求,系統要調整或增加新功能,那怎麼辦呢?就找原廠。。。

這其中一定會發生的情節是:你認為這個功能很簡單,但原廠認為已經超出原合同範圍,不要問我怎麼知道的。。。

你又要和原廠開始協(che)商(pi),協商新的功能價格,然後走商務流程(規則就是:越大的公司,內部流程越複雜,速度就越慢)。。。

擦,原專案經理已經離職了?派新專案經理過來?沒辦法還得配合他把原來的需求文件全啃一遍,耐心告訴他們我們的一些某名其妙的內部規則,再結合新需求,費心費神不說,因為時間緊,趕緊設計新開發方案,然後開發 測試 。。。就這樣半年過去了,公司錢也花了,活動上的檔期也不對,大家反饋這個新功能還並不好用,老是有很多問題。。。老闆既蒙圈又生氣,還是有氣都沒地發的那種,又開始新的協(che)商(pi)...

關鍵這個過程你還沒得選(就為這一個功能換系統代價太高,而且時間也不允許)。。。

這就是系統不可控的後果,所以企業上資訊化,一定要考慮是否可控?如果要可控,那麼無論是外包還是自建,都一定要培養自己的技術團隊(能全面接管系統開發和運維),花錢養這個團隊一定是值得的(前提是cio管理的好)。

那麼,為什麼開發軟體會這麼貴呢?

我們來看下,開發系統上線要經過什麼的過程?

1、需求,需求是系統的基礎。可以說開發一個系統,拿到真實的需求是最困難的,這點張小龍和賈伯斯都深有感觸,張小龍曾說過(大意如此):判斷使用者的真需求還是偽需求最困難。舉個很簡單的例子:沒有汽車之前,福特去調研需求:您需要什麼樣的交通工具?使用者:我需要一匹更快的馬!如果按使用者需求思維,福特真設計四條腿的機械馬,我想就不會成就福特公司,也不會有當今發達的汽車工業。所以,鑑別真偽需求,顯性需求、隱形需求就很難,何況還可能轉化使用者需求(把馬轉化成汽車)?

2、架構和設計,這是整個系統的靈魂步驟。一個架構不過關,到後面的問題可能是毀滅性的(相同業務量,相近的硬體,你的系統只跑兩年就很卡,人家跑五年沒事,很可能就是架構沒做好);系統設計不過關,必定走不久,未來業務變化,可能又要換系統...

拿到需求就要進行:

1)業務流程設計(可能涉及到業務流程重組,最費事又可能最反覆,也是風險最高的地方);

2)系統架構設計(cs還是bs?有沒有app?私有部署還是公有云部署?其中架構時是否考慮可擴充的一體化的思想最為關鍵!決定這個系統能支援企業走多遠!)

CRM 中 RMF模型

3)理論支撐(很多商業模型都是有理論支撐,那就設計系統時,也必須具備這樣的理論基礎,否則就達不到預期效果。不懂這些理論,做出的東西可能就是驢唇不對馬嘴)

4)功能設計(需要什麼樣的功能,達到這樣的功能要幾步,分別是什麼操作等)

5)程式程式碼規範設計(包括庫、類、公用方法和控制元件的準備,好的控制元件有時能節約一半的開發時間,還有編碼規範)

6)資料庫的設計(資料庫規範,要幾個資料庫,這幾個資料庫的關聯性是什麼?分別如何存放?有無高併發場景?解決方案?每一條資料的來源和走向都要清晰,還要預估一年後單表資料的增長,伺服器的承受能力和方案)

7)還有伺服器的部署設計(業務跑公網還是私網?有沒有API介面?伺服器的高可用方案?應用的高可用方案?資料庫的高可用方案?讀寫分離方案)

8)還有網路方案(公網還是vpn?網路安全性,vpn的穩定性?斷網的處理方案?)是不是蒙圈了?開發模式各有優劣,要依據專案情況來選擇

我司使用的敏捷框架:

3、程式碼開發,儘可能保持統一一種語言來寫系統(大專案可能很難做到)。儘可能少的人來編寫模組程式碼,需要研發經理統一分配模組,研發經理來稽核各成員程式碼,程式碼本身也需要統一管理(不管是svn還是tfs),否則專案往後就無法維護。。。如果是網際網路系統,還需要美工、UI和前端程式碼,程式碼質量基本決定專案質量,尤其是關鍵模組(高頻操作模組、或涉及金額、庫存等)。

4、測試,測試人員要充分理解程式設計思想和業務邏輯,編寫全面的測試用例。儘可能的測出系統bug和問題,反饋給開發修正(測試也分階段和模組,還有壓力測試,要看專案大小和進度)。

5、培訓,系統上線前系統要做動員和培訓。讓具體操作人員清晰系統操作和管理範圍(這時候因為會改變很多人的操作習慣,還有系統有不完善,可能不配合,所以一定做上線動員,而且是老闆做,明確不走系統就走人!)。

6、上線。相信我,上線可能會很痛苦,也可能很順利,這是檢驗前面的測試、培訓工作是是否到位的過程!如果前面步驟都過來了,那麼確定上線時間,以及歷史資料的處理方式(一般財務有懂資訊的人才),匯入資料(可能是庫存,餘額等,也要看實施方案,如果雙線並行,可能資料也不用導),然後到點就上新系統(終端、伺服器、網路都要提前配好),建立問題實時反饋通道和快速解決問題的通道(電話、qq、釘釘、微信等都可以),實施人員下放到各使用系統單位,實時監控系統問題,發現系統問題,研發人員在後臺實時修改,快速測試和更新系統。一個月之後把上線資料拿出來財務(過生產、業務資料)分析,沒有大問題就算上線成功。

7、持續改進,快速迭代。(這個非常重要,但最容易忽視,也是企業最容易吃虧的地方)。企業級系統不是上線成功就萬事大吉了!市場在不斷變化,企業也會不斷擴張,需求也在不斷變化,系統本身也會不斷發現BUG要修正,所以系統本身就要求能不斷持續改進(快,比別人更快的更新能力),就要求要有這樣能力的團隊或機制來保障。一句話就是剛才說的關鍵點:對資訊系統要可控!

8、上述七個過程,有流水線操作,也可能交叉操作,是一個管理過程,你覺得需要一個什麼樣的人才能管理好,需要一種什麼的團隊來配合?達到預期目標呢?

所以,為什麼軟體開發會這麼貴呢?

相信你也明白了。因為做好好系統開發很麻煩,過程管控複雜,既要求老闆懂、也要求CIO懂業務、懂流程、懂管理、懂技術,還要管理技術團隊協同工作。

當然,你可以說,外面買一套進銷存系統才五百塊,也能管理我店業務,那你怎麼說?

是的,如果要出行,也沒必要非得自己買車,叫車出行有時更方便,那是不是買車就沒有需求了?

就像判斷藥物毒性一樣,拋開劑量談毒性都是耍流氓,軟體系統拋開需求談價格也是耍流氓。

對一個早點鋪子來講,開通微信支付寶支付就已經是資訊化了。

當然,你說我也可以採用Saas方案,就沒這麼複雜了,功能也挺強大。

是的,這個世界正因為有多種選擇才豐富多彩,選擇自己用起來就好,沒有對錯。

可能一體化沒那麼好做吧?

後面的和其他系統的整合和擴充性也是需要評估吧?

一般企業會有多種系統,多種系統都用Saas?還是混合?如果要互相打通?想想就複雜吧?


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31428300/viewspace-2655747/,如需轉載,請註明出處,否則將追究法律責任。

相關文章