如何給一個非程序員解釋復雜耗時和易出錯的軟件開發(fā)的過程?
我覺得給外行人解釋一件專業(yè)的事情,是很困難的;比如給一個非程序員解釋軟件開發(fā)的過程,很多人認為一個軟件外表能看到的樣子,就是這個軟件的全部;所以很多人認為開發(fā)一個淘寶是一件很容易的事情。
如果要解釋清楚的話,最好能找到一個對方熟悉的事務流程做比較,這樣便于對方的理解。下面我就舉個例子,很多細節(jié)不一定很恰當:
軟件公司開發(fā)軟件=飯店做飯;
前者的產(chǎn)出物是軟件,后者產(chǎn)出物是飯菜;
業(yè)務人員=食客,都是業(yè)務的提出方;
需求人員=點菜服務員,他們都是記錄和分析客戶的需求;
程序員=廚師;
看起來廚師炒菜只花了五分鐘,但是飯店需要經(jīng)歷采購、清洗、切好備用等一系列的操作;軟件開發(fā)也一樣,不要只看到表面看到的東西,可能一個APP只開發(fā)了兩周,但是后臺的接口服務已經(jīng)積累了好幾幾個月甚至幾年;
食客有時候不知道要吃什么,說“你給我介紹介紹你們的招牌菜”;業(yè)務人員有時候也不知道自己的需求是什么;
食客說“不要放香菜”,但是服務員忘了記錄;需求人員也有犯錯的時候;
食客點完菜了,過了十分鐘說“菜里別放辣椒”;開發(fā)人員做到一半的時候,需求變了;
廚師把鹽放少了,醬油放多了;程序員有一個情況沒有考慮到,有一個判斷寫錯了;
廚師說:“來,我再給你炒一盤。”;程序員說:“來,我把Bug改了。”
廚師為了不失業(yè),沒事兒學學新菜;程序員為了不失業(yè),沒事兒學學新技術(shù)...
總之,如果想給別人解釋清楚,那就得讓對方感同身受;但是這個過程會很累,所以借用老羅的一句話:“我只對兩種人解釋,第一類是親戚朋友,因為他們真的關心我,我給他們解釋一下,避免他們擔心我,第二類是警察。其他人,愛怎么想怎么想吧。”(大概的意思)
我將持續(xù)分享Java開發(fā)、架構(gòu)設計、程序員職業(yè)發(fā)展等方面的見解,希望能得到你的關注。