jim yeh on 七月 11th, 2011

在今年過農曆年前,看到以前閱讀《溫伯格的軟體管理學(第二卷):第一級評量》所做的筆記,引發同人想要寫一篇文章探討軟體開發團隊的官僚特性。但由於工作轉換及其它寫作計劃的原因,直到現在才有時間分享我對軟體開發團隊的官僚特性之心得。

溫伯格說官僚是每件事都在掌控中,但是一切全都失控了。他提到:

當專案規模變得相當龐大,通常就會因為專案成員對整體狀況缺乏掌控,不了解本身工作與整個專案的相關性,而導致官僚作風出現。

在這種情況下,大家一定會在不知不覺中做出危害品質的事,甚至會阻礙到專案的完成。這就是官僚-人們不明究裏地在做事。

要評量軟體開發組織的「官僚特性」(bureaucratic nature),溫伯格認為可以藉由有多少事情在不明究裏的情況下完成。他指出在不明究裏的情況下完成事項,占完成事項的百分比就是評量官僚的一種方式。

想要減少團隊的官僚特性,管理者應該要讓團隊成員充分了解專案計劃。溫伯格提醒管理者有計劃還是不夠,應該要讓參與專案的團隊成員了解計劃,並且透過傳達與溝通讓每一個人都了解計劃。他強調只有高層了解的秘密計劃(而且就連高層自己也不太清楚這些計劃),勢必會在大型專案中引發官僚之災。

溫伯格的觀點解釋了在軟體開發團隊常見的官僚特性。在軟體開發過程中,人們不知不覺犯下危害軟體的品質或阻礙專案的進行的錯誤,通常並不是因為計劃不夠完整,而是因為團隊成員缺乏對專案計劃的整體了解。專案成員從專案計劃知道他的任務,但卻不知道他的任務和整體專案的關係。

換句話說,團隊成員知道他應該做什麼、和如何做,可是卻不知道為什麼要這樣做,工作只是由上面丟下來交辦,他只是奉命行事而已。比如說:

  • 程式開發者按照系統設計規格開發程式,可是卻不知道為什麼系統要這樣設計。
  • 系統設計者按照系統分析規格設計系統,可是卻不知道為什麼系統要這樣分析。
  • 系統分析者按照客戶提出的需求來分析系統,可是卻不知道為什麼系統會有這個需求。
  • 管理者覺得開發者沒有把事情做對,可是卻總是不早點告訴開發者什麼叫做把事情做對。

為什麼團隊成員在他們不知道為什麼的時候,不先溝通把事情的來龍去脈弄清楚才開始執行任務呢?可能是團隊成員的能力只能知其然,而不能知其所以然;也有可能是因為團隊成員的態度並不想多花心力去了解事情的根源。同人認為不管是成員能力或態度的因素,管理者都應該要為開發團隊的官僚特性負起最大的責任。

因為軟體開發團隊的官僚特性本質上是品質文化的問題,基本上和管理者的態度及核心價值觀有關。如果程式的開發者不能了解程式和設計、需求、乃至於其所要解決的問題,就很難確定他能夠在正確的問題方向上思考,以發展在正確問題下的有效解決方案。也許他做不到的原因是因為尚未培養面對問題獨立思考的技能和習慣,但如果管理者不能在團隊中建立共享語意庫或增進共享意義暢通的管道,要求開發者要有能力知其所以然只是緣木求魚罷了。

從另一種角度來看,團隊成員在態度上不想多花心力去了解事情的根源之真相,很可能是管理者在態度上並沒有鼔勵團隊成員多多參與討論、以及提供成員表達個人意見的管道。即使管理者在言語上聲稱他們願意接受不同的建言,但實際上面對團隊成員提出不同意見的質疑,卻是表現出不能接納建言的行為。慢慢地,團隊當中自然愈來愈沒有人願意表達他們的異議,成員傾向聽命辦事來規避把事情攬在自己身上,於是讓這樣的心態更加深團隊的官僚特性。

當然,管理者因為態度而加深開發團隊的官僚特性,最後必然會「個人造業個人擔」。最後團隊有想法、有抱負的「年輕人」會愈來愈少,只知道制度和規範而忽略思考創新的「老人」愈來愈多;這裡指的年輕人和老人不是基於年齡,而是基於成員面對問題的心態。當團隊的大部份成員都已經心態老化,思考僵化是軟體品質不良的根本原因,不論管理者加深團隊的官僚特性是有意或無意,他都必須為此承擔相對的代價。

「年輕人」比「老人」對事情的「理所當然」更不以為然,因此前者可以透過思考和創意來創造更多的可能性,這正是後者限於官僚特性所看不到的世界。

同人記得聽過某個長官曾經對下屬提的意見表示:「不要只提出問題,要有 solution!」不過接下來聽到另人激賞的反駁:「如果要有 solution 才​能提問題,那誰敢提呀?」表現對官僚特性的反抗,當然反抗的結束是最後反駁者終於離開那位長官的團隊。

同人不知道那位長官心中到底有沒有意識到「如果這麼快就可以有 solution,那根本就不成問題」的真相,但我知道他的管理風格無法適應會對「理所當然」質疑的思考者,他只能「管理」聽命辦事的工作者,也許只有加深團隊的官僚特性才能減輕他對管理彈性不足所反應的焦慮吧!



     

4 Responses to “軟體開發團隊的官僚特性”

  1. [...] 我本來覺得劉益宏說得有道理,好像馬總統不先把政策應該如何做講清楚,容易讓人做事不明究裡而做錯事,而造就組織的官僚特性。不過同人後來想到我最近在《賦權》看到的觀念之後,卻發現劉益宏的說法不見得是正確的。證所稅的政策引發人們的不滿,如果問題真的是從總統的幕僚、行政院長、財政部長,都沒有人知道馬總統對政策的想法,再加上在溝通上的障礙,使得官員需要揣摩上意才能推行政策,那無疑是總統領導能力的問題。也就是因為「官僚」而讓每件事都在掌控中,但是一切全都失控了。當政府機構存在官僚特性,政府官員就會不明究理地做事。 [...]

  2. [...] 這是因為軟體開發是解決問題的過程,適應性比穩定性或效率更重要。不能適應解決問題所需情境的穩定或效率,只是徒增浪費-亦即不精實、與品質不良-亦即不敏捷,而無法解決問題。故軟體開發團隊應該採用效法雅典娜的精神,致力充實精良的技藝來完成任務,講求整體目標的達成,而非只是盡義務完成個體角色的責任。因為這樣很容易讓人因為不明究理而犯錯,強調阿波羅習慣的做事常規,容易使團隊僵化而形成官僚特性。 [...]

  3. [...] 以張文隆在《賦權》這本書所提到的比喻來說,賦權是賦予團隊力量的一股能量流動,但這股能量為何會停滯而不再流動,以致於團隊因官僚特性顯得僵化,使創意枯竭與乾涸而喪失解決問題的洞見?同人觀察這正是團隊之間喪失信賴,不能信任彼此的合作關係,而只相信英雄主義。 [...]

  4. [...] 因此,方法本身本來就沒有不適合的問題,關鍵反而是人在不諳情勢的情況下採行對事情沒有幫助的舉措,當人們沒有意識到它,在敏捷之前就不大可能事先前饋、然後以回饋調整與演進過程、再事後追踪問題是否得到改善,於是錯失因應不同條件搭配而調整的機會、慢慢地,理論和實務的落差變得愈來愈大,成員沒辦法在實際的工作上勤訓苦練,來讓使用方法的技藝能達到純熟與提昇能力,於是當面對更複雜的問題時,不能有效溝通只有做事不明究裡而招致官僚釀災。 [...]

Leave a Reply

You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="">