程序員的宿命是怎樣的
1
張大胖畢業了,進入了一家做行業軟件的公司。
作為新人,張大胖的工作就是做增刪改查,但是他很努力,不僅把自己的工作做好,還有全局視野,很快就可以獨當一面了。
經理給他安排了新任務, 除了開發,還要和客戶溝通,這是一件很重要的事情, 項目能不能賺到錢全靠甲方的一句話。
甲方就是上帝,張大胖每天對甲方點頭哈腰:行,這個功能能做,下周就出來,奧,明天就要啊, 可以,馬上安排人。
熬了一宿功能開發出來了,趕緊拿去給客戶看, 客戶說:我昨天說的你沒聽懂嗎? 這個地方我怎么不能審批?還有這個地方......
這樣地事情頻繁發生,搞得張大胖心力憔悴,他心說甲方太難伺候了,我還是去一家自己做產品,自己控制需求的互聯網公司吧。
那些公司都需要高并發、分布式的經驗,張大胖自然是一點都沒有,只能去看書,看文章,他把一些知識點都給背了下來!
雖然沒有實踐,但是原理還是理解了, 面試官看在他基礎不錯的情況下,讓他通過了面試,進入了這家不錯的互聯網公司。
2
一進入公司,他就感受到了緊張的戰斗氣氛。每個人都在很努力地做自己的工作,下了班都不走,張大胖自然也不敢走。
張大胖這幾天都在看系統結構和源代碼, 領導交給他的任務是盡快熟悉系統 ,早日進入開發,他驚奇地發現這個公司的產品表面看起來光鮮亮麗,但是內部的代碼怎么這么爛? 和這個公司的形象嚴重不符啊。
終于可以開發了,領導分配了需求,張大胖仔細地分析,設計,覺得只要把系統的幾個類給抽象一下 ,形成一個新的接口,就能***地實現需求。
正準備動手, 旁邊的老方說: “你的活兒明天是不是就得交了,哪有時間重構?重構了測試還得增加幾天的測試工作, 加個flag算了。 ”
張大胖將信將疑,但是老方是老員工了,張大胖按他的思路去做了,如期交工。
這幾個月的工作一直都是如此,修修補補,不敢也根本沒有時間重構, 張大胖越來越不開心,自己的設計能力完全沒法施展,就是一個苦力。 他恨透了這個垃圾堆一樣的遺留系統,千方百計地轉崗,一定要找一個全新的項目去做。
3
張大胖運氣不錯,公司要做一個新的產品,他申請跳了過去,準備大展宏圖。
在他的強烈建議下,新產品建立了一套編碼的規范和代碼評審的流程,決心把代碼質量給守住, 剛開始執行得還不錯,大家也都很開心。
可是有一天,經理說競爭對手也在開發同類產品,得趕緊上線,要不然就可能被競爭對手干掉,一定要快。
工期一下子就變成了原來的一半,張大胖心中叫苦,但是毫無辦法,和另外幾個兄弟沒日沒夜地干活,根本顧不上什么代碼的質量,心里安慰自己說下一個版本再改吧。
系統跌跌撞撞上線以后,產品獲得了不錯的口碑, 用戶迅速增長,為了留住客戶,得趕緊開發更多的功能。
張大胖悲催地發現,這個產品也變成了金玉其外敗絮其中的“垃圾堆”, 幾個月前自己寫的代碼都看不懂了!
經理經常在一旁咆哮:你們怎么搞的,我就想加一個小小的按鈕,你們居然得做一個星期?
在下一個版本中來改進,變成了一個不切實際的美好愿望,永遠也實現不了了。
張大胖經常想,這軟件開發簡直就是奪路狂奔, 什么時候才能“自主可控”,穩扎穩打地實現一個系統啊!
這一天,張大看到了龍泉寺招聘的消息,他心動了......
4
這當然是我編的一個故事,在其中也許能看到你我他的影子。
【本文為51CTO專欄作者“劉欣”的原創稿件,轉載請通過作者微信公眾號coderising獲取授權】