在開發的過程中,四代的團隊經常要研發一些全新的功能。在當時沒有產品經理的情況下,這些功能應該是什麼樣子的,大家也只是有個模糊的認識和粗略的原型。
如何安排這些功能開發,對於四代來說,一直也是一個比較窩心的過程:全力開發這些功能,一旦大家決策上判斷失誤,那麼對於公司就意味著大規模浪費和大範圍的折騰,而對於客戶來說,也沒有帶來什麼益處。不全力開發呢,又像隔靴搔癢,總是搞的心裡癢癢的。
在經過幾個Release的實踐後,四代終於有了一個相對柔和的做法來試驗這些新功能。
首先將新功能分級,針對最能體現新功能特點的核心子功能,優先在當前的Release中開發,開發結束以後,推出去讓客戶體驗並收集反饋。
在接著的第二個Release中,根據客戶的反饋再去調整新功能的實現,並繼續開始實現其他的子功能,然後繼續推出去讓客戶體驗並收集反饋。
這樣在經過幾個版本以後,這個新功能就能穩定下來並且和大部分客戶的期望不會相差太遠,客戶參與到了系統的開發過程中來。
軟體開發的起源 - “瀑布模型”
四代記得有句話是這麼說的“組織總是有通過施行一些政策來顯示自己的存在感的衝動”。對於公司來說也一樣,“公司總是有想通過實施一些流程來重新整理自己的存在感的衝動”。
為了顯示自己的存在感,公司總是傾向於單方面的制定一些完美的流程來保證每個員工全身心的投入到工作中去,軟體公司也不例外。
從計算機程式設計誕生時起,軟體公司就有一種經典的做法一直流傳至今,那就是要求從業人員每件事必求完美,不完美不進行下一步。
這樣的做法導致軟體的開發總是按先後的順序進行。先是完美的需求分析,再是完美的架構設計,再是完美的開發,然後是力求完美的測試,最後是精心的部署,一步一步,按部就班,最終拿出一個產品,說到這裡,大家都知道說的是“瀑布流程”。
在這個流程中,越到後面的階段出現問題,越需要大規模的返工。網際網路時代來臨之前,包括需求和技術在內的一切事物發展都非常緩慢,在這種環境下,些許返工和延時還可以接受。
不過當網際網路時代來臨之後,一切都發生了翻天覆地的變化,過去那種老黃牛式,不緊不慢的開發方式完全無法適應飛速演變的需求,一些軟體一發布就發現不是需求變了,就是需求沒了,要不就是早被別人捷足先登了。
為了能快速的在需求的有效期內能迅速的開發出產品來滿足客戶,必然要調整過去那力求盡善盡美的思路,變為早日推出可工作的產品,讓它儘快的進入客戶的流程,以此來快速的匹配和捕獲客戶的需求,這樣,經過不斷的迭代和成長,最終來更好的滿足和優化客戶的流程。
其實如何讓產品更好的適應客戶的需求,一直是一個爭論不休的話題,有的說推出之前精益求精會更好,有的說快速迭代會更好,有的說別談什麼質量了,快速的推出讓市場驗證才更好。
在這裡,四代覺得可以推薦一本叫做《精益創業》的書,四代在研發新功能方面的做法就非常貼近精益創業的核心理念。
精益創業
精益創業(Lean Startup)由矽谷創業家Eric Rise2012年8月在其著作《精益創業》一書中首度提出。
精益創業的核心理念與軟體行業的敏捷開發管理的核心思路可以說是殊途同歸,都是通過快速的版本迭代,以及時刻保持與客戶的接觸並獲得反饋來快速驗證和完善一個產品。
概而論之,四代認為,精益創業就是闡述了三種工具:“最小可用品”、“客戶反饋”、“快速迭代”。
“最小可用品”是指將創業者或者新產品的創意用最簡潔的方式開發出來。
它可能是產品介面,也可以是能夠互動操作的胚胎原型、甚至可以是幾張翻頁的紙。不管使用何種方式,只要是能體現了專案創意、能夠測試和演示、功能極簡、能夠直觀的被客戶感知到,有助於激發客戶的意見即可。而且,通常它的開發成本很低甚至是零成本。
“客戶反饋”是指通過直接或間接的方式,從終端使用者那裡獲取針對該產品的意見。
通過客戶使用的反饋瞭解客戶關注的方面,比如客戶對產品的整體感覺、客戶並不喜歡/並不需要的功能點、客戶認為需要新增的新功能點、客戶認為某些功能點應該改變的實現方式等。對於精益創業者而言,一切活動都是圍繞客戶而進行,產品開發中的所有決策權都交給使用者。
“快速迭代”是針對客戶反饋意見以最快的速度進行調整,融合到新的版本中。
對於網際網路時代而言,速度比質量更重要,客戶需求快速變化。因此,不追求一次性滿足客戶的需求,而是通過一次又一次的迭代不斷讓產品的功能豐滿。
採用精益創業的優點是顯而易見的:
一是快速。
精益創業模式下,所有的創新行為和想法都在最短的時間呈現出來,拋棄一切暫不重要功能,把產品核心的價值直觀的展現給客戶,無論成敗,都能快速驗證。
二是低成本。
過去瀑布流程式的研發,需要花費大量人力、物力和財力,一旦最終結果不是客戶需要的,不僅會給企業帶來巨大的經濟損失,還會極大的打擊團隊的士氣。而精益創業所採用的“頻繁驗證並修改”的策略,確保不會在客戶認可之前投入過高的成本。
三是高成功率。
按照精益創業的模式,從“最小可用品”出發,過程中每一次迭代都可以尋找客戶進行試用,瞭解客戶對產品的看法,尋找產品的不足和客戶希望增加乃至修改的功能點,通過持續的“測試-調整”以及快速迭代,產品越來越符合客戶想要的效果,創新的成功率能夠大大提升。
精益創業雖來源於網際網路行業,但其背後的“客戶驗證”思想在大量非IT領域得到應用。
例如美劇的拍攝,往往都會先拍攝一部幾十分鐘的先導片,交代主要的人物關係、矛盾衝突、故事背景,然後邀請幾十位觀眾參加小規模試映會,再根據觀眾的反饋來決定劇情要作哪些修改,是否需要調整演員,以及決定是否投拍。
在每一季結束時,製作方又會根據收視率和觀眾意見,決策是砍掉該劇還是訂購新一季內容。這種周拍季播的模式,把所有的決策權交給觀眾,讓製作方的投資以及失敗成本降到了最低,是一種典型的精益創業方式。
說到精益創業,四代想到近年來經濟學上一直在研究的一個問題“日本經濟為什麼會衰敗”,在眾多的說法中,有一種說法是“工匠精神毀了日本經濟”。因為工匠精神要求精益求精,而精益求精需要大量的時間,而漫長的時間又會錯失瞬間即逝的機會,於是在網際網路這個快速演變的時代,視質量為生命的日本沒落了。
“工匠精神”這個詞我們已經不是第一次提及了,在前面,四代闡述重構的意義的時候,曾經說過工匠精神;不斷重構就是工匠精神在軟體研發中的體現。四代認為,無休止的精益求精並不是工匠精神的完整解釋,四代也從不提倡極致的精益求精,因為精益求精是要付出成本的,成本是否值得付出,需要考慮收益是多少。
結合精益思想,四代認為這個時代開發的完整思路就是:快速驗證 + “可控”的精益求精。
快速驗證,因為這個時候你還不知道如何滿足客戶的這些新的功能,所以這個時候需要的是快速的推出產品,讓其快速的試錯。這個時候需要的是找到正確的選項,也就是做正確的事。
當需求穩定了以後,需要就是精益求精的打造極致的使用者體驗,這個時候也就是正確的做事了。但是即使是這樣的,極致的使用者體驗也從來都是相對的,沒有完美的功能,客戶也從來不會滿足現有的功能,客戶總是會在現有功能的基礎上推演出相關的功能,這個時候需要考慮的就是在成本允許的情況下,做到適當的精益求精,其實說白了還是“成本收益原則”,這就是“可控”的精益求精。
軟體工程不是藝術,不需要無限制的拔高,說白了,軟體工程是軟體公司成本管理中至關重要的一項。
在三國殺的遊戲中,有一個非常猛的武將叫“呂蒙”(就是白衣渡江,幹翻關羽那位,也是成語中“三日不見應當刮目相看”那位),他的武將技是“克己”,就是說他的回合裡沒出過殺的話,就不需要棄牌。
在軟體工程中,這個技能同樣的對程式設計師來說也很重要,時刻都需要克己,時刻都要衡量精益求精的成本和收益,這樣才能更好的把控軟體的研發流程。
在不斷的嘗試和執行中,四代在完善各種規範和流程的同時,PC團隊也終於迎來了第四位成員,一位容易激動的同學。那麼這位激情四射的同學的到來,到底會給團隊帶來的是什麼呢?