Posted on 2008-01-11 13:28
匪客 閱讀(959)
評論(5) 編輯 收藏 所屬分類:
開發(fā)技術
有個相聲說,某人買了一丈布,要找裁縫做大褂。其妻自告奮勇,稱自己也會做,就接手做了。兩個月后問她,說做是做,只是把布剪壞啦,改做小褂吧。如此循環(huán),從大褂變成小褂,小褂變成肚兜,肚兜變成內褲,內褲變成口罩,最后只好扎了墩布。
閑話表過,再表閑話。
話說Mitch Kapor以數十億美金高價把一手創(chuàng)建的Lotus公司賣給IBM后,做了一段投資人,又回歸技術界,創(chuàng)立一家開源基金會。為了實現(xiàn)心目中“最好的PIM軟件(個人信息管理,類似Outlook那樣的)”,投入百萬美元,聘請了一群最NB的程序員(包括Netscape元老級程序員、Macintosh操作系統(tǒng)核心程序員、微軟資深開發(fā)工程師……),動手開干。有近乎奢侈的資源(財力、人力、時間),照說項目應該順利進行吧。其實不然。這個名為Chandler的項目,從2000年開始立項,開發(fā)過程中軟件功能列表一再縮減,直至今日尚未推出1.0正式版本。測試版本在我的Windows 2003操作系統(tǒng)上,仍然無法運行。
看過上面兩樁閑話,讀者大概知道我想說什么了。雄偉的愿景往往流于空想,做軟件難,第一難就在于藍圖太宏大。常有朋友找我?guī)退麄冏鲱檰枺纯此麄兊能浖?網站項目。通常的過程會是這樣——
(演示、講解項目目標、功能等等)
我:請問,這是你們真正想要的東西嗎?
對方:是,我們想做最好的xxx。
我:請問,你們打算花多長時間來做這個項目呢?
對方:三個月。
我:坦率地說,你們不可能做得到。我的建議是,把剛才說的功能先砍掉一半,再砍掉三分之二,剩下的部分,大概就是三個月之內你們能完成的部分了。
對方:……
產品設計者往往會想得太多,把所有可能路徑都設想在內。而開發(fā)者則往往會低估項目難度,做出太過樂觀的判斷。這樣的結果就是,以為可以在過短時間內完成過于龐雜的功能。危害有二:其一,項目無限期延誤;其二,功能不斷縮減。六個月甚至一年之后,大褂沒做成,千瘡百孔內褲倒是有一條。與其如此,不如一開始就以內褲為目標好了。
昨天有人問我,為什么是“先砍一半再砍三分之二”而不是“砍掉六分之五”。我說的“砍”,不是簡單按字母順序嚓嚓嚓,而是一個討論、思考的過程。第一步去除一半,第二步去除一半的三分之二。起初設想出那么多功能,肯定花了不少心血。現(xiàn)在要砍,每一項都顯得那么寶貴而舍不得丟棄。反復斟酌、流淚放棄,最后剩下的,是軟件/網站項目最最核心和關鍵的功能,也是以目前資源所能完成的工作。以后,再視運營情況加以增補。
我想,做其它事,或許也可以采用類似的方法吧。大褂還是內褲,這是一個難題。以我之愚魯,大褂不敢妄想,甚至沒準內褲也做不出來,那就踏踏實實、裁剪縫制一個真有用的口罩吧。