2016年8月14日 星期日

把程式寫好容易,把程式寫到能賣出去,很難…

如果說35歲是一個開發人員的分水嶺,那對我來說,站在這個分水嶺的前後,寫程式這件事情,也開始有了一個非常顯著的差異。

說句話,我相信大多數的程式設計師都會同意:『要動手寫程式很容易,但想要寫出好程式卻很難。』

身為開發人員,在35歲以前,我幾乎都在思考怎麼把程式寫得更好,但我發現,過了35歲以後,我卻天天都在研究如何能把程式寫到能賣的出去。

乍聽之下,你可能覺得這樣的想法很現實,甚至可能很市儈,開發人員應該對自己的工作有熱忱,動不動談錢,這不是很俗氣嗎? 對開發與技術的愛,才是技術人員一直以來持續不懈的動力,不是嗎?

對技術要有『愛』這件事情,我還有場分享,記得嗎?

對,但那場分享裡面,我發現我忘了說,對技術要有愛,這只該用來期許自己,不能拿來要求別人。

畢竟每個人生來不同,開發人員對技術的愛,可以是自發性的,埋首鍵盤螢幕與書籍,只要有愛,即便廢寢忘食也是樂趣。有時,突然搞懂某個卡關的領域,頗有朝聞道夕死可矣的豁然。

但這一切,都只是對自己的期許,你不能這樣要求你的同事、你的夥伴、甚至你的部屬,強迫他們跟你一樣,只對技術有愛,其他都可以放棄(一句相忍為國,是不能當飯吃的)。同樣的,你對自己開發出的產品有愛,這天經地義,(如果沒有才真的有問題),但你也無法要求用戶(客戶)、老闆,跟你一樣無條件地去愛你寫出的成品。

用戶才不在乎你開發這系統時用了哪些頂尖的技術,實現了什麼理想遠大的框架,用戶只在乎你的系統對他有沒有實質幫助? 產生了什麼價值? 用起來的爽度如何?

容我說一句,再怎麼頂尖的技術都會過去,套句現在流行的說法,那是假的,暫時的。只有用戶在用你開發的程式的那一刻,系統對他產生的價值,才是真的。

回到最前頭說的,如果說35歲是一個開發人員的分水嶺,那對我來說,在35歲以前,我幾乎都在思考怎麼把程式寫得更好,但我發現,過了35歲以後,我卻天天都在研究如何能讓程式賣的出去。

很市儈? 錯了,是否曾想過,要怎麼樣才能叫作把程式寫好?怎麼定義好這個字? 事實上,你的程式要寫到能夠賺到客戶的錢,那才是一種肯定,才是一種對程式的品質和功能的肯定,才是一種對程式價值的肯定。肯定從不是來自於你用了甚麼技術、寫了幾萬行、加班到深夜幾點…從不是。

如果開發出的系統對客戶無法產生價值,無論你寫了一千行、一萬行、甚至是十萬行,往往唯一能夠產出的經濟效益,僅只是幫了咖啡店活絡生意。做出的成品,燒出來的光碟拿去秤重,程式碼再多,份量也都不會比較重一點。

有本書裡這麼說:『富人選擇根據結果拿酬勞,窮人選擇根據時間拿酬勞。』我不太喜歡這句話,它為了凸顯問題導致用詞有些刻意製造對立。但,這句話卻點出了一個事實,大多數的技術人員拿固定月薪,認為有上班,付出了時間就應該領到錢,因為這樣比較讓人有安全感,不管程式碼寫出去之後,到了客戶端結果如何,工程師一毛錢都不會少拿到。

固定的薪資,夠用的生活,其實本來也沒什麼不好。

寫了這麼多,千萬別以為,我只看到了工程師的問題,卻忽略了老闆的職責。把程式(系統)順利地賣給客戶,這不是業務和老闆的責任嗎? 怎麼可以怪到工程師的頭上呢? 你可能會想: 『我要是有做業務的興趣,也不會走開發人員這條路啊。』的確,你想的一點都沒錯。以往,在承平時期、太平盛世,技術人員確實是不需要操心這些的,系統要怎麼賣、賣給誰,那是老闆該擔心的。

但是相信我,台灣最近這兩三年,幾乎所有老闆,都不是很清楚產業未來會怎麼發展,軟體究竟會往甚麼方向演進? 大家其實都是摸著石頭過河,沒人敢說自己走的路一定是對的。

這個時間點,顯然不是太平盛世,身為開發人員,我們依舊可以躲在冷氣房裡,研究我愛的技術,建構自己心裡偉大的框架,把所有學到的新東西都塞到手頭上正在開發的產品裡去驗證,至於結果如何,用戶是否buy-in,那是PM、業務、或老闆需要關心的事情。

然而,我們也可以,用這個機會,試著走出去,看看end-user怎麼看、怎麼用我們做的產品,試著學習如何用他們聽得懂的言語,解釋自己的精心設計。相信我,你接觸到用戶之後,會突然發現,原來現今這個到處免費的時代,想要讓用戶甘心樂意的把錢掏出來,買自己開發的軟體,原來沒想像中的那麼容易。

這不是一個最平順的時代,但依舊是充滿機會的時代。面對不穩定和變化,或許才是翻轉和機會來臨的契機。

35歲以前,我幾乎都在思考怎麼把程式寫得更好,但過了35歲以後我發現,對『好』最簡單有力的定義,就是看看用戶願不願意,掏出自己的現金來買你寫出的軟體,沒別的,僅此而已。

4 則留言:

小星 提到...

心有戚戚焉~

zang 提到...

和農夫一樣,把水果種好是一回事,把水果賣好價是另一回事

jiangcc 提到...

董先生你好
我也過了35歲,看到你的文章十分認同你的看法,與你分享我之前的一篇文章:其他行業都會在創業前就「算盡成本」,那為何軟體創業大家都不談獲利? https://www.projectup.net/article/view/id/16477

David 提到...

@jiangcc,

拜讀您提及的文章令我感同身受,文中提到的飲料店的故事,是一個極好的提醒和啟發,文中提到"在市場上嘗試提供服務"的概念,也與敏捷開發與精實創業的精神不謀而合。謝謝您的回應與分享。