這個標題,有兩個關鍵內容: "互連網產品" 和 "作". 其中,之所以特別提到"互連網產品",是為了與傳統軟體產品相區別; 而這裡的"作", 不僅僅指開發,同時更多的指包括研發在內的整套運營.
由於資曆尚淺,我遠沒有資格完全闡述這樣的一大套理論,而本文,只是寫寫自己的感受,希望能與同行進行一種交流,如果能有助於大家項目的開發,則更是意料之外的幸事了.
在我的網易部落格上, 我給自己留下了這樣一段公告:
"作為一個互連網產品而言, 其最最重要的, 是它的持續更新, 持續開發, 持續改善能力.
永遠不要想著一次性推出一個近乎完美的產品,互連網使用者的需求是如此之多且多變,如果僅用傳統的軟體開發理論來作需求,作規劃,顯然已經不合適.
我們只有勇敢地把產品儘快推向市場,讓使用者檢驗,從使用者意見中發掘新需求,找到新亮點,才能使我們的產品逐漸完美和逐漸好用."
而這裡所說的互連網產品,廣義上指所有依託互連網才能使用的軟體產品,而狹義上,你可以理解為以下這些具體產品: 網遊,部落格,搜尋,IM,網路視頻等等等等.
主要想具體說說以下幾個方面:
1.互連網產品如何作需求?
與傳統軟體相似的是,任何一款互連網產品的研發,都要經過需求分析這個階段.我把這裡的需求當作基本需求,它遠不是一個完整需求.
我向來反對把軟體開發的整套流程全部公式化, 概念化, 這樣作,不但不易操作,而且,更容易脫離現實,陷入盲目開發: 開發人員認為很重要的功能,使用者卻認為是可有可無的,而使用者認為很重要的功能,開發人員卻視而不見, 這樣的例子已經數不勝數.
互連網使用者的需求,有兩大特點: 需求繁雜, 而且經常變化. 所以,如果仍然用傳統正規軍的方式來對付互連網使用者,那將是永遠被使用者牽著鼻子走,永遠被動.
也正是基於此,我認為,最經濟,最有效方式,是: 完成使用者的基本需求後,將產品推向市場,用最新的使用者需求再反過來逐漸完善產品,鞏固產品.
我們既然無法保證自己能作好能預知使用者所有需求的Crowdsourced Security Testing,那我們至少可以作到能緊隨使用者需求而動. 只要我們能很快根據使用者需求調整我們的產品方向,那使用者也將受到我們的反向激勵,會不斷加強與產品的粘合性.
要作到這一點,在產品架構上,就要事先考慮好搭建這樣一套架構,可以滿足不斷變化的使用者需求.
如果你仍然覺得頭暈,把握不準使用者需求,那有一個最小的原則可以遵循: 永遠不要想著把任何一個小功能限制的過死,要考慮到它是有可能變化的,是有可能調整的,要兼顧到這種情況,從而為將來的擴充留下餘地.
當然,我們也仍然無法保證能一開始就作出一個具有超強擴充性的架構,這個架構的建立,本身也是處在逐漸完善中.
還有另外一個小原則可以考慮: 任何一個需求,放在互連網面前,如果你的開發週期超過半年甚至一年以上,那你就可考慮進行調整了,因為誰也無法預知半年甚至一年後的情況會是怎樣, 也許到那時,這塊市場已經不複存在.
2.互連網產品如何作研發?
對於作研發的技術人員而言,我們本身考慮的,除了滿足當前已經提出的需求之外,更多的是要考慮到將來的系統擴充,為擴充留下空間.如果你現在沒有考慮擴充,那麼將來你在擴充方面所付出的代價一定會比現在要多得多.
但是,我們也不要陷入盲目擴充的境地,如果那樣,你會發現你的工作已經無法開展,我們所能考慮到的擴充, 是從現在到很近的時間內,已經確定要擴充的需求. 再遠的將來,沒必要考慮,你也考慮不完.
其實,說到底,不管是在專案管理層面的需求分析,還是在具體實施方面的技術研發,只要你有這個概念就可以了,在每一個具體項目中如何把握,還要完全靠自己.
說到具體的研發方式,我也曾向別人推薦過我們採用的一種開發方式: scrum. 這種開發方式, 恰恰暗合了互連網開發的原旨精神, 但這種開發方式能不能被大家用上, 或者能不能用好, 也很大程度上看研發團隊是否適合, 因為這種開發方式要求研發團隊要具有超強的自我管理能力, 超強的學習能力, 以及紮實的專業基礎.
"快速研發,快速推出", 一切圍繞著它來作就行了. 千萬別閉門造車,一個產品開發個一年兩年,等產品出來時,市場早已不是那個市場,使用者也早已不是那些使用者了.
但是,話又說回來,對於一個專業基礎非常差,開發經驗非常缺乏的團隊而言,可能任何開發方式對他們都是沒有太大協助的,他們需要作的是加強自己,而不是尋找什麼能一解千愁的靈丹妙藥.