首先,站在開發人員的角度,往往強調的的許可權有多麼的強大、多麼的完善、多麼好用等等,其次站在使用者的角度考慮問題,使用者可能是前後上線了N個系統,每個系統都有個人化的許可權管理等,搞得暈頭轉向,東搞搞,西搞搞有些煩惱了,甚至是很害怕再上什麼新系統了,他們更多關心的是能否集中系統管理權限,多個系統能有統一的集中管理的許可權配置,在上新系統,也不用組態管理這些了。站在IT公司主管的角度,東一個許可權管理、西一套許可權管理,互不相容,人來人往,越搞越亂越來越多的同質化的功能,要命的是這些還需要不斷維護改進,更要命的是,人走了做了一半的軟體項目留下來了。 其次,同一個應用系統,在一個比較規範的大公司實施,可能需要很細的許可權控制要求,同一個系統要分好幾個崗位進行操作,但是這個應用系統銷售給另一家客戶,可能客戶的業務重點不同,關注的核心業務不同,很可能導致對許可權的需求是很粗放的,甚至是只有一個崗位或者很少的崗位會用到這個業務系統、操作相關業務。 總結以往的經驗,程式開發人員往往生活在理想的想象空間裡,往往會存在“過度設計”及與實際生產環境不相符的空想環境下啟動並執行軟體系統,結果往往把設計好的程式拿到客戶實際生產環境裡實施,會遇到很多問題甚至是無法順利實施。 跑題A:(過度設計) 曾經我們開發一個進銷存軟體,裡面搞了200多個許可權控制點,拿到客戶那裡後發現,客戶只有2-3個人操作這部分功能,根本不需要那麼細的控制,只需要按2-3個分工區分許可權就可以了,當然這些都有變通的解決方案,主要是想說明一下,程式員往往會是過度設計、過度理想化。 跑題B:(真正的實際應用與當初的設計往往是有很大的差距) 曾經開發過一個浴室的管理軟體,在類比環境下演練,都沒問題,拿到客戶哪裡會才發現我們想象得太天真了。 (1) 來洗浴的客戶往往不是一個個來,是一批批來,往往由其中的一個人買單,而不是各買各的。 (2) 服務員,又要照顧客人,又要操作電腦,根本滑鼠都找不到,滑鼠掉哪裡了也不知道的,需要用滑鼠點的操作,完全用不了。 (3) 常用的操作,必須要加快速鍵、否則無法快速進行操作。 (4) 一天到底來了幾個客戶,現在還有幾個客戶在洗澡,老闆很重視,而不是要看統計報表,隨時要看。 統一許可權管理也一樣,不能只站在自己的業務系統上、也不能只站在開發人員的角度思考問題,而是更需要站在客戶的角度看待問題,客戶往往想要的東西,不是程式員設計出來的東西,並不是在於功能多少強大上,而在於是否真正理解了客戶的實際需求。 將許可權管理、工作流程管理做到我能力的極致,一個人只能做好那麼很少的幾件事情。