程序員遇到最“奇葩”的需求竟然是…...
程序員可以說(shuō)是最苦逼的職業(yè)之一,他們經(jīng)常會(huì)遇到各種外人認(rèn)為合理,但是從內(nèi)行角度看要瘋掉的需求,不信你看下文......多體諒下我們的程序猿吧!
據(jù)說(shuō)殺死一個(gè)程序員根本不需要槍?zhuān)屗娜涡枨缶涂梢粤恕T俸玫南闼?,干不過(guò)韭菜盒子;再好的網(wǎng)名,干不過(guò)備注;再好的代碼,干不過(guò)需求變更!
客戶(hù)真正的需求是這樣
軟件是這樣做出來(lái)的
程序員的日常
所以身為程序員,不僅要搞得了開(kāi)發(fā)、寫(xiě)得了文檔、修得了 Bug,還要留得住頭發(fā)、改得起需求...
其實(shí),對(duì)于編程,專(zhuān)業(yè)的人好像總是對(duì)我們的工作有很大誤解。于是乎,身為程序員,也就常常會(huì)碰到下面這些哭笑不得的需求。
@梁大折騰
部門(mén)老大:你,做個(gè)微信小游戲吧!
我:啥樣的?
老大:反正你就做個(gè)小游戲吧,這個(gè)火!
我:?????
@趙鑫
從事電梯軟件設(shè)計(jì)。有一次接到一個(gè)電話(huà):“喂,趙工哈?我們這里有塊電路板不小心燒了,您看看改改軟件能給改好不。”
@酸菜不加糖
啥都不說(shuō)了,經(jīng)理說(shuō)要我做個(gè)有會(huì)員體系的視頻 App,嗯,就這么簡(jiǎn)單,UI 圖沒(méi)有,具體需求沒(méi)有,真的開(kāi)局一個(gè) DIV,后期全靠編。
@Limber貓
我外公:你不是做那什么人工智能的嗎?你給我搞個(gè)阿法狗玩玩兒。
我媽?zhuān)耗愀闳斯ぶ悄??你為什么想要?dú)缛祟?lèi)?(別笑,我過(guò)海關(guān)的時(shí)候也被海關(guān)問(wèn)過(guò),還是一個(gè)年輕的小姐姐)
某 CEO(某 211 大學(xué)大學(xué)生創(chuàng)業(yè)的):給我搞個(gè)辦公自動(dòng)化吧,美工 ,程序員,產(chǎn)品經(jīng)理,還有宣傳都能一鍵解決。(請(qǐng)哪位同行做出來(lái)之后跟我說(shuō)一下,這位年輕帥氣的老板愿意出 500RMB+合伙人身份(不會(huì)給股權(quán)的,打死也不會(huì)給的)+給你喊 666)
@漂泊的小石頭
都老大不小的年紀(jì)了,還不趕快找個(gè)對(duì)象。
@匿名網(wǎng)友
查數(shù)據(jù)庫(kù)的時(shí)候效率太低,領(lǐng)導(dǎo)說(shuō)讓我優(yōu)化一下,60W+ 的數(shù)據(jù),多表聯(lián)查,優(yōu)化之前要花 20 分鐘左右,現(xiàn)在要我 1-2 秒查出來(lái)。
“阿里巴巴能做到的事,我們?yōu)槭裁醋霾坏?,下?3 點(diǎn)我要結(jié)果”這是領(lǐng)導(dǎo)的原話(huà),我覺(jué)得這是對(duì)我能力的一種肯定,所以印象深刻,然后我就辭職了。
@穆易陽(yáng)
客戶(hù)需求是,我們想做一個(gè) App 功能是讓所有進(jìn)入指定區(qū)域的手機(jī)禁用攝像頭,然后,我說(shuō)您把手機(jī)收了統(tǒng)一管理不就得了,然后他就不說(shuō)話(huà)了!
話(huà)說(shuō)這個(gè)需求有沒(méi)有大佬有實(shí)現(xiàn)的思路,困擾我多少年了!
@初見(jiàn)若安
最近給客戶(hù)做了個(gè)小程序,當(dāng)然站在客戶(hù)的角度也把公眾號(hào)給客戶(hù)開(kāi)通了,沒(méi)過(guò)多久,客戶(hù)就來(lái)問(wèn)我了下面的問(wèn)題。
@Syfh
今天 Boss 提了一個(gè)需求,要做一個(gè)視頻的綠幕替換。
細(xì)節(jié)是這樣的:攝像機(jī)錄制出帶有綠幕的視頻,然后上傳到我們的 App 上,用戶(hù)播放這段視頻的時(shí)候,先去服務(wù)器拿到要替換綠幕的視頻,然后實(shí)時(shí)的替換綠幕。
當(dāng)時(shí)就有點(diǎn)懵,這個(gè)不是后期用 PC 做的事嗎?讓客戶(hù)端做?還是實(shí)時(shí)的?我和產(chǎn)品經(jīng)理反饋了一下,看能不能否掉這個(gè)需求,結(jié)果被駁回了。
駁回理由:現(xiàn)在手機(jī)上那么多美顏 App 可以把照片上的綠幕換成其他圖片,換成視頻你們就做不成了?你就不能一幀一幀的處理嗎?
......我要能做出來(lái)還在這干嗎? 我當(dāng)場(chǎng)就去申請(qǐng)專(zhuān)利去。
@匿名用戶(hù)
就是根據(jù)前幾局的結(jié)果,推測(cè)后面的結(jié)果。咋不讓我寫(xiě)個(gè)彩票的預(yù)判程序呢?
@劉阿毛
要看你在別人心目中的地位。
高端一點(diǎn)的,會(huì)遇到這樣的需求:
低端一點(diǎn)的,會(huì)是這樣:
@童學(xué)
以下都是本人經(jīng)歷過(guò)的真實(shí)案例:
1、甲:我要做一個(gè)類(lèi)似淘寶(微信) 的網(wǎng)站(APP)。并發(fā)?中國(guó)這么多人就先按 1 億來(lái)做吧。預(yù)算?1 萬(wàn)左右,你可能沒(méi)見(jiàn)過(guò)這么多錢(qián),所以沒(méi)有預(yù)付款,只有我們滿(mǎn)意了才能付款。
2、一個(gè)爛大街的項(xiàng)目,溝通需求前必須簽保密協(xié)議。
3、甲:我有一個(gè) IDEA,我要成為下一個(gè)馬云,我的項(xiàng)目落地非常牛逼,巴拉巴拉巴拉巴拉。預(yù)算?沒(méi)有預(yù)算,做成了給你 1% 的股份。
4、甲:我要做個(gè)軟件,多少錢(qián)?
乙:巴拉巴拉巴拉巴拉
甲:我要做個(gè)軟件,多少錢(qián)?
5、XXX三缺一,XXX撲克,看別人牌的軟件,預(yù)算:1000。
6、顯示別人位置的軟件,別人指的任何人,任何有手機(jī)的人。手機(jī)上不能裝任何軟件,你也接觸不到那臺(tái)手機(jī)。
7、在電腦上彈出一個(gè)窗口。簡(jiǎn)單?在別人電腦上,別人指的任何人,任何有電腦的人,電腦上不能裝任何軟件,你也接觸不到那臺(tái)電腦。
8、把百度關(guān)鍵詞頂?shù)降谝坏能浖??啥?SEO,我不管,我運(yùn)行你的軟件我的排名就上去了。
9、做一個(gè)搶紅包 WG,自動(dòng)排雷,預(yù)算:1000。
10、新注冊(cè)的公司數(shù)據(jù)抓取,必須是最快的,別人沒(méi)有的,去市場(chǎng)監(jiān)督管理局抓,預(yù)算:500。
@dy45
@梁靜涵
客戶(hù):給我做個(gè)郵箱,只有一個(gè)要求,無(wú)限大。
我:???你的無(wú)限大是指?
客戶(hù):就是無(wú)!限!大!收發(fā)郵件沒(méi)有任何限制的,我以后要發(fā) 4K 視頻的暢通無(wú)阻的那種。
我:哦,那做不了
客戶(hù):我 2000 塊都給你了,你說(shuō)做不了?
我:您如果需要發(fā)大附件,可以用 gmail,hotmail,qqmail…的!
客戶(hù):用你說(shuō)?那些要能用,我還找你做?我:qnmd
@匿名用戶(hù)
二逼前端一枚。于某小公司試用期,老板把我叫進(jìn)辦公室,手指著公司網(wǎng)頁(yè),這里,這里改改,這里改成 xx,這里要 xx 效果,還有這里,要改成 xxx。你需要多久?
瑟瑟發(fā)抖的我:半...半天吧?(前后端沒(méi)分離,打個(gè)開(kāi)發(fā)包都要 5 分鐘,打個(gè)生產(chǎn)包可以泡茶的那種,項(xiàng)目是大前端)
老板:什么?半天?我覺(jué)得 5 分鐘(他線(xiàn)上看到才叫完成,本地不算)就可以了,我也是學(xué)編程的,我學(xué)的是硬件編程,你別以為我不懂編程,你把 CTO 叫進(jìn)來(lái)。
還有一種迷之自信,識(shí)破你想偷懶的那種趕腳。
然后...
當(dāng)然,不建議大伙這么任性。傻逼遇多了就習(xí)慣了。這時(shí)候,我是建議掏出手機(jī),下載各種招聘 App,填寫(xiě)信息。意向:在職,考慮跳槽。
@風(fēng)逍遙
不懂為什么大家都覺(jué)得程序員做事動(dòng)動(dòng),就能創(chuàng)造世界!
@Bird Frank
兩個(gè)系統(tǒng)采用 RESTful 樣式的接口進(jìn)行集成,接受數(shù)據(jù)的系統(tǒng)必須采用和提供數(shù)據(jù)的系統(tǒng)同樣的字段名和字段類(lèi)型。這是客戶(hù) IT 部門(mén)提出的需求。
好像還有人不理解這個(gè)需求的不合理之處。只要不是直接共享數(shù)據(jù)庫(kù)的集成,那么無(wú)論是 RPC,WebSevice 還是 RESTful 的接口,都是希望通過(guò)一個(gè)接口層屏蔽掉兩邊系統(tǒng)內(nèi)部的實(shí)現(xiàn)細(xì)節(jié),以降低系統(tǒng)間的耦合度。
無(wú)論是接口/服務(wù)的提供方,還是使用方都不應(yīng)該對(duì)對(duì)方的實(shí)現(xiàn)方式、系統(tǒng)設(shè)計(jì)、模型設(shè)計(jì)、數(shù)據(jù)庫(kù)設(shè)計(jì)等等有除了接口以外的規(guī)定和依賴(lài)。
“接受數(shù)據(jù)的系統(tǒng)必須采用和提供數(shù)據(jù)的系統(tǒng)同樣的字段名和字段類(lèi)型”直接違背了這個(gè)規(guī)則。
不同的系統(tǒng)是為解決不同的問(wèn)題的,它們分別有各自自己的問(wèn)題用,或者用 DDD 的術(shù)語(yǔ)說(shuō),有自己的 Ubiquitous Language。
即使同樣的數(shù)據(jù),在不同的系統(tǒng)中可能有不同的業(yè)務(wù)含義、用途,怎么能要求它們具有相同的名稱(chēng)和類(lèi)型呢?
例如 A 系統(tǒng)向 B 系統(tǒng)提供的數(shù)據(jù)中包含記錄的 id,在 A 系統(tǒng)中這可能是一個(gè)由數(shù)據(jù)庫(kù) sequence 產(chǎn)生的數(shù)字。
但是在 B 系統(tǒng)中這只是表示數(shù)據(jù)在來(lái)源系統(tǒng)中的唯一標(biāo)識(shí),就不一定非得采用數(shù)字類(lèi)型。
如果 B 系統(tǒng)要從不同的系統(tǒng)中獲取數(shù)據(jù),抽象為同一種業(yè)務(wù)實(shí)體存在同一張表里,那么采用字符串類(lèi)型標(biāo)識(shí)“源系統(tǒng)中的 id”這個(gè)概念就更加合適。
如果一定要求和 A 系統(tǒng)中一樣采用長(zhǎng)整數(shù),那么和采用 UUID 的 C 系統(tǒng)、使用了 MongoDB 的 ObjectID 類(lèi)型的 D 系統(tǒng)集成的時(shí)候該怎么辦?
又比如這樣的情況:有些老系統(tǒng)采用的字段命名在當(dāng)時(shí)可能是合適的,但是隨著時(shí)間的變化,在現(xiàn)在可能就不合適的。
怎么能要求新系統(tǒng)一定要跟著老系統(tǒng)走呢?就在我說(shuō)的這個(gè)系統(tǒng)中,老系統(tǒng)中有一個(gè)字段名采用了客戶(hù)某個(gè)部門(mén)的兩個(gè)字母的部門(mén)代碼。
@我的筆名叫棉花
不是拿到的需求,是別人跟我的對(duì)話(huà)!
@伊人
不請(qǐng)自來(lái),我是測(cè)試,過(guò)來(lái)串個(gè)門(mén)!
最后,是時(shí)候祭出這張圖了!
程序員要如何應(yīng)對(duì)不靠譜的需求?收下這張圖:
留 言 有 禮 活 動(dòng)
身為程序員,你遇到過(guò)哪些奇葩的需求?掃描下方二維碼,關(guān)注51CTO技術(shù)棧公眾號(hào)。歡迎在技術(shù)棧微信公眾號(hào)留言探討。小編將精選出最有價(jià)值的三條評(píng)論,分別獲得 50、30、20 元 的 紅 包 獎(jiǎng) 勵(lì),活動(dòng)截止時(shí)間 7 月 20 號(hào) 12 時(shí)整。