一個(gè)上位機(jī)項(xiàng)目做了兩年多,甲方是真能忍!那么,是這個(gè)上位機(jī)項(xiàng)目比較難做嗎?其實(shí)不是的,而是做這個(gè)上位機(jī)項(xiàng)目的人沒有編程功底,之所以做兩年多,只能慢慢磨,一邊學(xué)習(xí)編程知識(shí)一邊做這個(gè)項(xiàng)目,得知這個(gè)事情后,我直豎大拇指:“甲方是真能忍!”

朋友公司的一個(gè)員工最近離職了,留下來一個(gè)爛攤子,據(jù)說這個(gè)員工本來是做PLC的,公司主要從事設(shè)備開發(fā)業(yè)務(wù),一般軟件項(xiàng)目都是外包出去的??墒?,在兩年前,公司的甲方突然要求公司幫他們?cè)谠鹊纳衔粰C(jī)系統(tǒng)上再開發(fā)一套中間件上位機(jī)系統(tǒng)。
朋友本來準(zhǔn)備拒絕,但是甲方說之所以讓他們開發(fā),是因?yàn)檫@套系統(tǒng)牽扯的東西很多,走外包,甲方不放心,并且,因?yàn)檫@套系統(tǒng)只有朋友公司熟,所以也只能朋友公司能做。
甲方既然那么信任朋友,朋友只能答應(yīng)下來,但是,朋友又不想多招個(gè)人導(dǎo)致有額外的開支,所以,就問公司里面幾個(gè)PLC程序員,問他們能不能學(xué)學(xué)上位機(jī)開發(fā)。
此時(shí),朋友公司的員工老A站出來,說他正想學(xué)上位機(jī)開發(fā),可以把這件事情交給他來做。
朋友看老A能夠站出來攬下這份責(zé)任,當(dāng)然很開心,然后就問老A大搞需要多久能搞定,老A因?yàn)闆]有上位機(jī)開發(fā)基礎(chǔ),也拿不定時(shí)間,但是復(fù)盤了下開發(fā)需求,覺得自己差不多兩個(gè)月能搞定。
朋友特地去問了一些專業(yè)從事上位機(jī)開發(fā)的人,覺得這個(gè)需求最多一個(gè)月就可以搞定,老A說自己要兩個(gè)月,也是比較合理的,所以就拍了板,把這個(gè)開發(fā)需求交給了老A。
但是,誰知道,原本老A承諾的兩個(gè)月,最后搞了兩年多,最近才上線!老A也被這個(gè)項(xiàng)目搞得心力交瘁,提了離職,到底怎么搞得呢?
原來,這個(gè)上位機(jī)程序看起來簡單,但是實(shí)際上涉及到很多圖形界面、圖形繪制、還有各種復(fù)雜的算法。
本身這個(gè)上位機(jī)軟件即使是專業(yè)從事上位機(jī)開發(fā)的程序員,開發(fā)起來都比較吃力,更何況是像老A這樣沒有一點(diǎn)上位機(jī)編程基礎(chǔ)的PLC程序員了!
就這樣,一個(gè)圖形界面搞一個(gè)月,另外一個(gè)圖形繪制搞兩個(gè)月,研究A算法又搞一個(gè)月,研究B算法又搞一個(gè)月,就這樣,時(shí)間慢慢就堆到了兩年多!
最近,老A總算實(shí)現(xiàn)了甲方要求的所有功能,但是此時(shí)的老A已經(jīng)不像當(dāng)初剛剛接觸這個(gè)項(xiàng)目那樣對(duì)這個(gè)項(xiàng)目抱有一邊學(xué)習(xí)一邊開發(fā)的態(tài)度了。
兩年時(shí)間,一個(gè)事情做不成,足夠把一個(gè)人的耐心給磨沒了,所以,即使老A完成了這個(gè)項(xiàng)目,但是他干得他是心力交瘁,實(shí)在不想再面對(duì)這個(gè)項(xiàng)目了,所以就干脆辭職了!
老A辭職以后,換朋友著急了,因?yàn)槔螦花兩年做完了這個(gè)項(xiàng)目,一旦他走了,這個(gè)項(xiàng)目就又沒有人維護(hù)了,于是,朋友想把這個(gè)項(xiàng)目交給我,讓我好好把老A的代碼捋捋,因?yàn)樗溃螦的編程水平不咋樣,相信寫出來的代碼肯定不好維護(hù)。
我拿到老A寫的代碼,果然和朋友想的那樣,老A的代碼寫得非常凌亂,大量代碼都是互相套著寫出來的,重復(fù)性的代碼寫了很多。
但是,這也不奇怪,老A畢竟不是專業(yè)的上位機(jī)程序員,而且是PLC開發(fā)出身,寫的代碼有點(diǎn)逐過程的意思,因此也不知道把一些重復(fù)性的工作進(jìn)行封裝。
但是,老A其實(shí)已經(jīng)很厲害了,因?yàn)榇a里面涉及到很多復(fù)雜的圖形處理和一些數(shù)據(jù)處理的算法,對(duì)于一個(gè)非專業(yè)程序員,能寫出來已經(jīng)很厲害了!
夸完老A,我好奇地問了下朋友,他是怎么讓他的甲方能忍住兩年去讓他們開發(fā)這個(gè)項(xiàng)目而不發(fā)火的。
朋友無奈得跟我解釋,他們(甲方)也是沒有辦法,因?yàn)榧追接玫脑O(shè)備,除了設(shè)備開發(fā)商,只有我朋友是知根知底的,里面牽扯到上千個(gè)零部件,一般公司根本接不了這個(gè)項(xiàng)目。
再者,如果讓設(shè)備開發(fā)商去開發(fā)這個(gè)項(xiàng)目,那么開發(fā)費(fèi)用也不低,如果去找其他第三方的外包公司,一來外包公司熟悉這套設(shè)備需要時(shí)間,二來,如果外包公司如果因?yàn)椴皇煜ぴO(shè)備,會(huì)有生產(chǎn)風(fēng)險(xiǎn)。即使是有外包公司能夠避免這種風(fēng)險(xiǎn),那么熟悉這套設(shè)備的底層運(yùn)行邏輯,沒有三五個(gè)月也是不行的。
所以,綜合考慮,雖然朋友的公司不具備開發(fā)這個(gè)項(xiàng)目的能力,但是,甲方只能選擇朋友的公司。
但是,老A開發(fā)這個(gè)項(xiàng)目的時(shí)間畢竟也太長了,我大概看了下老A寫的整套代碼,其實(shí)如果寫這套軟件的人足夠?qū)I(yè),其實(shí)真的只要一個(gè)月就可以了,比如我?。ㄓ悬c(diǎn)自夸,但的確是這樣)
結(jié)語
我覺得,朋友公司的甲方之所以能夠容忍一個(gè)上位機(jī)項(xiàng)目做兩年才交付,其實(shí)道理很簡單,因?yàn)檫@邊上位機(jī)程序本來就是一個(gè)中間程序,即使有,也只是錦上添花,沒有,也不會(huì)影響他們?cè)O(shè)備的正常生產(chǎn)。
另外,從各項(xiàng)成本上去考慮,反正老A已經(jīng)做了那么久了,中間如果換別人開發(fā),一樣是要耗時(shí)間,所以,只能指望老A了。
但這里面最慘的還是老A,一個(gè)項(xiàng)目把自己的自信心和耐心給干沒了!
熱門跟貼