2009年1月31日 星期六

UBUNTU 8.10 - 解決新增硬碟或外接硬碟沒有資源回收筒問題

UBUNTU 8.10 - 解決新增硬碟或外接硬碟沒有資源回收筒問題

UBUNTU 8.04 / 8.10 在新增外部硬碟時不會自動建立資源回收筒
所以在外接硬碟 , 刪除檔案時會出現訊息 , "無法移動檔案到回收筒"
這樣對某些人來說 , 可能不會有困擾 , 反正刪除了就刪除了
但是有時候人有失手 , 萬一誤刪了就再也救不回來了 ,
所以還是要設定資源回收筒比較保險一點

注意事項: 本篇文章只適用於 格式化為 ex3 , fat32 的硬碟磁區
            如果是格式化 ntfs 的硬碟磁區 , 目前此解決方式無法解決問題
           <我用 USB 隨身碟進行測試發現的結果>

症狀:
新增外接硬碟(包含使用 硬碟分割編輯器 去增加硬碟分割跟格式化)
不會自動新增 資源回收筒

原因:
在外接硬碟沒有 , 回收筒的目錄
為了保險起見 , 還是要先讓檔案可以移動到回收筒之後 , 再決定要不要清除回收筒


解決方式:
開啟終端機 Terminal
輸入以下指令:

cd /media/M500-1
sudo mkdir .Trash-1000
sudo chown demo .Trash-1000

然後移除外接硬碟
重新接上外接硬碟 , 讓 UBUNTU 重新 Auto mount
應該就可以有 資源回收筒 ,

說明:
(a)
M500-1 是你的外接硬碟經過 UBUNTU 自動掛載上去 /media/ 下的名稱 ,
看看你的硬碟名稱為何 , 請修改為你自己機器上的名稱

(b)
sudo chown demo .Trash-1000
demo 是指你目前登入電腦的帳號名稱 , 看看你的帳號是甚麼 , 換掉demo



測試方式:
在外接硬碟 , 透過檔案瀏覽器 ,
EX: 在 /media/M500-1/SUB1 目錄 下
按下滑鼠右鍵 , (新增文件->空白檔案) , 新增一個空檔案 , 然後刪除那個空檔案 ,
看看是否仍然會跳出 "無法移動檔案到回收筒"
如果不會就是成功了 ,

接著可以看看刪除的空檔案是否出現在外接硬碟的 .Trash-1000 裡面的子目錄下
如果是 , 表示資源回收筒手動建立成功
(檔案瀏覽器 , 要在功能表選擇 -> 顯示-> 顯示隱藏檔 , 這樣才會看到 .Trash-1000的目錄)

備註:
(1)沒有必要去修改 /etc/fstab ,  因為沒用 , 會有權限問題 ,
(2)上述作法是單一使用者的作法 , 因為我的電腦都是個人用

2009年1月24日 星期六

專案管理_技術的問題 , 請以技術來解決

看過一些系統開發案 , 專案嚴重延誤 , 問題一堆 ,
有不少的狀況是 PM 完全不尊重公司內部的技術專家 , 聽信外部廠商的說法所造成

(當然 , 公司內部的技術專家 , 要真的熟悉相關的技術 , 了解每一塊的決策會影響後面的那一塊 , 然後需要衍生甚麼樣的問題處理等等)

系統開發專案 , 有時候最基本的問題就是 , 找來的廠商技術有問題 , 觀念有問題 ,
(為什麼會找這樣的廠商過來 ?


 有時候 , 公司的運作 , 是一堆利益問題跟政治問題所組合 ,
 就好像招標的時候 , 完全不提選商要用價格標 , 但是呢,


 如 果經過一堆選商的委員去評分 , 選出的廠商不是上面那些大主管們內定的廠商時 , 大主管們甚至會直接推翻選商的委員的評分結果 , 直接稿個價格限制 , 逼迫被選上的廠商自動棄標 , 然後大主管們也不是採用第二名或是第三名 , 而是搞個內定的廠商(可能是選商委員給 0 分的
 , 用這種玩法 , 你說過來的廠商的成員 , 他的素質會有多高?
)


系統開發專案有問題 , 有不少是根本性的技術問題 ,
但是有時候 , 常常會發現 , 很多PM並不是尋求專家的建議 ,
而是自顧自的 , 用所謂的 Soft Skill  去試著解決廠商因為技術能力而導致的問題

(技術能力的涵蓋:  包含程式語言 ,  工具的使用 , 軟體開發流程的觀念 , 品質的要求等等....)

這個時候 , 你就會發現 , 例如廠商技術能力不足 , 導致可能連 SA文件都出不來 , 或者是交付的程式可能是無法編譯或是執行的 , 或者是因為不熟悉某項特定產品而亂搞一通的

像這類技術問題 , 你只要看到PM不是從技術面去處理 , 而是在作搞定所謂"人"的問題時 ,
那可以掛保證的 , 專案還會繼續出問題下去 ,
因為不對症下藥 , 病是不會好的 ,....

專案管理可以管理許多問題 , 但是絕對沒有聽到說 , 不針對問題的源頭或是問題的核心去處理 ,
然後問題就會消失的


我看過某些系統開發專案 , 在廠商胡搞瞎搞之後 ,
系統還是上線了 , 但是公司的主管卻不敢把它全面的鋪到所有單位去使用 ,
因為廠商的技術有問題 , 寫出來的系統根本撐不住所有單位一起使用 ,
(過了一年多 , 廠商仍然沒有把問題解決 )

這樣的系統是有上了 , 但是只有鋪到一兩個單位去使用 ,
那開發這樣的系統效益何在?



有時候 , 技術問題 , 要根據專家的意見 ,
有時候 , 專家意見是不得修改的與忽略的 ,

技術問題絕對不是你找 5 個臭皮匠可以湊成一個諸葛亮 ,
碰到技術問題 , 如果你不是聽從專家意見 ,
而是在搞多數決 , 搞民主投票方式的話 ,
絕對可以保證你的系統問題叢生~~~

(例如 , 在開發 Web 系統時 , 找幾個搞 AS400  , 只會 COBOL的專案成員 , 跟一個熟悉 Web 開發技術的專案成員(專家)人(EX: JSP/ .NET) 進行多數決  , 去討論 Web 系統的架構以及可行的技術)


(如果你碰到 PM 這樣搞的 , 就要留意了 ,
 開發軟體系統 ,  技術問題不以技術解  ?

看過不少這種例子 , 一堆不懂技術的人在旁邊說風涼話 , 作建議 , 說沒關係 , 沒影響.....等等不富責任的話 , 最後有問題的時候 , 這些人絕對不會負責 , 一定是去找別人出來死....


基本這種對自己不在行的領域喜歡隨便亂說話的人都是不負責任的人 ,
這種人 ,  才是最不希望專案完成 , 系統上線的人 ,


另一種人(技術專家) , 是在專案一開始 , 已經在考慮專案要怎麼上線 , 怎麼測試 , 怎麼運作 , 怎樣問題會最少等等 ,  這種人多半會在發現問題的當下 , 立刻反應問題 , 並且要求或阻止廠商繼續讓問題擴大 ,
但是常常 , 這種人常常會被打成是 不希望專案完成 , 系統上線的人.... )



但是經驗可以發現 , 系統開發專案  , 當你不以"技術"解決"技術問題"時  , 你的系統大概也差不多該完了...

專案管理_假的Lession Learn


在一般專案結束之後 , 也會進行 Lession Learn ,
看看可以學到些甚麼教訓(做錯的事) 或是經驗(作對的事) ,
不論要學到甚麼 , 都必須要誠實的面對問題 , 才能發現真正的問題所在


但是我要說的是在專案的過程中 , 就應該不斷的檢視與檢討 ,
而不是等到專案結束的時候才來進行Lession Learn...
當專案發生進度延宕 , 廠商一再提出相同的作法 , 而一延再延的時候
正確的作法應該是找出真正的問題所在 , 針對真正的問題所在去解決

但是因為在職場上 , 很多人不願意誠實的面對問題 ,
不願意面對問題 , 採用相同的錯誤作法 , 只會讓錯誤一再重複發生


當進度落後時 , 可以採行幾個方式去檢查 , 可能的問題所在
a.請廠商提出他們的專案成員組織文件 , 看一下 , 有多少人 ,角色為何 , 每個角色負責的工作為何 ,
  再去抽樣詢問廠商的專案成員 , 看看他們是否都知道自己所負責的角色為何?  應該負責的工作為何?
  實例: 曾經看過廠商的PM完全沒有這樣的文件紀錄 , 然後抽問廠商的專案成員 ,
            廠商的專案成員完全不知道自己要負責那項工作事項,
           
            在經過我直接詢問廠商PM寫下廠商的專案成員組織文件後 , 明顯的發現廠商的人力嚴重不足 ,
            廠商PM才開始進行人力的interview, 這個時候已經過了3個月

b.確認一下廠商的專案是否上下游可以銜接一致
  上下游可以銜接一致 , 舉例來說就是下游的所需要輸入就是上游的產出  , 如果下游需要 A 當作輸入 , 但是上游完全沒有產生 A 當作產出
 這時候你就可以確定廠商的上下游沒有銜接一致 ,
 沒有銜接一致會有甚麼問題?
 如果你的專案的許多區塊可以是完全獨立沒有關聯的 , 哪就沒有關係,
 但是你的專案想要平行開發許多區塊 , 但是又沒有先找出關鍵點(諸多區塊會相依使用的那個重點區塊 , 如果沒有先作 ,後續的區塊可能會有問題)


另外一個很重要的問題 , 當廠商的進度一延再延 , 完全沒有完成的產出時 ,

停下吧 , 千萬不要再跟廠商說: "你自己說 , 你自己排 WBS , 舖出一個可以做的到的時程"
如果廠商真的沒有問題 , 他自己怎麼會一延再延 , 東西出不來 ,


千萬不要這樣作 , 因為這樣不能解決問題 ,
應該請廠商提出他們對自己的狀態與問題的檢視與檢討 ,
如果廠商認為他們完全沒問題 , 那大概這個專案也差不多完了 ,
為什麼?
專案一定是有問題 , 才會一延再延 , 完全沒有產出 ,
但是廠商又認為自己沒問題 ,
沒問題的問題 , 才是最可怕的大問題 ,

廠商連自己錯在哪裡 , 哪裡有問題都弄不清楚 , 你說不可怕嗎?

在廠商沒有真正的認知到自己的問題出在哪裡之前 , 請千萬不要再叫廠商自己去舖 WBS 與排時程了
(如果他沒問題 , 又怎會修改了 n 版的 WBS 與時程 , 仍然沒有半點產出 , n 大於 10 )
(這種作法 , 用台語的俗諺說 , 叫: , 請鬼開藥單)


專案管理的課程中 , 有提到 Milestone , 我聽過的一種說法是 ,
Milestone 是 Kill Point ,
意思是每一個Milestone都會是用來審視與決定專案是否要Kill 或是繼續往下走的決定...


如果廠商不斷的延誤 , 連第一個 Milestone 都沒完成 , 已經過了專案預定的完成時間 , (意思就是 100% 延誤 ) , PM還決定要繼續給廠商機會的 , 那就有問題了....






2009年1月17日 星期六

專案管理_是交付比例還是完成比例?


實例:
 有的PM在面對廠商的產出時 , 跟必須要上交給公司高層的status report時 , 跟實際狀況竟然不一樣 ,

 PM跟廠商講好,只有有交付,他就會掛進度 ,
(PM同意廠商PM 可以不作SA , SD先有開發[這又是另外一個大問題])

經過 n 個月後 , 在廠商完全不作 SA , SD 的狀況下 ,進行開發
廠商交付了十來個Java Class Source Code ,
就這樣 , 進行Code Review的時候發現,

 這些Source Code 無法完整的被編譯 , 因為還有Source Code沒有交付 ,
 即便可以可編譯 , 也無法執行 , 因為還有必要的設定檔沒有交付 ,
 經過人工的審閱之後發現 , 這些Source Code 無法被編譯 , 執行 , 更何況是測試與上線
基本上可以說完成度 是 0% ,

公司簽約金付頭款就 一百多萬 , 得到甚麼?
 (如果加上購買另一個軟體套件的費用 , 至少投入 兩百多萬 , 更不提公司內的專案成員 , 加上 User單位的人力投入 , )
投入兩百多萬 , 加上公司人力至少 70人月的投入(包含其他單位的人力)
公司能夠得到甚麼? Nothing , 沒有分析文件 ,沒有設計文件 , 沒有可執行系統 , 甚麼都沒有 ,... ,




有交付不等於有完成 ,
專案管理雖說是以產出為導向 , 但是也從來沒有說拿著沒有完成的產出當作進度的

但是PM的Status Report中的進度回報可不從來都不是掛零 ,....
 現在專案有問題了 , 可能會被中止 , 那就牽扯到什麼是有效(完成)產出


 迄至目前為止 ,
 沒有 SA 文件 , 沒有SD文件 , 更沒有可執行的系統模組 , 一個都沒有
 等於專案的完成產出是零

 但是PM在先前的 Status Report 中可不是掛零 , 為什麼會有這種差異頗大的落差?

因為 PM 掛的是進度都是只要廠商有開始作 , 就算數 , 而不是以廠商完成了才算數 ,
也就因此種下此惡果的因之來源

現在PM要為了掩飾他先前所交付的Status Report 是有進度的 , 有產出的 ,
現在又在玩一些把戲 , 說看看專案要被中止了 , 什麼樣的產出對公司是有價值的?
要廠商已交付那些產出為目標 , 至少交出文件來...
甚至還要潑污水給專案成員 , 說有些專案成員希望專案被中止 , 而不說因為他的問題導致今日的果,
這個就是會做事的 PM...

<從一開始 , 專案就偏差了 , >

2009年1月12日 星期一

專案管理_QC不是萬靈丹


最近碰到品質很差的開發商 , 交付完全沒有品質的半成品時

老闆跟 PM 的反應竟然是只要多多投入人力去作 QC , 就可以了


請問 , 投入一萬個人力去作QC , 能夠把 搖搖欲墜的小木屋 , QC成為 鋼骨結構的摩天大樓嗎?

明明知道要蓋摩天大樓 , 但是看到開發商連地基都沒準備 , 就開工了 , 到目前為止交付的都是一片一片的木板 ,  然後說這樣叫有產出 ?

PM 也收...

如果有那家公司可以說 , 他們可以投入人力去作 QC , 然後可以把 搖搖欲墜的小木屋 , QC 成摩天大樓的
請告訴我,....

2009年1月7日 星期三

VMWARE SERVER 2.0 Ctrl + Alt + Del 無法登入 (UBUNTU 8.10)

VMWARE SERVER 2.0 Ctrl + Alt + Del 無法登入 (UBUNTU 8.10)


最近把整台機器重灌  (UBUNTU 8.10)

然後重新安裝 VMWARE SERVER 2.0
 (完全不需要在 安裝前進行任何其他額外的下載 , 使用預設的UBUNTU 8.10 安裝 )

然後啟動新的VM , 發現 使用 Ctrl + Alt + Del 無法登入 Windows Guest 的登入畫面
Ctrl + Alt + INS 也不行 ,....


發 現需要在
~/.vmware 目錄下 手動建立一個檔案名稱為 config
內容為
xkeymap.nokeycodeMap = TRUE

然後啟動 VM 時 , 就可以使用Ctrl + Alt + INS 登入 Windows Guest 的登入畫面

2009年1月5日 星期一

專案管理-不好的專案改善方式

當專案發生延誤的時候 , 通常 PM 會召開會議 , 請專案成員參與 ,
然後請專案成員提出建議 看看要如何改善專案 ,

最糟糕的說法就是那種
(a)¨ 大家都是專案成員 , 專案的成敗大家都有責任¨
 然後補上一句
(b)誰誰有沒有甚麼方法可以改善的
然後就開始大家大眼瞪小眼 ,呆著...

這個不是Brain Storming  好不好

更慘的就是 , 還會有那種不負責的人在旁邊說風涼話(所謂的不負責 , 就是他完全沒有能力可以解決那個問題 , 或是完全不知道怎麼作 , 又不用負任何責任的人)

風涼話例如:(c) ¨大家繼續撐著 ...¨ , 或是 (d)¨只要大家有信心 , 專案一定可以完成的¨


實際上 , 應該是要找出專案發生延誤的真正原因 , 真正問題 ,
唯有面對問題 , 才能找出問題的原因 , 也才能找出真正的解法 ,...
如果 PM 不能面對問題 , 則不論採行任何方案 , 該問題始終會一再出現 , 專案就會一再延誤


如果專案成員有人在說風涼話例如:(c) ¨大家繼續撐著 ...¨ , 或是 (d)¨只要大家有信心 , 專案一定可以完成的¨ ,
請問這樣的風涼話可以找出真正的問題嗎 ? 可以真的把問題解決嗎?


再說
(a)¨ 大家都是專案成員 , 專案的成敗大家都有責任¨ / (b)誰誰有沒有甚麼方法可以改善的
這個是不面對問題的說法 ,
應該是找出問題 , 該誰負責 , 誰就負責 , 如果誰的能力或技能不足 , 則應該對外(其他部門單位)或對上求援就該求援 , 儘速把問題解決 ,

一個問題會出現 , 不管如何 , 一定要指派一個人員負責去追蹤處理 , 打混仗是最糟糕的事(就是說是大家都有責任 , 但是完全不會有人撿起來作)

2009年1月3日 星期六

沒有軟體開發經驗的人去作SA會有甚麼問題?


沒有軟體開發經驗的人去作SA會有甚麼問題?


沒有軟體開發經驗的人去作SA會有甚麼問題?


我在 "OCUP UML初級認證攻略" 書上看到作者的一段話 ,
她提到要考UML認證的理由六:

"理由六: 資料的程式設計師 , 女性程式設計詩 , 或者是打算邁入軟體業的女性新鮮人 , 要趕快往UML轉型或投入 , 否則年紀越來越大 , 不僅敵不過年輕小伙子的熬夜拼命 , 女性朋友還會因為熬夜而青春難保"

看到這段話 , 我是深深的不以為然 , 因為這段話中 , 提到要往UML轉型的理由極度的牽強 , 且不合理 ,

我特別認為這段話會誤導很多人 , 這也就是為什麼 , UML 在台灣會呈現兩個極端 ,
(a)會用UML收集需求 , 進行分析設計 , 進而根據UML規劃去開發系統 的人 , 會認為UML是好東西
(b)不會用UML的人 , 只會認為這個對於他的軟體開發一點幫助都沒有 , 只是為了應付業主的要求為了文件而文件 , 只會讓自己開發系統的速度變得更慢 , 甚至乾脆就是等軟體開發完 , 再用反向工程去把程式碼轉為 UML 圖形....

我一直強調一點 , 完全沒有OOAD程式開發經驗的人 , 沒有資格去當SA , SD ...
因為軟體開發中 , 上游的產出是下游的輸入 ,
 上游如果完全不了解下游的作業 , 或是下游的需要 , 那麼規格一定是亂開....


EX1:
我曾經碰到過廠商針對我們的需求 , 開出了這麼一個系統規格要求:
"系統需要把目前的報表紀錄匯出成為 EXCEL檔(.xls / or .csv ) , 要能使用 EXCEL 開啟"

實際上廠商也寫出來了 , 但是這樣的一個系統規格要求是由問題的 ,
因為他們發現EXCEL打不開檔案 , 為什麼 ,

因為 EXCEL的一個工作表的列數限制是 1~65536 列 ,
而要匯出的報表紀錄筆數超過了 65536 列 ,....

當然如果你匯出的是 .csv 檔 , 你可以用 記事本 notepad 開啟 , 但是你用 Excel 應該是打不開....
同理如果你是用 POI 匯出 .xls , 應該也是會有問題 , 因為 一個工作表的列數上限就是 65536 列


這個限制很簡單也很單純 , 但是打敗一堆人 , 一堆人在哪裡猛查程式哪裡有問題 , 查了很久沒有查出來...
(這樣的規格 , 到現在 , 你去看網路上 , 仍然有不少人在開這樣的系統規格 , 而且完全沒有理會到未來可能會有甚麼問題發生) ,

這樣的系統規格需求不能說它不對 , 而是它有限制 , 如果你知道你的系統匯出筆數永遠小於 65536 筆 , 一定沒有問題....
(這也是我對某些人員很感冒的一點 , 他們都很會說話 , 讓老闆認為他們做的很好 , 但是常常喇賽的時候 , ...就要我去幫忙查問題 , 看原因 , 最後還要把賽幫他們擦乾淨(特別是那些莫名其妙的SA))


這也就是為什麼我一直認為沒有軟體開發經驗的人去作SA會有很多問題發生 ,...
但是偏偏還是有一堆人以為只要考過 UML 就可以去作 SA , SD , 等到他們開始去開規格時 , 完全不理會系統是屬於 Client / Server , 或是 Rich Client / Thin Client 或者是 Internet / Intranet 等等需求 ,
反正就是亂畫一通 , 以為自己畫了圖 ,  系統就會自己長出來 , 但是當下游的 Programmer 來問的時候 , 自己又完全講不來要如何把圖形轉換為程式碼 ,...
就這樣子 , 就會發生 , 新鮮人 雖然採用了 UML 進行系統開發 , 但是完全上下游無法串連 , 結果導致系統開發失敗 , 最後就會發生像是 "UML 對系統開發一點幫助都沒有 , 還不如直接寫程式的看法..."

又或者完全沒有寫過 Web App的人 , 只會AS400  , 然後又要去開出 Web App的系統需求跟規格 , 完全不了解 Java / .NET 架構的人在開規格,...連Web程式的限制是甚麼都搞不清楚 , 常常就會開出莫名其妙的規格...


(發現說著說著又離題了之二 )