網頁

搜尋此網誌

2014年10月29日 星期三

Zero to One

如果你想用創業去改變未來,那你一定要看彼得‧提爾 (Peter Thiel) 的「從0到1:打開世界運作的未知祕密,在意想不到之處發現價值」。彼得是 PayPal 的創辦人,現在是矽谷創投公司創辦人基金 (Founder Fund) 的合夥人,這本書源自於彼得在史丹佛大學開設的創業課程,他的學生布雷克‧馬斯特 (Blake Masters) 做了詳盡的筆記後廣為流傳,後來兩人合作改寫成「從 0 到 1 」出版,這本書主要談的就是:如何建立一個可以創新的公司


創新是一種進步,作者在第一章提到進步有兩種型式:
  • 垂直或密集式的進步 (vertical or intensive progress)
    開發新的事物,這是從 0 到 1 的進步,例如科技 (technology) 的發展。
  • 水平或延伸式的進步 (horizontal or extensive progress)
    複製已經成功的事物,這是從 1 到 n 的進步,例如全球化 (globalization) 的發展。
這本書談的創新是「從 0 到 1 」這種形式的進步,那我們要如何建立一個可以「創新」的公司呢?作者要我們先從這個問題開始回答:
有什麼是你跟其他人有不同看法,但是你覺得很重要的事實?
創業家從 1999 年的網路泡沫中得到教訓,但作者的看法則有不同,如下:
  1. 循序漸進,但大膽冒險比無聊瑣碎好
  2. 保持精簡有彈性,但壞計畫比沒計畫好
  3. 面對競爭求取進步,但競爭市場賺不到錢,要成為獨占市場的企業
  4. 專注在產品,而非專注銷售。但銷售與競爭一樣重要,不同產品需要不同的銷售方法
大致上整本書圍繞著上述幾個觀點,作者分享他的看法,說明如何建立一個可以創新的公司。如推薦所言:「當一個有冒險精神的人願意寫書,就買來看。如果寫書的是彼得‧提爾,就看兩遍。但是保險起見,請看三遍。因為這本書絕對是經典之作。」確實如此!

彼得‧提爾 (Peter Thiel)、布雷克‧馬斯特 (Blake Masters),季晶晶譯,從0到1:打開世界運作的未知祕密,在意想不到之處發現價值,台北:天下雜誌,2014。
譯自:Zero to One: Notes on Startups, or How to Build the Future

###

2014年10月14日 星期二

Project Management 專案管理

什麼是專案?

專案 (Project) 是在一次性的工作中,必須同時完成成效 (performance)時間 (time)成本 (cost)範疇 (scope) 的多重任務要求,簡稱為 PCTS。換句話說,一個專案必須有特定的成效,有明確的開始和結束時間,有預算,也有明確規範工作的大小。另外,品管學者約瑟夫.朱蘭(Joseph M. Juran) 說:「專案是為了解決問題所排定的進度表。」這是更簡單的解釋。

什麼是專案管理?

為了完成專案的目標,將所有計劃、進度與管控的行動無瑕的結合運作 (facilitate),這就是專案管理。專案管理的首要原則:一定要讓未來會牽涉到專案實際作業的人,共同參與專案計畫的工作。專案管理不同於一般的管理,在於專案的 PCTS 任務特性,例如一般事務性的工作內容,就沒有這些特性。

一個專案中的角色成員

  • 專案經理 (Project Manager)
    專案的啟動者 (Enabler),領導並且協助團隊成員順利完成他們所負責的工作。
  • 團隊成員 (Team Members)
    實際執行工作的人員,負責完成專案所訂定的目標。
  • 成員可能是組織中可用的人才 (不見得是適合的人才),因專案的需要才加入團隊中,也可能專案結束後就離開此團隊。
  • 贊助者 (Sponsor)
    指定 PCTS 中的任意 3 個限制條件。另外一個條件是由專案經理所計劃與管理。

專案的生命週期

  1. 概念
    市場概念形成,競爭力調查
  2. 定義
    定義問題,產生願景,擬定專案任務大綱
  3. 計畫
    發展策略,實行計畫,風險管理
  4. 執行
    逐項完成工作,監控過程,修正錯誤
  5. 結案
    結論報告,檢討回顧

參考資料
詹姆斯.路易斯 (James P. Lewis)著,葛迺駿譯,我懂了!專案管理,台北:經濟新潮社,2003。

註:「迺」讀「ㄋㄞˇ」
###

2014年10月6日 星期一

AngularJS

AngularJS 是一個用於動態網頁應用程式 (dynamic web apps) 的結構框架 (structural framework),AngularJS 的特點在於強化 HTML 本身的功能,讓我們利用 HTML 的語法就能建立一個動態的網頁應用程式。之所以稱為「Angular」是源於 HTML 的「角括號的尖角」,AngularJS 有 HTML 延伸的意涵在裡面。換句話說,如果想要學習 AngularJS 這個框架,必須對於 HTML 有基本的認識。

HTML 是一種專門描述靜態文件的宣告式語言 (declarative language),HTML告訴瀏覽器該做什麼,但沒辦法說明該如何執行功能,本質上不能使用 HTML 建立動態網頁應用程式。意思是說,靜態文件與動態網頁應用程式之間存在著「阻抗不匹配 (impedance mismatch)」的問題。

有兩種方式解決阻抗不匹配的問題:
  • 程式庫 (library)
    程式庫包含很多開發應用程式需要的函式,呼叫這些函式實現我們需要的功能,例如 jQuery 就是其中的一種。
  • 框架 (framework)
    針對某種應用情境設計的程式架構,我們需要在架構中填入程式碼以實現功能,例如 durandal, ember 等。
然而 AngularJS 選擇另一種不同的解決方法,AngularJS 增強 HTML 的語法,使用 JavaScript 開發 HTML 編譯器,讓瀏覽器能夠解析這些新的語法,AngularJS 稱為指令 (directive)

AngularJS 所採取的是宣告式語言這一條路,因此在 AngularJS 的學習上,使用指令會比撰寫 JavaScript 還要來的重要,大部分都是在編輯 HTML 檔案 (也就是使用 directive)。這也和其他用戶端的框架不太一樣,像是 ember, Ext JS 等,因為這類框架採取的是命令式語言 (imperative language) 這一條路 ,開發上主要是撰寫 JavaScript。

前面提到框架是針對某種應用情境設計的程式架構,AngularJS 的設計主要是針對資料類型的開發,也就是 CRUD (create, read, update and delete) 的應用程式。遊戲與 GUI 操作的應用程式就不太適合使用 AngularJS 了, CRUD 應用類型是 AngularJS 的強項

目前 (2014/10) 沒有關於 AngularJS 的中文書籍,對於國內推廣 AngularJS 會有些困難。學習上大多是英文網站的資訊,這裡推薦W3Schools 的 AngularJS Tutorial ,頗為簡要而易懂,其他資源則請參考 AngularJS 官方網站:
上述內容參考自 Developer Guide / Introduction
###

熱門文章