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