精華區beta toberich 關於我們 聯絡資訊
先說好排叛排的很差 可以直接去原始網站看文章 網址如下 http://www.ithome.com.tw/itadm/article.php?c=47000 寫SOP就是寫程式 文/iThome (記者) 2008-01-08 雖然寫SOP與寫程式相似,但兩者終究不同,SOP的執行者是 人,不是機器。所以寫SOP時,一定要充分考慮到人的因素, 納入人的彈性,排除人的偷懶(或自作聰明),才會寫出真 正實用的SOP。 任何一家有制度的公司,都會定義「標準作業程序」 (Standard Operating Procedure,SOP)。對麥當勞和統 一企業等以服務見長的大企業來說,SOP是重要資產、公司 經營的Know-How,影響產品與服務品質,只要SOP完備,就 可以快速展店。 甚至,日前警方查獲的詐騙集團也有SOP,該集團將詐騙手 法詳細記載成為詐騙執行手冊。當詐騙集團也懂得藍海策略 (詐騙手法推陳出新)、知道長尾效應(對準特定小眾族群 進行詐騙也能獲利),並充分運用SOP時,或許也正代表我 們社會相當進步,已經進入所謂的知識經濟的時代吧。 一般公司內部的運作,處處仰賴SOP。有的公司雖小,但SOP 累積多年之後也是厚厚一大本。一般來說,SOP會告訴人員, 要怎麼做一件工作、處理一件事情、調用公司的資源……等。 這一切,是不是讓熱愛程式的你有所聯想? 把公司看成一個電腦系統,有許多的資源(設備、材料、人 員、執行緒、I/O),每個員工都是一個執行緒,櫃臺和倉 儲是I/O,負責資料的進出,其中,SOP扮演程式的角色,以 有效的方式協調、處理、運用這些資源,以達到特定的目的。 如果SOP是在公司內執行的程式,那麼,寫SOP其實就是寫程 式,寫程式的方法自然也可以套用在SOP撰寫上。寫程式的 經驗,對於寫SOP,其實是有幫助的。當你需要寫SOP,卻不 知從何下手時,不妨往程式設計的方向來思考。 我認為SOP可以分成三大部分,第一部分是常規作業(Routine) ,第二部分是事件驅動(Event-Driven)作業,第三部分是 例外處理(Exception Handling)。如果你了解程式設計, 這三者該寫些什麼,你應該就會知道。 一個好的SOP應該具備哪些要素?從判斷程式的準則來看, 應該是:執行效率高且耗費資源少、容易理解、支援跨平 臺(在不同的分店一體適用)、方便修改維護。 既然SOP是一種程式,那麼,也可以採用不同的編程思維 (Paradigm),例如物件導向、命令式、邏輯式、函數式。 許多時候,用文字敘述的SOP,往往不夠清楚,如果能夠改 用寫程式的方式來表達(不使用真正的編程語言,而是使 用Pseudo Code),搭配註解,也會是不錯的方式。 除了可以套用程式設計思維,寫SOP時也可以套用軟體工程 的作法。或許SOP比較適合採用敏捷(Agile)與反覆式 (Iterative)的開發方式。因為SOP在執行之後才會發現 缺失,就可以繼續進行修正補強。別忘了每次的改變,記 得要做好版本控制。 UML(Unified Modeling Language,統一塑模語言)支援 許多種圖,幾乎每一種圖都可以在SOP內派上用場。UML可 以幫助SOP作者編寫SOP,也可以幫助讀者理解SOP。 和程式設計一樣,寫SOP不能光靠語言和邏輯,還需要特 定專業領域的知識。 例如,寫3D繪圖的程式,必須先了解3D圖學的許多知識。 對於SOP來說,專業領域可能是會計、稅務、法律……等。 所以編寫SOP時,最好與了解該領域的人一同合作。 OO的封裝和繼承也可以套用在SOP,利用封裝將資源和動 作集中在一起,利用繼承將某些方法進行擴充或修改(例 如「同A作業,但步驟3更改如下」)。但是OO的多型似 乎不可能用在SOP上,所以還是得大量使用switch/case的語法。 另外,邏輯式編程的作法似乎相當適合用在SOP,因為大 部分的人都有足夠的邏輯能力,可以理解與判斷。使用 邏輯編程可以讓SOP的編寫較簡潔。當一個資源許多人搶 著用時,你就可以引進Concurrency編程的方法。 寫程式時,我們要多使用變數,而不是將資料寫死在程 式碼中,寫SOP也是一樣,例如,你不應該在SOP內寫「 把這份資料交給陳水扁」,而是應該寫「把這份資料交 給總統」。畢竟,陳水扁總有下臺的一天。 有許多程式工具可以幫助我們檢查程式中的語法/語義 錯誤、Dead Code,甚至Dead Lock、效能瓶頸。但是SOP 卻沒有這樣的檢查工具,一切只能靠SOP編寫者的經驗。 所幸,人和程式不一樣,人是有彈性的,許多SOP的缺 失可能會因為人的介入,能視情況應變而不會發生問題。 但是,好的SOP並不能保證公司營運不會出問題,許多 公共安全意外發生的原因,是檢修人員偷懶,沒有確實 按照SOP規定的步驟進行維修所造成。 因此,雖然寫SOP與寫程式相似,但兩者終究不同,SOP 的執行者是人,不是機器。所以寫SOP時,一定要充分 考慮到人的因素,納入人的彈性,排除人的偷懶(或 自作聰明),才會寫出真正實用的SOP。 -- ﹒☆‧°∴°﹒°.﹒‧°∴° ...﹒ ╱◥█◣☆ *.* ﹒.‧* ★﹒*☆* ︱田︱田︱ .‧. ● ●.*.* ﹒. ╬╬╬╬╬ ....._/█\_/█\_ ‧.福喲~  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄√√ √√ ̄ ̄ ̄ ̄ ̄ ̄ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.169.199.22 ※ 編輯: miss500 來自: 118.169.199.22 (04/22 11:04)
TheRock:好文,推! :) 04/22 12:56
jhc0723:SOP是死的 人是活的!! 04/22 21:44
klimt:很有趣的想法 05/27 17:07