網路城邦
上一篇 回創作列表 下一篇  字體:
設計的失敗可不只有軟體會發生
2013/01/20 12:05:30瀏覽225|回應0|推薦5

軟體設計,失敗的作品很容易辨認。只要充斥無謂,無價值或必要性的複雜,基本上就是失敗的作品。簡單的問題,可能為了掩飾簡單的本質,而刻意搞得很複雜,弄得神神秘秘的,沒人清楚到底在設計啥鬼的時候,對設計者有時候是一種保護吧,當實際需求是可笑,荒謬或嚴重失職的不切實際的時候,為了政治方面的考量與個人最佳利益,有時候刻意設計得很複雜,加入許多障眼法的無謂元素是一種自我保護的方式。這個軟體程式是幹啥的?它滿足的需求有哪些?說得不清不楚軟體就開發出來的,毫無疑問是有大問題的,而說清楚之後,看看實際的程式單元,與必要的實際需求相關的部分有哪些,佔的比例有多少,是不是了解需求就可以了解設計的架構與容易的維護修改,這就是判斷設計品質好壞的依據。失敗的設計就是在許多那種其實怎樣做關係不大,和核心需求沒有影響而可以任意替換的次要功能上頭下了大心思,用技術與巧思做過度的包裝,以及腦力激盪出許多非必要的需求來找事做,進而讓專案規模因此膨脹。這不是什麼罕見的失誤,或許該說這是常態吧,因為,客戶是怎麼付錢來進行系統開發的?一般來說都不是依據提供他們的價值付錢的,而是依據預期的開發團隊產生的成本,加上一定的比例去推算的。要做的東西越多,預算就需要更高,不當的複雜設計對軟體行業是有誘因的,這本身就是一種利益衝突。這種利益衝突通常導致不良的後果,因為軟體複雜度不易管理,成本很容易失控,所以抓的寬鬆比例通常要高一些,於是就變成高昂的費用了,然後呢,高昂的費用不能只做簡單的少少的東西吧?所以需求被加料了。客戶發現花大錢做出來的東西怎麼只有自己要的少少的功能與價值,太貴了,所以又要求加碼一些功能進去,不要太吃虧。惡性循環,加進去的功能又習慣性的高估成本,又習慣性的加一些無謂的需求來掩飾加料的成本預估,於是就演變成,開發的時候,老是加了許多無必要價值的複雜邏輯進來,軟體架構複雜而不良,維護不易,客戶拿到的軟體又貴品質又差,而開發團隊也被客戶凹得成本超支而老是陷入虧損邊緣,成為看景氣吃飯的爆肝團隊。不良的設計,並沒有讓客戶或開發者任何一邊得到好處,只是徒然製造大量不必要的軟體需求與設計複雜度而已。而軟體專案管理素質的好壞,說穿了也就是控制這種浪費的水準的好壞而已。

這和沒在寫程式,開發軟體的人沒關係嗎?哈,其實這種設計失敗的體制,似乎和所有人都息息相關。簡單的歸納,或許可以說,這是一種整體機制的運作成本,一種整體的效率,用經濟效率來形容,或許比較容易理解。設計不當,或者說自然產生的體制結構不當,其中產生的無效率與浪費,或許遠比我們想像的要來得更大。最近聽公司的老闆談到美國的健保體制與歐巴馬的經濟改革相關的議題,喔,原來在美國,醫療保險是相當麻煩的事情。自由競爭,或許在理論上應該更有經濟效率吧?於是應該鼓勵自由競爭,人人都為了自己的利益全力以赴,整體利益因此得到改善,多贏,嗯,這一點在美國的醫療保險體系而言,似乎不是正確的。病患與醫院雙輸,贏家,只有保險公司而已,就為了這個自由競爭的豐富保險選擇,帶來的浪費,其實遠比好處要高。每個州的法律都有各自的自主性,保險公司又有自己的內部規定與管理辦法,於是每個保險公司都有各自的資訊系統,以及資料格式。每個人要挑選保險公司的時候,要比較費用與提供的保障,這不是件簡單的工作。接著,醫院要接受病患的保險給付申請,一家保險公司有一家保險公司的資料格式與系統整合要做,啊,醫院要應付的是許多保險公司的系統整合,否則,就會限制能吸收的病患的範圍了。這個當然是超花錢的,所以醫院常常無法和所有保險公司合作,光幾個大的就夠傷腦筋了,因此每家醫院的選擇可能也不盡相同,這,也是自由的精神吧。轉過頭來,保哪種險的病患,看病可能還要選醫院,根據他的投保公司而定,而變得更加複雜與不方便。再來,美國各州的法律又不盡相同,造成保險公司必須存有地域性,這讓選擇更加的豐富,難以避免,然後這種豐富的選擇與全面的競爭,結果是讓投保的病患與企業和醫療系統本身都苦哈哈的。醫生,我的保險是這個,那看這個病,要怎樣才能減少自付金額,然後得到較好的醫療品質?這種問題很白目嗎?如果這真的差很多錢,一個專業的醫生是不是應該也要為病患提供這方面的諮詢?而急診室收了一個病患,先醫再說,啊,如果是沒有保險的那種人,要不到錢,摸摸鼻子就算了,要是需要和沒有合作的保險公司請款,那個麻煩可就大條了。當醫生不是在做醫生該做的事情,當這種工作的比例很高的時候,醫療體系的成本自然會爆炸,而工作時間很長很辛苦的醫生,又不可能像台灣年輕醫生一樣用薪水變少工時變長來剝削,於是美國的看病成本自然就很高,沒辦法嘛。然後就是一連串的惡性循環,沒醫療保險看不起醫生,醫療保險又進一步增加病患與醫院的成本,而沒有健全的資訊系統支援的小診所根本無法生存,所以美國醫療體系的自由市場競爭,最後只有醫療保險公司是有效率的自由競爭著的,其他人都很慘。真的很可怕呢。據說歐巴馬的改革也只是從社會正義的角度,要求保險公司不可拒保而已,而這種沒有審慎配套的管制,保險公司的管理成本會更高,其實也只會讓整個系統承擔更高的成本而已。好慘呀,不是嗎?但聽這個體制的運作,傻蛋怎麼就覺得,這實在好像那種設計不良的軟體系統啊?

保險公司維持競爭,避免一個獨大的壟斷,對防止保險公司內部的腐敗,或許是有幫助的,但是這對整個系統的效率,卻未必然是好的。重要的應該是投保病患的權益,以及醫療體系的處理成本,增加這整個系統的運作效率,才是保險公司這個環節的存在價值。然而因為設計錯誤,保險公司的利益與真正重要的兩頭是衝突的,這導致競爭越激烈,整體利益受害越大。而且這種結構是一個局勢,每個環節的人都為了自身的利益做最大的努力,而當結構性利益衝突存在的時候,這個體制會讓問題無法得到改善。就系統設計的角度來看,其實這真的是個很愚蠢的設計失誤。保險公司是該存在競爭,但是,卻不該在沒有附加價值,與造成整體系統更高成本的地方競爭。所有保險支付的表單格式,可以全國統一標準,而不是各個保險公司各行其政。另外保險公司也應該發揮中介單位的價值,以簡化複雜度而非增加複雜度來作為經營的使命,讓投保人與醫療體系之間整合的介面變得簡單易懂,如果能用通包的方式解決法律與醫療支付相關爭議,來當作服務的核心,上下兩端的成本與苦難都是可以大幅降低的。關鍵就是,其實保險服務的設計,其自由競爭並不是那麼重要的事,可以集中規範,各做各的提供豐富的選擇並沒有產生更多價值,只是產生更高成本,讓這個環節把努力用在真正有整體附加價值的服務工作上頭,來設法減少投保民眾的成本與醫療單位管理負擔,這樣的保險公司才有存在的正面專業價值。這當然還是需要競爭,還是會有競爭,只不過競爭的方向不一樣罷了。美國的醫療保險事業,或許是既得利益團體吧,也或許如此,美國的醫療保險的改革因此不可能成功,美國企業就是要承擔很高的醫療保險成本,美國政府就是要承擔沉重的相關債務,原因很可能只是利益衝突的結構性設計不良而已。

美國的醫療保險制度設計很爛,關台灣人啥事?是沒啥關係。然而,相同的情況,在台灣的各行各業,難道不是處處可見嗎?這又何止是在資訊軟體行業而已呢?政府公家單位那種荒謬的內部考核管理機制與公務員作風,或許就是一個更大的不當設計吧?缺乏競爭力的夕陽產業,營運不善的產業,通常也存在這種問題吧?不當設計如果無法調整,再多努力掙扎也是徒然的,這種事情再清楚不過了,不是嗎?大結構性的社會系統設計問題,巨大的利益衝突,或許不是一個小人物可以改變扭轉的,然而,如果連問題都沒看到,只是矇著頭在那拿標語,喊努力奮鬥救台灣,怎麼努力也是原地打轉,弄得士氣全失,全面廢柴化,那可就真的是悲劇囉!

( 不分類不分類 )
回應 推薦文章 列印 加入我的文摘
上一篇 回創作列表 下一篇

引用
引用網址:https://classic-blog.udn.com/article/trackback.jsp?uid=pondin&aid=7240262