上個月 24 日應 MaoYang 兄之邀,分享我在敏捷開發的實戰經驗。這場分享會還找來了 David Ko 兄分享他在公司導入 scrum 開發管理方法的經驗,同人則負責分享我之前在專案中推行 extreme programming 工程實務的經驗。分享會在台北市電腦公會舉行,看到現場互動氣氛的熱絡,以及會後學員們給予不少正面的評價,感覺大家收穫都不少。其實包括我自己在分享會結束之後也產生了一些想法,倒是想藉由此文章分享我的分享會後心得。
同人很喜歡 David Ko 兄提到愛因斯坦為 Insanity 這個字所下的定義:「Doing the same thing over and over again and expecting different results」我認為這個定義很貼切地描寫許多人在軟體開發過程所展現的心態;過去做過行不通的做法,卻認為在今天可以行得通,結果讓人一直瘋狂或是不斷地精神錯亂。
但為什麼人們要盲目地做些行不通的事呢? Read the rest of this entry »
Posted by: jim yeh in CNet/ZDNet, 利害關係人, 問題解決, 寫作, 專案團隊, 專案風險, 新聞, 組織, 職場, 軟體審查, 開發流程, 閱讀
這篇文章是投稿 ZDNet Taiwan 的文章原稿,由 ZDNet Taiwan 以〈如何在系統異常前發現錯誤?〉、〈如何在系統異常前發現錯誤?(下)〉兩篇文章刊登。文章原稿未經 ZDNet Taiwan 編輯,內容可能與 ZDNet Taiwan 約略有所不同。
前一陣子有兩個與資訊系統失常有關,而且眾所矚目的新聞事件,也就是戴爾電腦網路購物系統與台北捷運內湖線的系統異常。相信很多人都認為這兩個系統會發生系統異常相當離譜,在系統上線之後才發現系統無法正常運作,造成系統使用者的困擾,同時也會讓人對系統可靠度與穩定度失去信心,而增加系統的失敗成本。
雖然平心而論,想要事前預料系統可能發生的問題,並加以預防或因應其實並不容易,因為開發系統,尤其是軟體開發常會碰到事先難以預料的問題。但如果能在錯誤造成危害之前,就能夠發現問題並採取適當的行動來解決它,應該就能減少系統的失敗成本。因此,看到戴爾與台北捷運內湖線的重大系統異常,讓筆者想探討如何在系統失敗前發現錯誤,以避免系統失敗的巨大損失。 Read the rest of this entry »
早上在 News 98 聽到陳鳳馨評論吳德榮提前退休的新聞事件,她提到吳德榮說:「人們理盲又濫情,說也沒用」對此,她表示人們理盲又濫情她同意,但吳德榮自己何嘗不是理盲又濫情呢?然而,聽完陳鳳馨的評論反而讓人更困惑,或許同人應該好好思考一下,弄清楚到底是誰理盲又濫情。 Read the rest of this entry »
朋友在 MSN 上問我用 vb.net 和 c++ 開發程式有沒有很大的不同,因為她的主管要她加入一個使用 vc++ 開發系統的專案。她很怕接下這個任務會很難上手,但主管告訴他用不同的程式語言,只是工具的差異而已,她只需要依主管給的程式範例照著做就沒有問題。朋友不大相信主管的說法,於是想聽聽我的意見。
同人直覺感到不妥,並非因為朋友並不諳 c/c++ 這種程式語言,加上它與 vb 之間,存在根本的程式語言差異。我認為比較嚴重的問題還是溝通過程出現不精確的語言,這代表她們公司的品質文化,對解決專案的問題是沒有效果的。
學習 c++ 當然並不輕鬆,尤其如果沒有 c 語言基礎的話,學起來更是會格外吃力。因為 c++ 語言特性與 vb 的差異很大。比如 c/c++ 特有的指標,就很容易讓初學者混淆,如果觀念不清楚,常會讓程式產生記憶體衝突甚至是當在不明所以的地方。但程式語言或是程式設計的技術,這些都還可以藉由學習成長,對於積極進取、追求自我成長的開發者而言,這些並非是大問題。
誠如我在 facebook 的好友,也是以前在點空間聚會有一面之緣的仁傑兄,看到我對這件事情的分享,他建議:
If you want to encourage her, you can said that. Let her have a confidence to do it.But you have to keep coaching, monitoring and reviewing her codes.
然而,這件事情我覺得讓人擔心的並不是朋友的能力夠不夠。我注意到的是她們公司的品質文化,品質文化的問題並不在技術,它多半不會是專案成敗的關鍵,而是專案管理者的態度。 Read the rest of this entry »
這篇文章是投稿 ZDNet Taiwan 的文章原稿,由 ZDNet Taiwan 以〈軟體開發的難處 SA該如何解決?〉、〈為何SA很難落實簡單設計〉兩篇文章刊登。文章原稿未經 ZDNet Taiwan 編輯,內容可能與 ZDNet Taiwan 約略有所不同。
今(09)年初,應中山大學資管系主任鄭炳強教授的邀請,到他們學校做了一場演講。由於筆者與鄭教授原先並不認識,是透過台科大資管系主任李國光教授聯絡到筆者,因此,鄭教授邀請我在演講前先與他碰面、共進午餐,並且藉這個機會交流彼此在軟體工程方面的心得。
在那次午餐約會中,我們聊到了系統分析專業這個議題。鄭教授表示欣賞筆者寫的〈展現系統分析專業的七種能力〉,還曾在課堂上向他的學生推薦這篇文章…與鄭教授交流互動的過程中,也讓筆者得到不少收穫,回到台北後,一直想找機會分享這些收穫。
由於我一直想找機會回應那篇文章的讀者意見,也就是ZDNet讀者對於那篇文章的前半段〈怎樣才是專業的 SA?〉的一些留言,筆者發現這次行程的收穫,正好可以讓這篇文章有一個很好的起點。 Read the rest of this entry »
本篇文章是投稿至 ZDNet 的文章,已由 ZDNet 以〈領導力 決定專案成敗〉與〈團隊關係 左右專案發展〉兩篇文章刊出。文章原稿未經 ZDNet 編輯,加上同人在文章刊出後修改原稿,其內容與刊登的文章有些差異。
繼「新官上任三把火」之後,馬政府團隊又在國慶大典發生意外狀況。位置安排出問題、加上安檢嚴格,引發部分參加大典的民眾不滿。例如資深藝人和僑胞發生搶位置狀況,還有一對位置被佔走的僑胞夫婦,居然還被工作人員趕出場外,真是又委屈又生氣。
看到這則新聞,筆者關心的並不是主辦單位碰到這些意外狀況該怎麼辦,而是好奇為什麼座位安排的問題會重覆發生?其實像座位安排並不是什麼困難的問題,不需要動用複雜的技術,只要用簡單的 Excel 試算表就不會有太大的問題。
如此看來,座位重覆的問題不太可能是技術的問題,筆者看到相同的錯誤一再發生,我會懷疑問題不是出在技術上,而是因為管理的關係,使得團隊一再出現相同樣的行為模式造成錯誤。
可能是因為領導者的領導能力不足,使得團隊成員的能力處處受限而無法施展。如果真是如此,那麼與其討論技術細節,還不如討論該如何領導讓團隊充分發揮能力。因為,就算今天我們知道如何可以解決座位安排出現錯誤的問題,領導能力不足,明天團隊還是很有可能在別的地方出現錯誤,造成其它的意外狀況發生。
筆者相信不管是那一種專案,管理上的領導能力不足都會造成相同的錯誤一再發生。就像筆者在軟體專案中所觀察到的情況一樣,專案經理的領導能力不足,使得團隊成員把精力浪費在沒有意義的事情上,以致於對專案目標的達成並無太大的助益。
當然我們並不能否認,團隊成員的能力出現了問題,或是他們不夠盡力,也可能會出現同樣的現象。不過,根據筆者多年軟體專案開發的經驗顯示,團隊成員能力不足或是其心態有問題的情況並不多見,多半是專案經理無法讓團隊發揮實力。所以當專案一再出現相同的錯誤時,專案經理應該先思考是不是自己的領導能力出了問題。 Read the rest of this entry »
最近某位開發者和同人討論需求規格的問題,但他的反應卻讓人感到困惑,不知是他的理解能力有問題,還是面對問題太過情緒化?以下是我們對話的內容。
開發者 D 君問同人:「規格好像沒有提到欄位空白該如何處理?」
同人回答:「沒特別說明就是代表將該欄位填入空白。」
D 君說:「為什麼不是未指定欄位內容呢?」
同人說:「如果是那樣,該欄位不應該在交易訊息中出現;但如果該欄位的內容是空白,那就應該不指定訊息欄位的值。」
D 君說:「不過,從交易訊息的定義來看,那個欄位是必要欄位,不可能不出現。」
同人說:「所以那個欄位是必要的,訊息中沒有指定值就代表欄位要填入空白。」
D 君說:「那規格應該交待這個細節?」
同人說:「不需要,規格文件不寫語法而只會記載語意,因為語法是屬於 common sense,沒必要詳盡記錄在規格文件中。不然,如果連 common sense 都要寫在文件上的話,那是否意味程式設計者也不需要懂程式語言了,反正文件上都會寫。」
D 君說:「我知道了,你的意思是說我沒有 common sense!」
同人說:「如果你覺得我那裡說你沒 common sense,請明說我可以向你道歉,否則你這種情緒化的言論,只會讓人感到不舒服!」
D 君:…
同人將這件事寫在噗浪上,有噗友認為這類的開發者能力不行,沒什麼產值卻會製造問題。不過,在此事我所看到的問題倒不是開發者能力,而是認為重點在開發者只看文件做事的心態。開發者傾向用詳盡的文件來取代個人的思考與互動的溝通,這才是我認為最可怕的事情。 Read the rest of this entry »
最近正在閱讀《領導的黃金法則》這本書,在第 2 章〈自己才是最難領導的人〉中,同人讀到「領導是信任關係,而非權力關係」這句話。從過去在職場的工作經驗來看,我認為這句話還真是至理名言。
領導他人是發揮我們的影響力,讓別人去做我們希望他去做的事情。相信很多人會以為自己無法有效領導他人是因為權力太小與位階不夠,無法讓人聽從我們的指揮。但本書的作者麥斯威爾卻認為,領導最大的挑戰就是領導自己。
麥斯威爾認為無論領導者帶領什麼人、或成就什麼事,領導自己一直都是領導者遇到最大挑戰。他指出歷史上功業彪炳的領導者,總以為他們是天之矯子;但如果我們認真檢視他們的生命,不難發現他們自己總需要經過一番掙扎。這就是「自己才是最難領導的人」的原因所在。
麥斯威爾分享他對領導自己的親身體會,他認為領導者應該力行學習服從、培養自律精神、磨鍊堅忍精神、追求負責精神等行為來領導自己。特別是在追求負責精神方面,他指出「領導是信任關係,而非權力關係」,因此領導者必須比別人更早自我「校正」。
儘管絕不自我膨脹是艱難的課題,但無論如何,不管領導者位階多高、掌握多大權力都必須力求做得對。領導者除了為自己負責之外,更得為追隨受自己領導的人負責,這樣的領導才值得受到他人的信任。
看了麥斯威爾上面的觀點,同人想到過去看到那些運用位階或權威的領導者。表面上看起來好像他們是威風八面,但其所表現出來的行為卻是領導無方。 Read the rest of this entry »
《黔之驢》的寓言故事告訴我們藏拙的智慧。如同故事中老虎先前不知驢子的虛有其表,以為牠的龐然大物而對產生敬畏之心。但當黔驢技窮的底細被老虎發現後,可憐的驢子便喪生於虎口之下,這都是因為那頭驢子不懂藏拙的智慧。
從事軟體開發的工作,同人常觀察到一些開發者不懂藏拙的智慧,意欲表現自己很有能力,但卻總是被人看到他們虛有其表的黔驢之技。通常這種人不懂得用虛心受教來充實能力,而只會把問題的責任推到他人身上。
我們當然很希望這樣的人,不要出現在工作經驗當中。但很不幸地,世事總是難以如我們的預期,如果不幸在工作碰到這樣的人,我們應該如何自處呢? Read the rest of this entry »
本篇文章是投稿 ZDNet 的文章原稿,並以〈新官上任三把火〉與〈新官上任三把火(下): 建立團隊的創新文化〉兩篇文章刊出。原稿未經 ZDNet 編輯,其內容可能會與刊登的文章內容有約略的不同。
新政府能否為台灣開創新局還有待觀察。但從馬蕭辦公室與府院籌辦五二○就職典禮,卻出現許多的問題,加上當天的慶典南北奔波,被稱為有史來最複雜的就職典禮看來;新政府團隊似乎想要在就職典禮的活動上,改變舊制以發揮新創意,營造出耳目一新的感覺。但實際上卻反而把問題複雜化,造成一團混亂。這讓筆者想到在軟體開發過程中,也經常出現同樣的情況。
許多主導專案改變的領導者總是新官上任三把火,認為專案應該要進行改變以展現出自己的決心與魄力,因此要求團隊改變開發流程。然而,專案時間與資源的限制多半很難讓團隊有足夠的時間來調適或熟悉改變後的開發流程,結果總是令專案團隊倍感艱辛。
改革的困難正是考驗著領導者的領導能力,他更需要懂得如何讓團隊發揮創意與執行力來實現改革的目標。領導者應該如何領導團隊來進行成功的改革呢?筆者認為從領導者的價值觀、流程方法的改變、以及團隊的創新文化這三方面來看,我們可以從中體會到專案成功改變的箇中三昧,以助於掌握改革重點,有效地組織資源來幫助團隊實現改革目標。 Read the rest of this entry »