一、軟件開(kāi)發(fā)的定義
我給翻譯下:
軟件開(kāi)發(fā)的意思呢就是說(shuō),基于程序設計語(yǔ)言,如java\net\php等開(kāi)發(fā)語(yǔ)言,去實(shí)現某一類(lèi)需求系統的開(kāi)發(fā)和建設,并最終將其安裝到電腦或手機,甚至是冰箱等智能設備載體上去運行的一種行為;
軟件開(kāi)發(fā)的行為較為復雜,里面包含了需求分析、設計、編碼實(shí)現和測試維護等眾多階段內容;
但最終我們需求的就是通過(guò)這一種建造方式,來(lái)做出我們理想的產(chǎn)品來(lái),便于我們日常的工作和生活使用;任何智能設備如果離開(kāi)了軟件的支持,那么就是一堆廢鐵;
不僅僅是我們日常用到的微信、釘釘等軟件,就是我們電腦安裝的window 或者M(jìn)AC OS操作系統也可以視為一類(lèi)軟件;
軟件開(kāi)發(fā)細說(shuō)的話(huà)也分很多種類(lèi),如嵌入式開(kāi)發(fā),智能AI等范疇也都包含了軟件開(kāi)發(fā)的行為,我們本文只闡述并解釋 純軟件行為;暫不涉及硬件、物聯(lián)網(wǎng)等范疇;
二、軟件編程語(yǔ)言的進(jìn)化
學(xué)過(guò)《數字邏輯電路》這門(mén)課程的同學(xué)知道,我們涉及電路板,讓他理解信號并處理,用的就是0、1二進(jìn)制;0、1所代表的也叫機器語(yǔ)言;
那么再往上一點(diǎn)叫匯編語(yǔ)言,相比較0、1就要上一層了,但依舊很難懂,會(huì )的人很少;
再進(jìn)步一點(diǎn)呢,我們就有了C語(yǔ)言,C語(yǔ)言至今也是各大院校開(kāi)發(fā)語(yǔ)言學(xué)習的入門(mén)語(yǔ)言;
C語(yǔ)言的誕生,使得計算機進(jìn)入了一個(gè)嶄新的時(shí)代,其人性化的編程風(fēng)格,使得編程技術(shù)迅速普及起來(lái)
再后來(lái),我們就有了C++、C# JAVA等面向對象的語(yǔ)言;
我們可以用比較簡(jiǎn)單的詞匯,去編寫(xiě)一段處理邏輯,用我們人腦的思維去給機器編程;
對比最開(kāi)始的0、1是偉大的進(jìn)步了;
至今,各類(lèi)面向對象語(yǔ)言的編程和設計,已經(jīng)得到了長(cháng)足的應用,并且各類(lèi)前后端技術(shù)還在如雨后春筍般迭代;
同時(shí),我們用的軟件,也從最開(kāi)始的黑白‘軟體’到現如今琳瑯滿(mǎn)目的漂亮應用;
我們使用軟件開(kāi)發(fā)技術(shù),解決了一個(gè)又一個(gè)領(lǐng)域的問(wèn)題,現在倡導的互聯(lián)網(wǎng)+,更是把軟件開(kāi)發(fā)行為和傳統生產(chǎn)模式相結合,大大的提升了企業(yè)的生產(chǎn)效率和產(chǎn)值;
好,重點(diǎn)來(lái)了!
我們前面講了軟件開(kāi)發(fā)的基本定義和編程語(yǔ)言技術(shù)應用領(lǐng)域發(fā)展,下面我們講下軟件開(kāi)發(fā)的幾個(gè)步驟和過(guò)程;
讓我們看看,一個(gè)軟件到底是怎么做出來(lái)的?
三、軟件開(kāi)發(fā)的流程和步驟
網(wǎng)上流傳著(zhù)一個(gè)笑話(huà),我已經(jīng)找不到出處了,無(wú)法@,大致是講了一個(gè)禿頭理論:
我給潤色補充了下:
說(shuō)是,一個(gè)標準的“掉頭發(fā)”人員的參與流程標準應該是下面這樣的;
第一步是:銷(xiāo)售人員和你對接,確定開(kāi)發(fā)意向;
第二步是:項目經(jīng)理找你談具體的開(kāi)發(fā)細節,并確定工期報價(jià),并簽約
第三步是:技術(shù)或者項目經(jīng)理給你繪制原型圖,確定模塊和功能分布
第四步是:UI設計師,按照確定好的原型圖,給你做界面和美工
第五步是:程序員,按照項目開(kāi)發(fā)內容要求,編寫(xiě)程序并結合前臺UI實(shí)現功能
你以為到這里就完了?
第六步是:測試員,開(kāi)始測試全面項目穩定性和功能實(shí)現度,并拉著(zhù)項目經(jīng)理找程序員“約架”!
第七步是:程序員哭著(zhù)改完了所有的Bug,項目經(jīng)理找到你驗收確認;
第八步是:項目培訓,有專(zhuān)門(mén)的人員和您公司的對接人講解并說(shuō)明使用;并提供操作手冊,源代碼等
第九步是:就是正式使用軟件,并進(jìn)入軟件生命周期的最后一個(gè)階段,維護期;軟件公司會(huì )專(zhuān)門(mén)給你配置一個(gè)對接人,負責維護你的項目,有問(wèn)題可以隨時(shí)反饋給他們;他們來(lái)提供技術(shù)支持;
大家可能讀起來(lái)代入感不強,那么我下面用第一視角,給安排下:
假如你現在是一家企業(yè)的老板,你現在需要一款CRM客戶(hù)管理系統,用于存儲你的客戶(hù)信息,并要求每個(gè)客戶(hù)和客戶(hù)對應的訂單關(guān)聯(lián)起來(lái),然后訂單的金額里面區分開(kāi)已收款和待收款,并要求實(shí)現報表統計的實(shí)時(shí)數據,方便你查看; 開(kāi)發(fā)的終端要求有電腦端和app、小程序端;方便銷(xiāo)售員快速錄入客戶(hù)和訂單信息等;
經(jīng)過(guò)朋友介紹,你考察好了一家軟件公司準備合作,那么你們的合作流程如下:
第一步:乙方公司的代表和你探討了你的項目的具體開(kāi)發(fā)要求,并就預算和工期兩家達成一致;
這時(shí)候你們要簽署一份開(kāi)發(fā)合約,合約中明確了開(kāi)發(fā)內容和設計約束等方面約定;
第二步:乙方公司的項目經(jīng)理,和您進(jìn)行了二次和細致的溝通,就開(kāi)發(fā)的細節部分進(jìn)行了確認,項目經(jīng)理幾天后做出了一份項目原型設計,找到你。
原型設計里面,展示了項目的基礎模塊位置、功能、和基本樣式、交互等信息;
你和項目經(jīng)理,交換了意見(jiàn)后,確認了原型圖的設計
?。ㄔ陧椖康囊婚_(kāi)始,乙方公司會(huì )通知你進(jìn)行相關(guān)的ICP備案和小程序認證,服務(wù)器購買(mǎi)等工作)
第三步:
軟件公司安排了一個(gè)UI設計師去設計你的項目圖,項目圖是在原型圖的邏輯基礎上繪制出來(lái)了。UI設計師會(huì )告訴你,這是咱們項目的配色和樣式,您確認下;如果有問(wèn)題可以改;
雙方確認無(wú)誤后,進(jìn)入了第三步
第四步:
前端的工程師入場(chǎng),開(kāi)始就網(wǎng)頁(yè)和APP端的H5和Uniapp界面,進(jìn)行實(shí)現;
前段工程師帶著(zhù)寫(xiě)好的前段網(wǎng)頁(yè)代碼找到你進(jìn)行演示,雙方交換意見(jiàn),修改確認;
在這個(gè)階段,你和乙方基本確認了本項目的交互方式
第五步:
后臺工程師入場(chǎng),開(kāi)始數據庫建模和程序編寫(xiě),這個(gè)過(guò)程需要多消耗些時(shí)間,終于后臺工程師把項目的演示網(wǎng)址發(fā)給您確認。
雙方對項目的整體功能模塊和數據交互層面,進(jìn)行了確認和完善;
并在進(jìn)行了幾輪的修改調整后,確定了最終的功能設計
第六步:
后臺工程師將你的項目演示網(wǎng)址,發(fā)給了測試部門(mén)的同事,測試部開(kāi)始進(jìn)行單元測試、集成測試等各類(lèi)回歸測試、極限測試、白盒黑盒測試等等等等;
并且把測試發(fā)現的問(wèn)題,統一反饋給前面的UI、前端、后端技術(shù)進(jìn)行協(xié)作修改完善;
第七步:
項目經(jīng)理拿著(zhù)測試好的項目找到你進(jìn)行最后的驗收確認,你安排了你們公司的幾個(gè)業(yè)務(wù)骨干進(jìn)行試用。沒(méi)有問(wèn)題了之后了打款驗收;
第八步:
乙方公司將你的項目源碼部署到你的服務(wù)器上,并交接了相關(guān)的開(kāi)發(fā)文檔等內容;
你表示,后續的維護等問(wèn)題還需要繼續保持良好合作
第九步:
項目正式上線(xiàn)運行,維護階段正式開(kāi)始,在這個(gè)階段的維護有效期內,甲方公司發(fā)現的bug等問(wèn)題,可以免費找到乙方提供技術(shù)支持,乙方負責保障項目的良好穩定運行;
至此呢,你公司所需要的業(yè)務(wù)管理軟件,就算是正式做出來(lái)了;
這也就是一個(gè)普通的企業(yè)級項目開(kāi)發(fā)的流程了。
當然了,在這個(gè)流程描述中比較理想化,我們會(huì )常常遇到雙方溝通隔閡,甚至是需求變更、加價(jià)等問(wèn)題;
并且呢,隨著(zhù)項目的使用,還會(huì )有后續的二次開(kāi)發(fā)事宜;
如果有想省事的老板,可以直接看看我的這篇文章;相當于自己組建了一個(gè)IT團隊,用自己熟練的業(yè)務(wù)知識,快速搭建自己理想的系統;
四、常見(jiàn)的企業(yè)管理軟件類(lèi)型
我們前面講了軟件開(kāi)發(fā)的概念、應用語(yǔ)言和平臺架構以及一個(gè)軟件開(kāi)發(fā)項目的實(shí)際實(shí)施過(guò)程;
下面我們補充講下企業(yè)管理系統的幾個(gè)類(lèi)型:
只做簡(jiǎn)單介紹,不講得太復雜;
企業(yè)管理系統我們常見(jiàn)的有
ERP(企業(yè)資源計劃管理系統)
CRM(客戶(hù)管理系統)
OA(協(xié)同辦公自動(dòng)化)
WMS(倉儲管理系統)
進(jìn)銷(xiāo)存生產(chǎn)管理系統、PM項目管理系統、HR(人力資源系統系統),財務(wù)管理系統等
我們發(fā)現,每一類(lèi)型的管理系統,實(shí)際上都是基于客戶(hù)公司的實(shí)際業(yè)務(wù)做出來(lái)的分支;
我們打個(gè)比方,如果客戶(hù)公司體量較大,員工好幾百人這樣的;那么他就一定需要一個(gè)OA協(xié)同辦公的系統;
在OA系統中,我們比較常見(jiàn)的功能有行政審批;請假、報銷(xiāo)、開(kāi)會(huì )通知日程管理等日常業(yè)務(wù)的管理
如果客戶(hù)公司的體量不是很大,十幾幾十個(gè)人,那么他們可能就不太需要一個(gè)OA的系統定制,但是會(huì )需要CRM的系統開(kāi)發(fā);去存儲他們的客戶(hù)基本信息,進(jìn)行銷(xiāo)售;
再打個(gè)比方,如果你的公司是一家生產(chǎn)制造型的企業(yè),那么你就一定需要進(jìn)銷(xiāo)存的系統或者大一點(diǎn)ERP的資源計劃系統;
因為你一定要通過(guò)這類(lèi)系統對整個(gè)公司的生產(chǎn)銷(xiāo)售一把抓。從物料的進(jìn)庫,到生產(chǎn)和銷(xiāo)售統計、每一個(gè)環(huán)節的出庫、入庫;采購單、生產(chǎn)計劃單、物料運輸單、驗收單等等;
那么這類(lèi)系統就是你一定要做的;
再有一些HR系統、財務(wù)系統等等,那么他們適用的客戶(hù)首先是一些大客戶(hù),有較多的員工和財務(wù)統計數據,其次呢就是一些個(gè)專(zhuān)門(mén)領(lǐng)域的公司,如財稅公司、人力資源公司等等;
我們客戶(hù)在找開(kāi)發(fā)商開(kāi)發(fā)的時(shí)候,其實(shí)不一定需要對系統軟件的類(lèi)型過(guò)于較真,而只需要把自己想要做的功能拎出來(lái),搞定就可以了。
五、給大家的幾點(diǎn)建議
最后給想做軟件開(kāi)發(fā)的客戶(hù),幾點(diǎn)個(gè)人建議:
首先找準自己的定位:
如果你是創(chuàng )業(yè)公司,預算有限,建議前期做軟件開(kāi)發(fā),只考慮做自己核心業(yè)務(wù)的需求點(diǎn),這些最基礎的功能實(shí)現了之后,等你的公司規模擴大了再一點(diǎn)一點(diǎn)的去加,或者到時(shí)候有錢(qián)了再一步到位,深入的去做自身業(yè)務(wù)需求分析的搞;這樣既節約了預算,也節約了時(shí)間;
不建議,一上來(lái)就耗費巨資去做一堆自己暫時(shí)用不上的功能;這叫做減法;
如果您是大老板,公司的體量較大,譬如上百人的公司,那么建議要做管理系統的時(shí)候,盡可能的把公司各個(gè)部門(mén)的人員召集起來(lái),頭腦風(fēng)暴的分析出需要的點(diǎn);
把你和你的手下認為你公司的發(fā)展期望內可能會(huì )用到的功能,詳細的統計好并做出來(lái),或者有條件的可以直接找幾家不錯的軟件公司去深入的給你們做調研和分析;不要等著(zhù)項目做出來(lái)一看才發(fā)現很多功能都只做了一半,或者有很多地方忘了加的;還得浪費時(shí)間重新去商議簽約再二次開(kāi)發(fā)等等;
如果有人不明確自己的需求,那么也可以照著(zhù)你公司的章程和政策一條一條去看,看看哪些是可以通過(guò)軟件約束實(shí)現的管理,如果有必要上就做加法;
小公司做減法,大公司做加法
小公司重點(diǎn)節約預算,大公司重點(diǎn)節約時(shí)間;
其次呢 ,我們在做軟件的時(shí)候,一定要有自己的主導權
不管你找誰(shuí)給你開(kāi)發(fā)了軟件,你花了錢(qián)了就應該擁有這套軟件的全部知識產(chǎn)權和源代碼數據庫;
且要時(shí)刻確認你的軟件離開(kāi)了他的原始作者,找別人開(kāi)發(fā)也能繼續二次升級的開(kāi)發(fā);這點(diǎn)尤為重要,我見(jiàn)過(guò)很多不地道的同行給客戶(hù)做了個(gè)軟件,故意用很繞的邏輯去寫(xiě),寫(xiě)出來(lái)的代碼,讓別人看很難懂,客戶(hù)就只能找他再合作,要多少錢(qián)就得給多少錢(qián);要不就得重新再做一遍;
最后,提一點(diǎn),很多客戶(hù)沒(méi)想到的,數據安全性
我始終不建議企業(yè)去用一些個(gè)SaaS模式的平臺,幾百塊錢(qián)就能放心把自己企業(yè)的客戶(hù)數據放到別人的平臺上?
我主頁(yè)的文章里面有專(zhuān)門(mén)去將企業(yè)數據安全的,感興趣的可以去看下,這里不展開(kāi)了。
總結下:
如果你想給自己的企業(yè)上一套軟件,首先找準自己的定位,用有限的時(shí)間和預算去做出最適合自己的產(chǎn)品才是正解,其次時(shí)刻把握自己項目的主導權,不應該受到任何的第三方牽制,最后把自己的數據安全放到首先要考慮的層面;
“低成本、私有化、快速開(kāi)發(fā)、可視化設計、獨立源碼數據庫”
- 上一篇:什么是智慧校園
- 下一篇:恭喜我公司官網(wǎng)改版上線(xiàn)