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