手機(jī)設(shè)計(jì)廣州seo顧問seocnm
1 引言
有一個(gè)三個(gè)泥瓦匠的故事。
三個(gè)泥瓦匠在砌墻,一個(gè)人走過來,問他們?cè)诟墒裁础?br /> 第一個(gè)泥瓦匠沒好氣地說,你沒看見嗎?我在辛苦地砌墻呢。
第二個(gè)回答,我們正在建一座高樓。
第三個(gè)則洋溢著喜悅說,我們正在創(chuàng)造美好生活。
10年過去了,第一個(gè)人仍然在做泥瓦匠,第二個(gè)人成為了一名工程師,而第三個(gè)人則成為建筑公司的老板。
這個(gè)故事告訴我們,在工作的時(shí)候,既要明確自己的職責(zé),也要知道自己在整個(gè)項(xiàng)目中的作用,也就是既要低頭拉車,也要抬頭看路。
我們平時(shí)的工作,都是一項(xiàng)大的工作項(xiàng)目的組成部分,不同的行業(yè),項(xiàng)目的形式有所不同。在IT行業(yè),除了做網(wǎng)絡(luò)和硬件設(shè)備的,大部分做的都是軟件開發(fā)的項(xiàng)目。一個(gè)軟件開發(fā)項(xiàng)目,從開始到結(jié)束都經(jīng)歷哪些過程,在這里,我結(jié)合自己的經(jīng)驗(yàn)和實(shí)踐來做一個(gè)描述,期望對(duì)做軟件項(xiàng)目開發(fā)的朋友有些啟發(fā)。一名軟件開發(fā)人員,最好能夠明確的知道自己所處的位置,在一個(gè)項(xiàng)目中的作用,以及這個(gè)項(xiàng)目處于一個(gè)什么樣的階段,這樣開發(fā)人員對(duì)自己的職責(zé)和目標(biāo)就能會(huì)更清晰,也有利于工作能動(dòng)性的發(fā)揮。
首先說一下軟件項(xiàng)目的分類,按照不同的分類規(guī)則,可以有不同的具體分類。比如從技術(shù)的角度進(jìn)行分類,可以分為微信項(xiàng)目,APP項(xiàng)目,互聯(lián)網(wǎng)項(xiàng)目,應(yīng)用系統(tǒng),數(shù)據(jù)庫(kù)建設(shè)等等。從項(xiàng)目大小進(jìn)行分類,有幾百萬至幾千萬的大項(xiàng)目,可能包括一些子項(xiàng)目,也有幾十萬的較一般規(guī)模的項(xiàng)目,也有幾萬或者幾千的小項(xiàng)目。還有從項(xiàng)目的主體上分類,自己開發(fā)本公司的項(xiàng)目,為其他公司開發(fā)的項(xiàng)目,這時(shí)候就會(huì)分出甲方和乙方,乙方是項(xiàng)目的開發(fā)實(shí)施者,為甲方服務(wù)。項(xiàng)目類型的不同,對(duì)于項(xiàng)目開發(fā)過程可能存在或多或少的差異,但總體來說,項(xiàng)目開發(fā)的一般都會(huì)有項(xiàng)目的確定,項(xiàng)目的開發(fā),項(xiàng)目的收尾等幾個(gè)階段。
2 項(xiàng)目的確定
項(xiàng)目的確定階段,這里就是要說一說一個(gè)項(xiàng)目是怎么來的。可能是領(lǐng)導(dǎo)有一個(gè)想法,提出一個(gè)大概的目標(biāo)或者思路,然后就會(huì)讓下屬或者相關(guān)的公司給出可行性的分析,給出一個(gè)項(xiàng)目方案,之后就是對(duì)這個(gè)方案進(jìn)行審核,也可能會(huì)組織一些專家進(jìn)行評(píng)審,方案如果審批通過,則繼續(xù)進(jìn)行下一步,一般是組織招標(biāo),如果項(xiàng)目比較小,或者比較特殊,比如只有某家公司能做,有排他性,這時(shí)候就不用招標(biāo)。組織方給出招標(biāo)書,委托招標(biāo)公司或通過政府采購(gòu)平臺(tái)等進(jìn)行招標(biāo),相關(guān)企業(yè)根據(jù)招標(biāo)要求,寫投標(biāo)書進(jìn)行應(yīng)答,招標(biāo)結(jié)束后,中標(biāo)企業(yè)和組織方簽訂項(xiàng)目合同,從而確定了項(xiàng)目。當(dāng)然也有一些項(xiàng)目,沒有經(jīng)過這么多過程,如果是自己公司開發(fā)軟件系統(tǒng),沒有合同,直接進(jìn)行開發(fā)階段。也有客戶出于對(duì)公司的信任,直接簽訂開發(fā)合同的。
這個(gè)階段,可能涉及到的崗位,一般有公司領(lǐng)導(dǎo),售前工程師,標(biāo)書專員。該階段售前工程師的作用很關(guān)鍵,對(duì)崗位的要求也比較高,要對(duì)行業(yè)有比較深刻的了解,能夠把握潛在客戶的需求,同時(shí),對(duì)自己公司的產(chǎn)品或技術(shù)也要非常熟悉,能夠把公司的產(chǎn)品或技術(shù),與潛在客戶的實(shí)際需求結(jié)合起來,提供解決方案。具有將潛在客戶轉(zhuǎn)化為實(shí)際客戶的能力。很多時(shí)候,公司的領(lǐng)導(dǎo)充當(dāng)了這個(gè)角色,在與潛在客戶交往中,會(huì)及時(shí)掌握客戶的需求,也會(huì)調(diào)整公司的產(chǎn)品或技術(shù),以適應(yīng)客戶需求。如果公司規(guī)模足夠大,產(chǎn)品比較成熟,或者市場(chǎng)大,也會(huì)招募大量的一般銷售人員。
3 項(xiàng)目開發(fā)
項(xiàng)目確認(rèn),簽訂合同之后,就進(jìn)入了軟件開發(fā)階段。這個(gè)階段可以分為需求調(diào)研、系統(tǒng)設(shè)計(jì)、軟件開發(fā)、軟件測(cè)試、用戶培訓(xùn)等過程。
需求調(diào)研,主要是向客戶了解具體的需求,需要提前準(zhǔn)備調(diào)研方案,有針對(duì)性地收集客戶需求。主要收集客戶的工作內(nèi)容,涉及到的人員崗位職責(zé),以及用到的各種表單、報(bào)表、規(guī)章制度等資料。
需求分析,該過程主要對(duì)需求調(diào)研結(jié)果進(jìn)行分析,將用戶的需求轉(zhuǎn)換為軟件需求,同時(shí)也需要對(duì)市場(chǎng)上類似或相關(guān)的軟件進(jìn)行競(jìng)品分析,綜合考慮各種產(chǎn)品的優(yōu)缺點(diǎn),以及針對(duì)的客戶群體,對(duì)自己的軟件有一個(gè)合理的定位,并明確自己軟件的功能范圍。
系統(tǒng)設(shè)計(jì),需求分析完成后,會(huì)形成需求規(guī)格說明書,明確軟件系統(tǒng)的功能范圍,根據(jù)需求規(guī)格說明書,進(jìn)行系統(tǒng)設(shè)計(jì),對(duì)軟件功能、性能等進(jìn)行規(guī)劃設(shè)計(jì)。明確軟件的主要模塊,模塊之間的關(guān)系,使用的主要技術(shù),并逐步細(xì)化,可以明確設(shè)計(jì)接口,規(guī)定接口規(guī)則,進(jìn)行數(shù)據(jù)庫(kù)設(shè)計(jì)。形成系統(tǒng)設(shè)計(jì)說明書,具體還可分為概要設(shè)計(jì)和詳細(xì)設(shè)計(jì)兩個(gè)階段的說明書。
系統(tǒng)開發(fā),根據(jù)設(shè)計(jì)說明書,進(jìn)行代碼編寫調(diào)試工作,由高級(jí)工程師或架構(gòu)師搭建開發(fā)框架,分配任務(wù),分模塊進(jìn)行開發(fā)。每個(gè)模塊先由UI畫出原型頁(yè)面,并進(jìn)行切圖,由前端工程師進(jìn)行頁(yè)面開發(fā),同時(shí)后端進(jìn)行功能實(shí)現(xiàn),前后端通過約定好的json數(shù)據(jù)進(jìn)行調(diào)試,開發(fā)完成后進(jìn)行聯(lián)調(diào)。
軟件測(cè)試,軟件開發(fā)完成后,要經(jīng)過單元測(cè)試、集成測(cè)試、系統(tǒng)測(cè)試、驗(yàn)收測(cè)試等測(cè)試環(huán)節(jié),類型上分別進(jìn)行功能性測(cè)試、性能測(cè)試、安全測(cè)試等,每種類型的測(cè)試都會(huì)提供測(cè)試報(bào)告,一般測(cè)試出的bug由開發(fā)人員進(jìn)行修復(fù),修復(fù)完成后進(jìn)行回歸測(cè)試,直到bug歸零或可控。
在項(xiàng)目開發(fā)過程中,會(huì)有大量的人員參與,特別是技術(shù)開發(fā)人員,涉及到需求分析師、架構(gòu)師、UI設(shè)計(jì)師、前端工程師、后端工程師、測(cè)試工程師等,還會(huì)有細(xì)分的算法工程師、不同語(yǔ)言的工程師等等。還會(huì)有項(xiàng)目經(jīng)理、技術(shù)領(lǐng)導(dǎo)等。
4 項(xiàng)目收尾
軟件開發(fā)完成后,需要讓用戶開始使用,也就進(jìn)入了項(xiàng)目收尾階段。這個(gè)階段有用戶培訓(xùn),系統(tǒng)試運(yùn)行,初步驗(yàn)收,評(píng)審結(jié)項(xiàng),項(xiàng)目運(yùn)維等過程。
試運(yùn)行,軟件在內(nèi)部開發(fā)測(cè)試后,讓真正的用戶開始使用,也就是系統(tǒng)試運(yùn)行,這個(gè)過程需要將系統(tǒng)部署到模擬的生產(chǎn)環(huán)境,讓用戶根據(jù)真是業(yè)務(wù),在系統(tǒng)上面進(jìn)行操作,使用中收集用戶反饋,包括使用習(xí)慣,系統(tǒng)功能,故障情況等,根據(jù)具體情況,開發(fā)方對(duì)問題做出相應(yīng)的解決,排除故障,完善系統(tǒng)。
用戶培訓(xùn),對(duì)用戶進(jìn)行培訓(xùn),需要提前做好準(zhǔn)備,一般都是根據(jù)用戶角色分別進(jìn)行培訓(xùn),客戶領(lǐng)導(dǎo)、管理人員、業(yè)務(wù)人員等不同角色,使用系統(tǒng)的功能和側(cè)重點(diǎn)有所差異,要根據(jù)具體情況來準(zhǔn)備培訓(xùn)內(nèi)容,結(jié)合不同角色的實(shí)際工作,有針對(duì)性的進(jìn)行培訓(xùn)。當(dāng)然也需要用戶配合,安排好培訓(xùn)時(shí)間,搭建好培訓(xùn)環(huán)境,這樣才能獲得較好的培訓(xùn)效果。
初步驗(yàn)收,軟件開發(fā)測(cè)試完成,在試運(yùn)行前后,也可能會(huì)有初步驗(yàn)收。開發(fā)方需要進(jìn)行系統(tǒng)的自檢,根據(jù)合同功能對(duì)照系統(tǒng)的實(shí)際功能,看是否完成了合同約定內(nèi)容,確認(rèn)后,一般和用戶方、監(jiān)理方一起進(jìn)行功能檢查,如果都沒有問題,則通過,有問題的話,做下記錄,進(jìn)行相應(yīng)的補(bǔ)充修改,完成初驗(yàn)。
評(píng)審結(jié)項(xiàng),試運(yùn)行以及整改結(jié)束,軟件獲得了用戶的認(rèn)可,則進(jìn)行最終的驗(yàn)收,同時(shí)召開項(xiàng)目結(jié)項(xiàng)評(píng)審會(huì),一般會(huì)邀請(qǐng)3-7名專家,開發(fā)方匯報(bào)展示項(xiàng)目完成情況,監(jiān)理會(huì)對(duì)整個(gè)過程進(jìn)行說明,用戶方給出使用情況的匯報(bào),最后專家給出結(jié)項(xiàng)意見,最后簽字,則完成結(jié)項(xiàng)工作。
項(xiàng)目運(yùn)維,項(xiàng)目結(jié)項(xiàng)評(píng)審?fù)瓿珊?#xff0c;就進(jìn)入了維護(hù)階段,如果后續(xù)軟件使用比較頻繁,由于對(duì)軟件熟悉度還需要一個(gè)過程,剛開始使用中可能會(huì)有比較多的問題,一般開發(fā)方會(huì)派人駐場(chǎng)進(jìn)行保障,主要幫助用戶解決使用過程中的問題,保障過程中,會(huì)對(duì)保障情況做出記錄,定期(比如一周或者一個(gè)月)提交一份運(yùn)維報(bào)告,保證軟件能夠正常使用。
5 結(jié)語(yǔ)
本文介紹了軟件項(xiàng)目從申請(qǐng)到開發(fā)實(shí)施到結(jié)項(xiàng)的整個(gè)過程,在這個(gè)過程中,根據(jù)項(xiàng)目或公司的大小,會(huì)有不同的職位參與,如果是小的公司,可能一人兼任了很多職位,很多過程也會(huì)簡(jiǎn)化或省略。一般大一些公司,人員多,職位會(huì)設(shè)置的比較全,流程也會(huì)多一些。通過介紹,大家能夠根據(jù)自己的職位職責(zé)情況,明確在整個(gè)項(xiàng)目中的階段和作用,希望通過介紹,大家對(duì)軟件項(xiàng)目有一個(gè)大概的了解。