人月神話-軟體專案管理實務歷久彌新的經驗談

專案管理的歷史可以追溯到上個世紀的軍火工程,然後推展到各種製造行業,近代由於資訊科技的蓬勃發展, Project Manager  成為一個普遍的工作選擇,專門討論軟體行業專案管理的文章、研究、認證也爆炸性的增加,友人問該如何進入專案管理的世界呢? 我答說每個領域都有幾本歷久彌新的經典作品,例如想學投資,我會建議先閱讀幾次 Malkiel 的《漫步華爾街 ( A Random Walk Down Wall Street ) 》;如果是對策略有興趣,Nalebuff & Brandenburger 合著的《競合策略 ( Co-Opetition ) 》是必讀大作;若談到專案管理,比起很多人考完即丟的 PMP ( Project Management Professional ) Hand Book ,Brooks 以自身經驗為基礎的《人月神話 ( The Mythical Man-Month ) 》我認為是更好的選擇。 《人月神話》並不是一本技術導向的著作,這種談道理的書很多,但這本有點古老的書特別珍貴的地方是裡面的管理經驗是從真正的大型專案系統的過程中領悟出來的,要知道,真正的大型專案其實很稀有(以書中的作業系統開發專案為例,專案規模大於 5,000 個人年),絕大多數的專案管理師與傳道者都沒有這種經歷與機會,而使得不少傳授內容來自憑空想像,正由於大型專案的複雜度很高,從中更能夠窺見專案管理作法的極限與價值。 藉著推薦書的機會,也好好重讀了幾遍,當中有許多片段與我自己專案經驗裡面的觀察相符,底下是挑出的要點結合一些個人心得。 專案管理的一般性原則 一個專案是否成功有許多背景因素,共同的成功基礎則離不開早期的需求釐清以及建立合理的專案與資源評估。越是多方參與、規模大的案子,專案規劃的分量就會越重,但在實務上可以觀察到許多時候事前準備都是極不充分的,如果專案經理沒有在起步階段做好功課並提交評估意見給管理層,很容易讓客戶或是管理層產生非理性樂觀期待,進而引發在「面對現實」的過程中一系列的負面影響。 專案規劃並不是什麼 rocket science ,雖然有些人認為要力求完備,我則是覺得應該充分但盡量精簡,使用直覺可以理解的邏輯而不要弄得太過複雜,這不僅是想減輕多方溝通的負擔,也是考量了軟體工程易變的特性,大部分的規劃都會面臨被修改的命運,過早制定所有細節無助於專案的推進。 普遍來說,專案規劃考量的基本分析包括:… Continue Reading

企業轉型的六個簡單法則與實務經驗

還記得幾年以前,公司正在進行一個牽涉頗廣的轉型計畫,幾個不同市場的主管圍在一起「暢談」各自的想法,不難想像初期負面和擔心的聲音很多,普遍的疑慮則是圍繞在組織架構與流程是否會變得過於複雜、以及權力的改組與分散將導致資源動員不易這兩大方面。 當時給主管們介紹了一本小書當執行參考, BCG 顧問公司的資深合夥人 Yves Morieux 寫的 《新管理的減法:六個簡單規則,找回管理該做的事!(Six Simple Rules: How to Manage Complexity without Getting Complicated)》,沒想到才過沒兩年,組織再次改組,並且這次是全球級別的改造,而幕後推手,居然還與這本小書有點關係。

分布式系統的架構天險:CAP Theorem 的一點探討

現在人的日常生活離不開各種大型資訊系統,平常上網購物、演唱會搶票、看熱門視頻或是玩遊戲,背後都少不了這些系統。你一定也有這樣的經驗:網路購物結帳時付款始終不成功、別人能登入熱門遊戲的某個伺服器偏偏自己不行、限購票券一下子顯示無票,但是一經過刷新瀏覽器或是換成手機登入又顯示為有票……,到底是怎麼回事?

機器學習裡不存在的免費午餐:No Free Lunch Theorems

不久之前參加了國內資料科學 / AI 的年度盛事,一方面有感於機器學習領域近年的飛速發展,另一方面覺得衍生的誤解與迷思幾乎也用同樣的速度在擴散,連 Facebook 的 AI 大神 Yann LeCun 在接受訪談的時候都明白表示希望大家不要再用魔鬼終結者的形象來解釋 AI ,因為這種印象完全是錯誤的。

《合伙人:如何發掘高潛力人才》的企業人員聘用秘訣

一年前在班機嚴重延誤的北京機場買下這本書《合伙人:如何發掘高潛力人才》,那時候我正在參與一個後來的組織改造計畫(當時還在非常保密的階段),在計畫的執行過程中我親身體驗到許多人員管理與變革上的壓力與挑戰,這個時刻讀到作者費洛迪( Claudio Fernández-Aráoz )書中提到的種種處境甚是感觸良多,已經很久不曾在短時間內把一本書重複看過三次了。

《從 0 到 1》的 3 個創業關鍵學習

相較於層出不窮的創業心得,《從 0 到 1》真的是比較好看的一本,但跟許多暢銷書一樣, Peter Thiel 兩年前這本由課堂紀錄改編而成的著作雖然推出的時候造成轟動,現在已經沒有多少人討論。 網路上有許多資源可以找到這本書:簡體中文版、英文版。 在這種背景下重新閱讀書中的論點並細細思考,更能體現其中精華而不受外在的流行所干擾。其中有三件事我特別覺得收穫有感。

初心者也會用的 R 語言讀取 XML 資料分析實戰教學!(三)

前兩篇文章已經介紹過處理 XML 資料的前備知識以及 R 語言 XML 套件的常用功能,是時候磨刀上陣了!本文將採用政府開放資料中的台鐵、高鐵以及微軟 XML 教學檔案進行範例演練,內文中使用到相關的套件及語法將不在一一細述,請參考前兩篇文章的說明。 XML 資料來源: 1. 台鐵時刻表 2. 高鐵時刻表 3. 微軟提供的範例檔

初心者也會用的 R 語言讀取 XML 資料分析實戰教學!(二)

在前一篇教學當中,我們已經看過 XML 的樹狀節點結構、 XML Schema 以及 R 語言 XML 套件的常用功能,在接下來的內容當中,我們將繼續研究 Xpath 語法,並介紹好用的視覺化工具 XML Viewer ,讀者可以搭配閱讀第一篇文章所列出 XML 包的功能作為補充。 剛試用 R XML 套件來讀取 XML 的時候應該不少人會有這樣的疑問:我要如何擷取一份 XML 中特定節點的屬性或者資料?

初心者也會用的 R 語言讀取 XML 資料分析實戰教學!(一)

隨著 API 經濟遍地開花,應用程式與資料源之間的互動實作成為現代軟體工程師必備的基本能力,其中最常見的中前端資料交換格式有 XML 及 JSON 等等,其中 XML 由於傳統商用等級的服務高度支援,且各程式語言都具備完整成熟的套件體系,讀取 XML 對於資料工程師或資料科學家的日常工作而言可說是不可或缺的一部分。 XML 是一種標記語言,類似網頁 HTML ,透過 < 各種TAG > 的定義統一化規格並豐富化資料意義,配合 Schema 讓資料結構具備高度可程式化能力,再加上容易維護的優勢,在許多資料串接實務中是很流行的通用資料格式(別再說只會 CSV 啦!)。 可惜的是,許多立志朝向資料科學領域的學生很容易忽略 XML 的學習,加上網路上搜尋「 R XML」的熱門網頁例如這篇教學《使用 R 讀取開放資料 (CSV, XML, JSON)》通常比較簡略,因此有了這篇教學分享文章的誕生,讓我們一起來練習。

重讀《經理人的一天》,與我在高階主管們身邊的日子(二)

前一篇文章談到的管理工作複雜性是現代經理人的一項課題,因為無法事先訓練,另一個同樣困擾著許多經理人的挑戰,卻是看似再平凡不過的日常工作排程。 在一些忙碌的日子裡,一個中階業務主管的日常可能要造訪 3 – 5 家稍具規模的客戶,許多客戶喜歡直到最後一刻才敲定時間,另一些客戶則可能臨時行程需要異動但希望改期的約會能「 ASAP(越快越好) 」,滿滿的行事曆當中一個意料之外的變動就可能弄得人仰馬翻,排定一個訓練課程或一個會議所需要的聯絡與協調時間,有時甚至超過會議本身。