軟體開發者們真心喜愛編寫**。但根據我的經驗,他們當中很少有人可以解釋清楚他們為什麼在編寫**。如果你不信,你可以從你的團隊裡找個人來測試一下:問他在做什麼;接著問他為什麼要做那個;繼續問下去,直到你得到乙個你的客戶可以理解的原因。
你在做什麼?
我在修復這個資料網格的排序問題。
你為什麼要解決這個問題?
因為它在
bug清單上。
它為什麼在
bug清單上?
因為有個測試人員把它作為乙個
bug報出來了。
為什麼它被作為乙個
bug報出來了?
測試人員認為這個字段應該按照數字順序來排序而不是按字母順序。
為什麼測試人員這麼認為?
很顯然,如果把「條目
2」排在「條目
19」的後面,使用者在查詢的時候就會有麻煩。
如果這段對話在你看起來很奇怪,或許你還沒有跟足夠多的軟體開發者一起工作過。你知道你到底要問多少次「為什麼」才會得到你的客戶真正在意的答案嗎——哪怕只要挨上一點邊?正如「你要舔多少次才能吃完一根tootsie pop棒棒糖」這個問題,答案一定會讓你很吃驚!
這是乙個巨大的鴻溝!
軟體開發者認為他們的工作就是編寫**。其實不然。(這句話是我從billy hollis那裡「偷」來的。他曾以軟體痴迷者為主題做過15分鐘的精彩演講。)他們的工作應該是解決客戶的問題。當然,我們偏愛通過軟體來解決問題,那的確包含了編寫**。但是,我們要有全域性的觀點:編寫**是我們為了交付解決方案所必須完成的其中一環。它自身並不是目的。
作為軟體開發者,我們花了那麼多時間沉浸在沒完沒了的、支離破碎的細節中,以致於我們太容易掉入為了編碼而編碼的陷阱中。如果沒有明確的焦點或者某種讓我們團結在一起的東西,我們就會只見**這棵樹木而看不見整個森林。由此可見,擁有乙個清晰的專案遠景宣告(vision statement)是極其重要的,每個人都可以把它當作這個專案的試金石。如果你把遠景宣告搞清楚了,你團隊裡的每個人都應該能通過由陌生人主持的「電梯測試」——在60秒之內,清晰地解釋他們在做什麼,以及為什麼人們會在意他們正在做的事情。
如果你的團隊不能用一種合理的方式向乙個外行解釋他們的工作,不管你有沒有意識到,你已經處在麻煩之中了。所幸的是,你有個好夥伴——jim highsmith可以幫助你。他推薦了乙個可以構建專案遠景模型的速效公式:
乙個專案遠景模型可以幫助團隊成員通過「電梯測試」——它能賦予團隊成員在2分鐘之內向別人解釋清楚專案的能力。這個模型出自geoffrey moore的一本書:《跨越鴻溝》(《crossing the chasm》)。它遵循如下的形式:
譯者注:
geoffrey moore
(傑弗里
·摩爾)是美國矽谷的一位高科技產業顧問、風險投資人以及作家。人稱「高科技營銷魔法之父」。他創立的關於技術產品生命週期的定律,被稱為
「新摩爾定律
」。摩爾是鴻溝諮詢公司的創始人,同時他還擔任一些聲名顯赫的商業領袖的私人顧問,幫助高科技公司化解企業戰略和經營方針上的危機,惠普、微軟、甲骨文等公司都是摩爾的客戶。他的著作是哈佛、斯坦福等許多著名商學院的必讀書。
為了(目標客戶)
他們(關於需求或者機會的說明)
這個(產品名稱)是(產品類別)
它的(關鍵優勢、吸引人的購買理由)
不像(主要競爭對手的替代產品)
我們的產品(主要的差異化特性的說明)
建立乙個專案遠景宣告可以幫助團隊持續專注於產品的關鍵方面,哪怕細節一直在快速變化。否則,團隊很容易就會被短期(2~4周)開發迭代中的問題纏住,從而失去對整個專案遠景的把握。
我對這個速效公式並不感冒,因為它太過死板。但它是乙個不錯的開始。玩玩「madlibs」吧,看你能想到些什麼——絕對不能沒有遠景宣告,也不要乙個毫無感覺、用雜亂無章的拼盤偽裝成的遠景宣告。然而,我認為jim關於開發遠景宣告的第二個建議更能給我們帶來希望。
譯者注:
mad libs
是乙個文字模板遊戲,由一方向另一方提供一系列備菜單詞,然後用這些單詞替換故事模板裡的空白,結果常常會非常好笑。
我認為,即使在乙個提供資訊科技服務的組織裡,每個專案都應該被當作是乙個創造「產品」的過程。無論這個專案的目標是提公升內部的會計系統,還是建立乙個全新的電子商務**,面向產品的思維方式必能帶來豐厚的回報。
我發現有乙個做法在讓整個團隊思考產品遠景方面很有效果,那就是「設計產品包裝盒」。這個練習可以在專案啟動階段很好地激發大家的思維和討論。整個團隊假設產品最終會被裝在乙個可拆封的盒子裡,而他們的任務就是設計這個包裝盒的正面和背面。這包括給產品起個名字、一副、正面列出3~4個關鍵點來「叫賣」這個產品、背面的詳細特性說明、以及執行要求。
實踐證明,想出15~20個產品特性是容易的。難就難在,要選出其中3~4個能促使人們購買這個產品的特性。這個過程中還經常會發生關於「誰是真正的客戶」的激烈爭論。
「設計產品包裝盒」是構建遠景宣告的一種極好的方法。它基於乙個具體的、真實世界裡的概念,因此大多數人都可以輕鬆地開動他們的腦筋。忘掉那些空中餡餅式的遠景追求吧,讓我們務實一點:我們(假想)的產品包裝盒看起來會是什麼樣的呢?
我們都是消費者。我們對產品包裝盒的設計目標都很清楚。如果不拿產品包裝盒跟極端的「電梯推介」相提並論,那它也應該:
用最簡單可行的方法來解釋我們的產品是什麼;
把潛在客戶願意購買這個產品的原因解釋得一清二楚;
與貨架上所有其他的產品包裝盒相比具有獨一無二的辨識度。
譯者注:電梯推介(
elevator pitch
),通常是指創業公司在一分鐘之內向投資者介紹自己公司的情況。時間如此之短,短到彷彿只是兩人共同搭乘了一段電梯。投資的決定當然很難就在這一分鐘之內做出。
電梯推介
的目的,是引起投資人的興趣,讓他願意給創業公司乙個去更詳細介紹自己的機會
。
這裡有個例子,讓我們來看看命運多舛的microsoft bob的包裝盒。你該如何解釋為什麼客戶應該購買microsoft bob?甚至你該如何說明這個見鬼的microsoft bob到底是個什麼東西?
譯者注:
microsoft bob
是微軟於
1995
年推出的一款產品,它是微軟首次嘗試開發互動性更強、更自然的使用者介面。
microsoft bob
的推出主要是為了滿足初級計算機使用者的需求,雖然有著很好的創意,但是過於簡單,只是講解如何使用計算機,而售價卻高達
100美元,結果在沒有市場的情況下被淘汰了。
看看那些現有的、你覺得引人注目的產品包裝盒是有指導意義的。當然,看看那些你覺得不好的包裝盒也可以引以為戒。我們很清楚我們的產品包裝盒不應該是什麼樣子。
從專案開始的第一天就確立乙個堅定的遠景宣告吧!如果你還沒有,那就從jim眾多美妙的建議裡隨便挑選乙個,然後遵照著去做,立即構建出乙個遠景宣告。在缺乏清晰的遠景宣告時,無法通過「電梯測試」的團隊的數目將是令人震驚的——他們不能解釋他們正在做什麼,或者為什麼他們的工作是有意義的。不要犯那樣的錯誤。構建乙個了不起的遠景宣告,讓你的隊友們可以把他們的工作關聯到這個遠景上。確保你的團隊可以通過「電梯測試」。
作者在twitter上發的一條短訊:
「當乙個編碼癮君子需要修好一樣東西的時候,他只是多寫上幾行**。」
3:26 am –2012-5-15
《高效能程式設計師的修煉》一你的團隊能通過電梯測試嗎
高效能程式設計師的修煉 軟體開發者們是真心喜愛編寫 的。但根據我的經驗,他們當中很少有人可以解釋清楚他們為什麼在編寫 如果你不信,你可以從你的團隊裡找個人來測試一下 問他在做什麼 接著問他為什麼要做那個 繼續問下去,直到你得到乙個可以讓你的客戶理解的原因。你在做什麼?我在修復這個資料網格的排序問題。...
這樣的面試你能通過嗎
近兩周我的面試非常多,大概一天乙個。我是二面面試官,一面是技術面,有一定的難度。按道理來說二面的通過率應該比較高才對,不過最近的二面通過率可能不到50 一面的通過率一般比較穩定保持在30 以下,所以兩面全過的概率大概只有15 左右,可能更低。那麼二面的通過率為什麼那麼低呢?我想舉幾個例子就可以說明了...
這樣的面試你能通過嗎
近兩周我的面試非常多,大概一天乙個。我是二面面試官,一面是技術面,有一定的難度。按道理來說二面的通過率應該比較高才對,不過最近的二面通過率可能不到50 一面的通過率一般比較穩定保持在30 以下,所以兩面全過的概率大概只有15 左右,可能更低。那麼二面的通過率為什麼那麼低呢?我想舉幾個例子就可以說明了...