軟件工程講義之創(chuàng)新的出路
我第一次注意到 “作坊”這個詞和軟件行業(yè)聯(lián)系起來大概是這個 2004 年 11 月的報道:
日前,信息產(chǎn)業(yè)部副部長婁勤儉在出席中國軟件產(chǎn)業(yè)生態(tài)鏈高層論壇時表示,中國軟件產(chǎn)業(yè)的規(guī)模還比較小,軟件企業(yè)的實力較弱,很多企業(yè)還處于手工式的開發(fā)生產(chǎn)階段,缺乏核心技術(shù),長期處于產(chǎn)業(yè)鏈的低端,發(fā)展方向受制于人,出口能力較差,為此今后信產(chǎn)部將從四大方面大力發(fā)展我國軟件產(chǎn)業(yè)。
后來我看到一本書 <走出軟件作坊> , 寫了兩個書評:
本來還想寫第三篇, 展開來說說怎么搞一個好作坊, 不料有好心人提醒, 說不宜發(fā)表太多批評, 影響書銷路… 于是第三篇就擱下了。 事實上我想寫的東西和那本書沒太多關(guān)系。 現(xiàn)在時間已經(jīng)過了兩年多, 風頭已過, 應該可以說一下作坊的事了.
作坊英語叫 Workshop, 好多學術(shù)論文也發(fā)表在各種 Workshop 中, 大家也覺得挺有面子的。 美國好多家里的車庫 (Garage), 地下室都兼作主人的小作坊. 在中國的上下文提到 ”作坊”, 大家會想到什么? 我想到:
自己手工勞動,做出產(chǎn)品
人不多, 師傅帶徒弟, 或家傳手藝,
只做某種行業(yè), 不太改行, 商業(yè)技巧不多
不太做廣告, 主要靠口口相傳, 容易被技術(shù)進步淘汰
和顧客很熟悉, 可以賒賬…
這些好像都不是缺點吧? 為什么要著急走出去?
我們一條一條地說:
1) 自己手工勞動,做出產(chǎn)品
現(xiàn)在一些旅游城市也有小店鋪號稱作坊, 但是仔細一看, 他們的東西都不是自己做的, 今天批發(fā)來一些左旋的海藻, 明天賣一些右旋的肉堿, 下個月就改賣俄羅斯套娃或者檀香木雕刻… 或者是那些游離于北京地鐵站附近的 “正宗臭豆腐”攤位, 這種 “作坊”不在我們討論范圍之內(nèi)。
婁勤儉領導批評“很多企業(yè)還處于手工式的開發(fā)生產(chǎn)階段”, 我不知道軟件除了用手工, 還可以用什么別的來寫。 也許有人說, 是不是那些 CASE (Computer Aided Software Engineering)工具, 或者是 code wizard, 用右鍵一點, 然后繼續(xù)點 [下一步], [下一步] 就可以產(chǎn)生出很多很多代碼? 這些固然好, 但是你可以點一下產(chǎn)生很多代碼, 另一個公司也可以點一下產(chǎn)生很多同樣的代碼. 你的核心技術(shù)在哪里呢?
讀者往下看, 本文之后提到的各種編程牛人的有價值的軟件, 都是自己動手寫代碼, 而不是用什么代碼生成器, MVC 模板生成器搞出來的。
2) 人不多, 師傅帶徒弟, 或家傳手藝
覺得作坊小? 陣容不夠強大? 會被世界先進生產(chǎn)力的代表鄙視? 軟件界有各式各樣的生產(chǎn)力, 生產(chǎn)方式,我們不妨從規(guī)模最小的生產(chǎn)方式講起:
a) 一個人單打獨斗的作坊 Micro-ISV
2004 年的時候, SourceGear 的創(chuàng)始人 Eric Sink 發(fā)表了一系列的博客, 講一個人如何開發(fā)軟件盈利, 并且把這種方式叫 Micro-ISV (微型獨立軟件開發(fā)商)。 Eric 為了實踐這一方式, 在工作之余, 自己單打獨斗開發(fā)并銷售一個軟件 (改進Windows 自帶的翻牌游戲)。
2004年 11月, 天朝領導講話說作坊不好。
2005 年初, 中文MSDN 網(wǎng)站還翻譯了Eric 的文章, 分享了許多小作坊如何開始的經(jīng)驗.
2006 年, Eric Sink 把一系列軟件創(chuàng)業(yè)和經(jīng)營的想法都綜合在這本書里了: Eric Sink on the Business of Software
另外, 還有有成千上萬的 Shareware (共享軟件) 的作者, 他們開的就是小作坊。有很多成功的例子 (中國的周奕就是 例子之一), 當然也有更多失敗的例子。 我們想象一下, 這些失敗的小作坊主, 如果加入了那些龐大的軟件生產(chǎn)線, 或者混跡于各種商業(yè)技巧中, 他們會更高興么?
b) 兩人的作坊
以前寶島臺灣計劃生育的口號是 “一個不少, 兩個正好”, 如果覺得一個人太少, 那兩個人的作坊最好:
例如, 最近有很多領導 (普通領導, 文藝領導, 還有那…領導)都提到的喬布斯, 他創(chuàng)新是在一個小作坊 - 他父母的車庫里進行的, 主要合作伙伴是另一個年輕人 Steve Woz, 再加上幾個幫忙的伙伴。 這么說來, 領導要復制成百上千個喬布斯, 我們還得把未來的喬布斯送進作坊里。
這不是例外:
1) Hewlett 和 Packard 創(chuàng)業(yè)的車庫, 小作坊。
2) 比爾·蓋茨 和 保羅·艾倫 最初創(chuàng)業(yè)時, 他們連車庫也沒有, 比爾同學駐扎在學校的機房寫程序。
3) Google 的創(chuàng)始人開始也是用一些貌似簡單的機器和網(wǎng)絡, 搭起了一個搜索的小作坊
。。。
即使沒那么有名的作坊, 例如像 System Internals (Mark Russinovichand Bryce Cogswell), 他們寫了一些在Windows NT 操作系統(tǒng)上很好用的小工具 (Process Explorer, ZoomIt), 也很成功。
兩三個專注于某一領域的匠人, 用非大規(guī)模制造技術(shù)打造出來的東西還有價值么? IT 歷史告訴我們, 有很多成功的產(chǎn)品都是從小作坊開始的。
c) 小就是美 - 杰克 · 馬
看了上面兩個例子之后, 如果還覺得自己小, 不好意思出來混的讀者可以看看一個大公司 (阿里巴巴)的大老板在大報紙(紐約時報)和其它大場合上上發(fā)表意見 “small is beautiful”。
3) 只做某種行業(yè), 不太改行, 商業(yè)技巧比較缺乏
這不一定都是劣勢. 有些商業(yè)技巧不要也罷. 好的作坊不會讓顧客先交錢成為 VIP,辦一個金卡, 然后過了幾個月作坊就消失了。 你走進中關(guān)村賣電子產(chǎn)品的大樓, 每個賣家都說自己是全國連鎖, 質(zhì)量如何好, 他們的商業(yè)技巧非常豐富. 你敢單身進去買他們的東西?
我大學畢業(yè)的時候, 滿腔熱血地加入了某高科技公司, 它屬于某大學科技開發(fā)部下, 是校辦國營軟件企業(yè), 當然不是作坊。 事實上我們的大老板 (大學教授兼職開公司) 想把公司辦成特高檔, 特專業(yè)軟件開發(fā), 特有那種, 那種… 那種不是作坊的公司。公司墻上貼了 “高科技, 高… 高… 高… ”的標語。 我們都叫自己是 <四高公司>。 公司開始做 Unix 漢化, 辦公自動化, 地理信息系統(tǒng), 出國跟日本和美國合作 (當時還沒有 外包 這一說法), 搞了一陣子, 沒有一個方向有顯著的發(fā)展。地理信息系統(tǒng)倒是常有人來看, 但是每次演示都會死機幾次, 顧客也沒說要買… 后來大家也不知道要干啥, 一些程序員閑下來就開始搞一點外面的作坊常干的事。
例如: 一天早上大家都在閑著, 我在看電腦報, 同事小孔接了個長途電話:
“對… 對… 我們賣大型地理信息系統(tǒng),Unix 上的 … 繪圖儀嗎, 什么型號? … 我們也經(jīng)營的, 上個月還出過幾臺 ... 我到庫里去看看有沒有現(xiàn)貨… ”
小孔走過來把我手里的《電腦報》抓了過去, 翻到報價版面, 在繪圖儀價目表上來回看了幾遍, 然后拿起電話:
“你好, 我去 [庫里] 看了, 有現(xiàn)貨, 起價是… 您什么時候來取貨?“
第二天傍晚, 一臺繪圖儀被搬進了公司, 我們裝好了試用了一下, 過了把癮。
第三天上午, 繪圖儀出手了。
后來大家都離開了 <四高公司> , 這樣的商業(yè)技巧還在很多公司流傳。。。
4) 不太做廣告, 主要靠口口相傳, 容易被技術(shù)進步淘汰
這的確是傳統(tǒng)的作坊的一個劣勢, 現(xiàn)如今有互聯(lián)網(wǎng), app store, SNS, 如果自己的產(chǎn)品真的好, 想讓別人不知道也挺不容易的。
作坊會被技術(shù)進步拋下? 以前看到一個電視節(jié)目采訪一位修鋼筆的小作坊, 那位師傅能把銥金筆尖的那一點小 “銥金”給點上去。這個技藝連同那小作坊據(jù)說已經(jīng)快失傳了。但是沒關(guān)系, 有很多大型的企業(yè), 也會被技術(shù)進步拋下的。 就像以前一部小說 <神鞭> 講到的, 如果落后的絕技沒有太多用處了, 那就練點新的絕技, 人又不笨, 小作坊掉頭快, 好辦。
有一種意見認為作坊只能獨立存在, 其實不然, 在龐大的企業(yè)內(nèi)部, 也有一些人構(gòu)建了一個小作坊, 自己做主, 做自己感興趣的事, 例如:
Thompson 和 Ritchie 在搞 Unix:
對這些 “小作坊”睜一只眼閉一只眼的經(jīng)理們, 值得表揚。
這些好的作坊, 都有這些核心特性: 從小事做起, 講究質(zhì)量, 信用, 對產(chǎn)品負責, 對工作自豪。
作坊這么好, 那中國的許多作坊為什么不能興旺? 一個大家常說的重要原因, 就是 “環(huán)境對知識產(chǎn)權(quán)的尊重和保護不夠”, 其實哪里都有盜版, 哪里都有抄襲, 哪里都有競爭。有能力的作坊, 往往找到合適的渠道, 合適的空間, 實現(xiàn)自己的價值。
可以看看這個例子:
那些想開作坊的人, 你們對知識產(chǎn)權(quán)又是如何尊重和保護的呢? 你心里 “熱愛技術(shù)”么? 你是否發(fā)現(xiàn)了你作坊的獨特價值? 你能放棄貌似免費的看熱鬧的機會,在網(wǎng)上斗嘴的爽快, 倒賣繪圖儀的短期收益, 吹噓自己要寫一個平臺的風光, 先練好內(nèi)功?
作坊就在那里, 你是裝作路過沒看見,還是走進去? 在走進去之前, 先看看你喜不喜歡下面的事:
專注于你真正想做的的事, 也許比較寂寞, 因為它不是網(wǎng)上熱捧的 “高科技”
如果你覺得解決普天下大眾的問題很難, 能否從解決自己的問題, 自己周邊的問題開始?
真正做好服務, 不管用戶有多少。 保護用戶的數(shù)據(jù)和隱私, 就像你希望別人保護你的隱私一樣,不要找別的借口。
有胸懷去找至少一個伙伴, 一起成長
能自我管理, 按照自己的節(jié)奏來分享體會和成果,
享受你的工作, 當別人詢問你的工作職位時, 能夠情緒穩(wěn)定地說: 我自己干。
在 <現(xiàn)代軟件工程> 這門課中, 同學們組成了一個個作坊, 做一些解決具體問題的小軟件, 比那些上不著天, 下不著地,沒有實際用戶的軟件好多了。
幾年前各級有影響力的人士貶損了 “作坊”之后, 他們最近不談 “作坊”了, 他們在人云亦云地提 “云”和 “創(chuàng)新”的事:
創(chuàng)新的出路在哪里? 不能在各種峰會上發(fā)言的 IT 人士, 不妨走進各自的小作坊。
原文鏈接:http://www.cnblogs.com/xinz/archive/2011/12/31/2309002.html
【編輯推薦】