如果引用或轉貼,麻煩註明出處與本網誌連結,否則視為侵權。

2011年11月12日

企業應用系統的開發生產模式探討

 

作者 : Fred F.M. Wang 日期 : 2011/11/12

一般企業IT應用軟體開發模式相較於四種製造模式是屬於接單生產,雖然較容易貼近客戶的需求,但是資源的運用與TAT較差。本文將介紹四種製造模式之優缺點比較。

一般企業IT應用軟體開發模式相較於四種製造模式是屬於接單生產,雖然較容易貼近客戶的需求,但是資源的運用與TAT較差。本文將介紹四種製造模式之優缺點比較。

Build to Order 接單製造    : 完全根據客戶需求規格打造產品   
優點:完全符合客戶的需求
缺點:生產單位需要不斷配合客戶進行產品與製程的變更,效率較差,TAT長

Configuration to Order(CTO)接單裝配 : 將零件模組化,接單時再裝配為客戶需要的產品   
優點:生產效率較接單製造高,對產品客製化與變更的彈性也較後兩者大
缺點:可能無法完全符合客戶的需求

Build to Assembly 組裝製造 : 先製造半成品,接單後再進行組裝完成成本   
優點:生產效率較前兩者高
缺點:可能無法完全符合客戶的需求(半成品需要經過客戶認可)

Build to Stock : 製造標準化產品   
優點:可以計畫性生產,生產效率與資源運用最好
缺點:無法完全符合客戶的需求

IT若要縮短應用系統開發時程,又能盡量滿足客戶需求,應朝接單裝配或組裝製造的方向規劃。配合有效的專業分工與產能(內製或外包)控制,成熟的程式元件庫或樣版(半成品),

 

有人知道這些奇怪的轉介網址嗎?

 

本月開始出現一些奇怪的流量來源,不知道有沒有網友有類似的問題?

image

.TK是免費的域名(Domain Name)服務

image

第一個bllog.tk因為惡搞, 被停止使用

image

 

Asmaa Heban警告大家不要連上這些網站!image

 

如果各位Google部落格版主有這個問題,請將問題反映給Google,請他們阻擋這種問題的流量

image

2011年11月11日

軟體工程方法論與IT政策

 

作者 : Fred F.M. Wang  原作日期 : 2004/08/12

企業在進行一項軟體專案除了專案管理方法外還會引用一套軟體工程方法(Methodology)來完成應用軟體的開發或實作。而採用的方法往往會與使用的技術或專案的特性相關,而專案管理方法也可能與採用的實作方法相關。例如: SAP ERP導入會採用SAP的ASAP Methodology, 而J2EE Project業界流行的是RUP或XP, 而RUP及XP各有一套專案管理的方法,也各有適用的狀況,RUP以Process為主體,XP以人為主體,RUP適用於60人以上的專案而XP適合於現有系統的改善或小型的專案。

企業在方法的選擇及使用的技術會根據其管理的角度訂定IT Policy,而不同管理層面的考慮的優先順序將對企業的成本與效益帶來不同程度的影響。

軟體工程方法論的採用及選擇

筆者在二十多年前研究所階段就以軟體工程方法論的研究為主,最早的軟體工程方法論源於工業工程方法,由於軟體技術的演進及軟體應用層面的擴大,傳統的方法論以經無法適用於各種應用的開發,因此衍生出許多現代的方法論。而這些方法論無非是用來解決應用需求轉換為軟體系統的問題,協助軟體專案從需求定義,系統建構,上線等過程提供系統方法來完成專案。採用軟體工程方法論的目的整理如下:

  • 使用者,分析師,與程式設計師等專案人員有共同的語言
  • 一致的程序及交付項目
  • 以系統的方法增加成功的機率
  • 提昇專案品質
  • 提高專案的可預測性,及早發現問題
  • 成功經驗可以經過文件加以傳承
  • 提高專案的效能

如同軟體工程方法論的演進史,不同的方法論是因應不同種類的應用才產生出來的,因此IT Policy應該制定選擇方法論的程序,而非限定單一方法論的使用。

應用系統架構程序

大型與複雜的系統往往無法用單一技術元件完成,特別是近年來J2EE的專案,因Internet而盛行,J2EE Project往往會牽涉多種技術,因此在架構系統的過程更形重要,Architect需在專案範圍,風險,專案時程及資源預算等限制下訂出應用系統的架構,此架構可能包含應開發的元件組合, 選用產品及APIs等,當然IT Policy也是限制之一。由於專案的內外部限制已經很多,因此IT Policy在產品或平台的選擇方面,若過於僵化將使專案的進行更形艱難。

最佳軟體方案(Best of Breed)單一供應商與自行開發的決策

企業在選擇軟體系統解決方案,會有三種可能的選擇最佳軟體方案(Best of Breed),單一供應商與自行開發,而這三種方案的決策會受下面的條件的影響:

  • 企業現況及需求,包含企業規模,組織,需求的範圍及條件等
  • 預算與投資
  • 技術或產品的成熟度與市場的趨勢
  • 資訊人員的技術能力

以SCM Solution為例, 此三種方案比較如下表:

image

(另外, 近年使用Open Source或租用則不列入比較 – 2011/11/11)

由上表可知,若政策上要求企業需求適用性為第一考量,則會以Best of Breed及自行開發為主。

不同企業採用的策略不同,年營業額七億以上的Starbucks以Oracle ERP為主幹,再以Best of Breed的方式選入其他產品作為該企業SCM Solution。而年營業額七千四百萬的Green Mountain Coffee Roasters則採用單一廠商產品的解決方案。但是Wal-Mart仍採用自行開發的方式。 image

以特有與創新的經營管理模式取得市場優勢的公司,往往無法在市場找到適合於此模式的產品,因此傾向於自行開發,如Wal-Mart,其條件是需擁有專業的資訊科技部門。

由於許多較具規模的企業,其業務型態較為複雜,資訊科技於商業應用領域也較為廣泛,因此單一產品往往無法滿足於各項應用,因此也會傾向於採取Best of Breed的方式,如Starbucks等,來滿足快速成長的商業應用,但是業務型態單純及規模較小的企業容易選擇合適的產品以完成企業的需求此時將傾向於選擇單一套裝軟體以減低IT人力成本及整合成本。

因此IT政策在解決方案策略的訂定,應該優先從企業規模及商業需求為優先考慮,以因應企業快速變化的需求,例如,可以制定選擇解決方案的優先順序或不同狀況及不同條件下該採用何種解決方案。

不同產品的適用領域與架構設計師

不同的產品、API或Solutions各有其適用領域,根據筆者的經驗,一個具備一般WCM功能網站用WCM產品與採用Jakarta Struts framework開發的時程差異為一比九。而Document Management System及Workflow System上Lotus Notes優於SAP,Transaction Process則SAP優於Lotus Notes,而開發平台上Domino Designer的彈性優於SAP ABAP Workbench,但SAP Workbench開發速度較快。若某項需求適合用Lotus Notes完成,卻錯誤的選擇用SAP開發,那麼開發時程可能就需花費如上面九倍或更長的時間。

軟體架構設計師(Software Architect)在此的角色,就相當重要,軟體架構設計師是計劃並監督建構過程的軟體技術設計人員,主要的任務就在規劃與系統架構層次相關的事務,評估可能的風險與成本,並有效運用有限的人力、物力 資源達成系統層次的需求,因此除了是資深技術人員,通常也是策略制定、組織協調好手、稱職的顧問與領導者。

一位好的架構設計師通常具有以下專業領域的技術素養:

  • 企業需求
  • 硬體與軟體架構
  • 分析、設計與開發
  • 產品支援
  • 效能、安全性、容量規劃(capacity planning)、網路

架構設計師在專案過程中的角色:

  • 研擬最初的高階架構藍圖(blueprint)並列出影響架構可能因素的清單。
  • 審慎評估付諸實施的專案計劃對系統既有基礎結構(infrastructure) 與架構的衝擊,以及計算可能付出的成本與所帶來的效益而訂定。
  • 制定專案的架構決策與其優先順序的判斷基準、定義問題領域 (Problem Domain)、決定可能解決方案的限制條件、確認有關可能解決作法的假設狀況以及辨識模組重用的可能性。
  • 負責確保需求的達成,以及硬體、軟體、基礎結構、效能、安全性、容量、可用性和系統運作、管理與維護等等屬於系統層次相關技術之間的協調與平衡。
  • 構建架構時期,預先列出這些可能的風險,然後在後續的開發時期配合開發人員予以適當地處理與解決。
  • 領導開發團隊,保持與其它成員的良好互動,確保開發人員是根據架構藍圖來構建系統。

因此企業應重視軟體架構師的人才培育與投資。在政策上也應訂定正確的方法來進行軟體開發專案。

程式內的註解要寫些什麼?

原作時間 : 2003/2/7 作者: Fred F.M. Wang
 
基本上一個優良的程式撰寫風格就是最直接的說明文件, 不過這裡不辯證該不該寫註解的問題, 另外, 程式內的註解與系統文件還是有所差異, 其對象及目的也有所不同, 在此也不討論 :

註解的種類有 :
1.     repeat of the code : 就是用口語將程式重複說一遍, 像是給不懂程式語言的人看的
2.     explanation of the code : 用來解釋一些複雜或高技巧的程式, 不過往往是撰些時沒有注意程式的結構, 才會如此難懂, 不如用心思再將這段程式改寫的可讀性更高一些, 有關如何寫出優良的程式, 應該有不少書談論
3.     marker in the code : 程式設計師以特殊的標記如 /* %%Note%% ….. */ 留下暫時的標記, 以方便紀錄程式設計過程中, 未完成或待加強的部分
4.     summary of the code : 只取某段程式碼中的重點, 以兩三句話說明, 比重複整段程式來的有用多了
5.     description of the code’s intent : 解釋一段程式的目的, 不從技術面說明, 程式開頭的說明也是這類

如果在分析設計階段能用Pesudo CodePDL(Program Design Language), 在實作階段在加入程式碼, 那麼這些PDL就是最佳的程式內註解, 不過PDL也有一定撰寫的規則的

SAP Phantom material(虛擬物料)觀念與設定

 

原作時間 : 2000/10/26 作者: Fred F.M. Wang

有些半成品當一組成立即被父項用掉, 因此不會從現場領出(無庫存), 這類的半成品可列為Phantom material, 或某些元件之間在BOM中均集合列出, 可用一料號代表以方便管理, 此代表料號就是Phantom material.

image

上圖中, 半成品 "X"就是Phantom material

SAP 物料主檔的設定 :

在MRP 1 view中的special procurement欄位選50(Phantom assembly) lot size key 選擇"EX" (lot for lot)

image