April, 2011的文章

為什麼軟體工程無法估算時間?

April 11th, 2011

我們都有這樣的經驗:要開發一個東西,請工程師估算時間,大概要五天。結果過了一個禮拜,東西還沒出來。一問之下,碰到了原先完全沒有預期的情況,否則就是某個套件原來不能這樣用,必須要換一個,否則就是一個莫明的錯誤,找了一個下午還是不知道為什麼。久而久之,工程師開始習慣在回報的時間裡面灌水,預留空間給這些「未知數」,而我們也常常把他們給的時間乘以二,來得到最壞情況的數字。問題是這樣的方法之下,最後整個組織開始習慣用最龜的速度前進,因為估算精準、動作快,在這中間一點好處也沒有。更壞的情況,是叫九個女人去生一個小孩,那才是災難的開始。

為什麼軟體工程無法估算時間?

要了解這件事情發生的原因,你必須要先知道為什麼軟體工程是無法估算時間的。我以前常常喜歡用「常態分布」來解釋軟體工程時間的花費 — 上述的情況,讓大家慢慢從 Average 變成 (Average + 3 STD) 估算,最後平均浪費了 3 STD 的時間 — 不過這只是統計學上的解釋,並不是真正的「原因」。直到我前幾天看到這篇文章:「Why Can’t Developers Estimate Time?」,才給了我超大的一個領悟。(文章有點難,不過英文不錯的人,我鼓勵你們去讀讀。)

作者 Ashley Moran (愛許麗‧莫倫) 說:

我們無法預測軟體開發中每一個項目的時間,是因為這些工作的本質就是「創造新知識」。開發軟體的目的是創造「自動化的流程」,一但目標達到,自動化後的流程就可以重複的被執行,在可預測的時間裡面。所以一個軟體就像是「食譜」一樣,而電腦就是「廚師」,輸入的資料是「食材」,而輸出的資料是「晚餐」。

因此,我們在做的事情是讓未來從不可預測,變得可預測,讓大哥小弟、老爸老媽、只要想煮飯的,人人都可以當食神,給他三十分鐘,都可以弄出一鍋超級無敵海景佛跳牆。所以,「開發食譜」這件事情的本身,是一個創造新知識的過程,時間上當然很難預測。

如何管理

因此,軟體工程用硬體工程的模型去管理,從出發點就是錯誤。一個建築案是先有了「藍圖」,才去估算每個細項需要的時間。當我們在做的是藍圖本身,怎麼能夠沿用他們的模型?如果是這樣,一個創業團隊該如何「管理」開發的時間?

我的答案是你沒辦法 — 你怎麼能夠控制臭蟲什麼時候要出現?但是你可以管理「生產力」,也就是確認團隊總是在高效率的情況下工作,那最後你會得到的是 Average 的工作時間,比起前述 Average + 3STD 快上了 3 STD,這前後有可能就快了 2-3 倍。

而要管理「生產力」,一個現代化的軟體開發團隊,我認為有以下的幾個好工具可以用:

  • Pair Programming (兩人小組) — 一個人寫程式常常會有盲點,兩個人一起則可以看到對方遺漏的地方。更重要的是兩個人都會從對方身上學到很多知識和技巧,彼此都會成長。而當兩個人都了解一組程式碼,日後的維護也有了兩個選擇,不會因為一個人請假、離職,這些 code 就變成孤兒。記得給他們兩個鍵盤,實務上這會比鍵盤移來移去有效率。
  • Daily Stand-Up Meeting (每日早會) — 每天早上固定開一個快速早會,全部人都站著,每個人依序報告昨天的進度,碰到的問題,和溝通彼此程式間該如何傳遞資料。這讓團隊明確的知道彼此的進度,也省去很多溝通不良的麻煩。
  • 高效率的工作環境 — 開放、明亮、舒適的工作環境,或許讓大家換上拖鞋,確認團隊成員們可以取得他們需要的飲料、食物,但是不會吃得過飽、或是喝下過多的咖啡因。當其中一個成員困惑時,確認有人可以幫助他。
  • 隨時找得到使用者 — 代表「使用者」的那個人 (通常是 PM),最好是使用者本身,必須要隨時在現場,幫團隊解釋開發上細節不明確的地方。
  • 設定上線時間 — 雖然你沒辦法知道每一個子項目會花的時間,但是你可以設定一個上線的時間,然後所有的人通力合作在那個時間之前,盡可能做出一個可以推出的版本。當然,如果第一個版本推出時你不會覺得丟臉,那就是花了太多的時間

以上,希望可以幫助你們重新思考軟體開發該如何做,也希望對你們正在做的網站、行動應用有幫助。(當然這不是完整的列表,歡迎大家提出你們喜歡用的工具。)

___

除了網誌,我每天都會在 Facebook 分享許多創業者應該關注的資訊,歡迎追蹤

(Image via purecaffeine@flickr under CC license)

Google AdSense vs BloggerAds vs 酷比 — 廣告聯播平台表現大評比

April 9th, 2011

雖然我常常說身為一個網站經營者,「放廣告」是最沒辦法的辦法,在那之前,你應該要想的是如何做出使用者會喜歡,喜歡到願意付錢的產品。但是總有某些時候,你會需要廣告,因為它可以讓你立即開始有些收入 (不過現金要 1-3 個月後才會收到),要放置也往往不需要花太多力氣 (除非你要自己養業務團隊)。

而如果你自己不想養業務團隊,那就必須要挑選一個好的廣告聯播平台。所以最近這幾個月來,我開始把 mrjamie.cc 放上各種聯播網的廣告,除了我自己想要了解這些平台差異和表現,也想取一些數據和大家分享。所以以下,就是三月份三個平台 — Google AdSense, BloggerAds, 酷比 — 的表現。

(點圖放大)

要比較這些數字的不同,大家必須要先了解這些廣告擺放的位置,大家可以看到我把 AdSense 擺在每篇文章的下方,BloggerAds 和酷比則是放在右方邊欄的最後 (酷比本在 BloggerAds 下方,現已移除)。所以對於大多數的讀者來說,他們應該都是先看完文章,才會注意到廣告 (或者是根本忽略)。AdSense 在本文和留言的中間,所以或許被注意到的機率會高一點,但它沒有擺放在首頁,所以也比別人少將近 20% 的瀏覽量。由於以上這些因素,這個比較並不是完美的,你們實際會得到的數據還會跟你們的社群有關係,不過至少希望能給大家一些參考。

我們可以看到 BloggerAds 的表現明顯的比其它兩個平台好,eCPM 是 AdSense 的 5 倍,酷比則是完全被打趴在地上 (再次提醒,這只是本網誌的情況,不代表整體市場)。分析為什麼,是因為 BloggerAds 是一個 CPM + CPC 雙重付費的系統,所以當 Mr. Jamie 社群的人很不愛點廣告的情況下 — AdSense 都只有 0.05% CTR 大概比平均少了一半,BloggerAds 的 CPM 成份讓它還是可以有很好的表現。

所以,比較的結果是如果你的社群是一般消費者,比較會點廣告,那你可以考慮選擇 AdSense,因為無論是 CTR (廣告品質) 和 CPC (廣告價值),它都比酷比好上許多 (再次提醒,這只是本網誌的情況,不代表整體市場)。相反的,如果他們比較是科技人,不愛點廣告,那你可以考慮從 BloggerAds 開始,因為它的 CPM 元素可以在沒有點擊的情況下還是幫你帶來一些營收。

以上,就是目前為止的比較心得。另外值得一提的是,3 月份我寫了兩篇文章推薦書,總共幫書店賣出了 198 本,產生了 NT$ 51,072 的營收,也就是可以分得 NT$ 2,043 的分紅 (將全數捐出),又比上面的廣告聯播收益好上許多。所以,我還是堅持 CPA > CPC/CPM 這個理論。網路業的未來,絕對是電子商務,不是廣告。

4/12 更新: 為了公平起見,我在文章加入了一些說明,解釋這只是本網誌觀察到的數據,不能全然代表各產品的優劣。

(Image via modenadude@flickr under CC license)

13 件創業 CEO 每周必做的事

April 7th, 2011

一般人大概很難想像創業 CEO 的工作有多難當,你的公司在燒錢,說不定只剩下 6 個月的戰備存糧,你怎麼可能不擔心?偏偏在團隊面前你又必須裝作若無其事,一切都在你的掌控之中。每天起床都有數不盡的狀況,否則就是工程師不夠,否則就是有人要離職。否則就是需要再談下幾個重要的合作夥伴,否則就是有客戶不爽要解約。否則就是賣了廣告才發現沒有版位可以放,否則就是廣告賣不出去。什麼?今天公司要停電,天啊!這是世界末日嗎?

好,振作精神,既然你的生活註定是如此的混亂,抓住一些工作重點是必要的。剛好今天早上看到連續創辦 Fab.com、Socialmedian 和 Jobster 等多個成功網路公司的 Jason Goldberg 整理了一個列表:「13 Things You Must Do Every Week As A Startup CEO」 ,我認為非常精確到位,值得每一位創業 CEO 參考。按照慣例,鼓勵你們去讀讀原文,以下是我的版本:

  1. 記住你的一件事 — 不要懷疑,你的團隊只能做好一件事情。所以請你務必記住那件事是什麼,無論是提供消費者最精確的優惠資訊,還是幫他們解決錢包被會員卡塞爆的困擾,請把它清楚的寫在牆上,然後整個團隊上下一心往那個方向邁進。當然路途上會有很多其它的誘因,請好好檢視,如果是比較差的機會,請忽略。確定那是你要的 Pivot,那就換掉你的那件事。
  2. 記住你需要一流的團隊 — 花很多,我是說很多時間在團隊上面,找到好的人才,比你還厲害的人才,然後想辦法激勵他們跟你一起追求夢想。給他們很多自由,讓他們都有機會嘗試他們覺得可能的解決方案。創業不是一個工作,它是一種生活的態度,所以讓團隊裡的每一個人都愛上你們在做的事,是非常重要的。
  3. 注意你散發的價值觀 — 想清楚你要的組織文化是什麼?速度?藝術和科技的結合?數字導向?快樂優先?因為你做的每一件事情、說的每一句話,什麼行為被獎勵、什麼行為被檢討,這些,都會影響你們公司的價值觀,然後從員工、股東擴散到合作夥伴,所以請注意你每一個動作背後的涵義,而不只是動作本身。
  4. 請花 75% 的時間在產品上面 — 身為一個初創公司,你大概只有一個產品,所以它就是你公司的核心、命脈和品牌,你的全部,你說你怎麼能不好好的花時間在上面呢?請好好從一個客戶的角度去檢視你的產品,精細到每一個點的程度 (請愛用 Firebug 的即時預覽修改),跟每一個你可以碰到的顧客聊天,了解他們為什麼喜歡,為什麼不喜歡你的產品。
  5. 檢視數字 — 你大概沒什麼營收,所以這裡的數字指得是成長的數據,訂定你的 3-5 個 KCI (Key Customer Index),然後每周追蹤它們,了解它們為什麼成長,為什麼沒有成長。把你的分析寄給整個團隊,讓大家知道他們該追求什麼。
  6. 運動 — 創業是長期抗戰,少說要 2-5 年的時間 (好吧,其實你的下半輩子都會在創業),所以健康的身體是必要的,找一些你有興趣的運動,一個禮拜至少 2-4 次,況且運動後會分泌腦內啡,這常常是最容易有突破性想法的時候。
  7. 尋求回饋 — 相信我,你會犯錯,犯很多錯。最怕就是你不知道自己犯了錯。每個禮拜確定你跟大家要求回饋,你至少要有一個共同創辦人可以直白的跟你說你做錯了什麼,和一個董事可以隨時讓你諮詢。
  8. 離開辦公室 — 這個世界不是只有螢幕和電腦,去和真正的客戶、合作夥伴談談,不要什麼都用 email。
  9. 讀網誌、寫網誌、Twitter、參與討論 — 寫網誌的好處我已經講太多次了,你可以回顧你做對、做錯了什麼,而且成為一個網路上的意見領袖對你的公司有非常大的幫助。我有跟你說華文創業圈的精英,都在 Twitter 上嗎?還不趕快來參加討論。
  10. 管理現金 — 一個禮拜一次,確認你的庫存水位,有什麼進帳、花了什麼錢。你必須要清楚掌握你還有多少時間,並即時和投資人溝通增資的事宜。
  11. 計算投資效益 — 想像你是一個投資人,正在把時間投資到最有價值的地方。所以每個星期的最後,好好檢視你上一個禮拜所做的事情,有沒有創造出好的投資效益。哪些事情可以多投資一些時間,哪些可以不用,你必須要好好想清楚
  12. 一定要快樂 — 創業真的太辛苦了,如果這不是你樂在其中的事情,你真的不可能成功。你可以成熟,但是不必長大,請你記得一定要享受這個過程。
  13. 愛上這一切 — 除了享受,你甚至必須要愛上這一切,無論是你的公司、你的員工、你的投資人、你的合作夥伴,還有最重要的,你的家人。因為精神生活的飽滿,能夠讓你超越一切世俗的價值,才能創造最偉大的革命。

以上,希望能夠給每一個創業中的 CEO,一些不錯的引導,加油。

___

在 Facebook 上加入我們的創業討論吧!

(Images via collider.com, cheezburger.com)

©2024 MR JAMIE.
網站由 Allen Hsu 設計 | Logo 動畫由 Wen Chen 完成