jim yeh on 十二月 21st, 2006

最近同事分享參與公司其它大型軟體專案的開發經驗,她認為軟體開發過程中,專案領導者其實並不擅長管理工作:雖然所開發的系統很單純,但每次都是整個專案重新開始;就算想把之前做過的程式碼略做修改,結果卻牽一髮而動全身幾乎整個系統都會被翻修到,要做到re-use根本就是不可能的任務。同事認為管理階層應該考量如何把系統模組化,才能增加開發的效率與生產力。

同事所提的問題其實我們都很清楚,公司很多大型軟體專案都有同樣的問題,也帶來慘痛的經驗與教訓。問題不在技術上,因為大專案能夠得到公司最多的資源,所用的技術是最新的,人員也是最優秀的,而是在開發過程中沒有發揮團隊綜效,大家都很努力做了很多事,但整合時卻問題叢生,似乎永遠有解決不完的問題。

軟體專案開發團隊具有多樣化特性(部門多樣化、任務多樣化及知識多樣化)。一般人以為利用任務分工可以讓團隊以比較有生產力的方式開發軟體,但分工愈細也就意味著工作相依性變高,整合也就變得更困難。一旦整合變成專案管理的瓶頸,再如何分工都沒有辦法解決困境,所以這是分工的迷思。缺少整合的分工並無法發揮團隊綜效!既然整合不可能省略,與其事後整合還不如及早整合,減少整合的難度與複雜度,這才是軟體專案管理的致勝關鍵。

所以,要以整體專案價值來看任務,而非以片面的作業流程來看工作,重新思考團隊的合作方式,使團隊績效得到顯著的提昇。然而,分工的關鍵並不在人多好辦事,而是要防止人多手雜,所以開發團隊應先建立起一些共享件,這些共享件包括程序元件人員

記得我在《軟體開發能力的自我組織》中一文曾提過的:「專案實施Inspection時,成員的設計能力及software asset變得與日俱增,而且在團隊溝通上助益也很大」,就是一種共用件的有效運用,Inspection本身就是一種增進軟體品質的一種共享程序;同時透過團隊相互觀摩的良性循環,讓有經驗的開發人員分享設計與開發技巧,而達到共享人員的目的;最終的目的其實是要慢慢地形成如William所說的軟體資產(software asset)的目標,這不正是共享元件嗎?

除了Inspection以外,再搭配團隊持續溝通與整合,實施daily build、測試驅動開發(test driven devlopement)等實務。團隊績效馬上會發現得到一加一大於二的綜效,以我目前所參與的專案執行的成果來看,這是真實而不虛的呀!



     

5 Responses to “軟體開發的團隊綜效”

  1. [...] 想辦法讓對方容易做到,才能真正地發揮團隊綜效,所以對系統面做這樣的關照,開發者就可以更專注於業務邏輯,不受系統面的問題所干擾,而系統的垂直品質也不會打折扣,因為我們可以找對系統面熟悉的技術人員來實作它們,這就是《易經》所說的「本乎天者親上,本乎地者親下」的道理,讓萬物各安其位呀。[...]

  2. [...] 針對喲哪桑學長的觀點:「軟體開發是不是也能去掉中間人,讓開發人員與顧客、用戶之間有著不同以往的關係。兩方不是互相仇視,顧客能獲得對他們有價值的軟體,而開發人員也能因為自己的作品而獲得應有的榮譽。」,我認同應該讓開發人員與顧客、用戶之間有著不同的關係,然而我卻懷疑「去中間化」真的能解決問題。節省了中間人的溝通障礙,但卻會造成開發過程的機會成本的損失,別忘了團隊綜效的產生是要有效整合不同角色,而不是著重個別突出的表現;而且開發人員和顧客溝通通常比跟公司內部的其它需求提供者溝通還困難,因為不同組織,彼此的目標、想法及價值觀也會有很大的差異,更不用說開發人員與使用者身處不同世界的因素了。 [...]

  3. [...] 沒有錯,專案經理需要靠軟體開發的經驗知識來規劃時程,但不要忘了專案規劃更需要 team buy-in。規劃缺少團隊成員的參與與互動,你的專案計劃就會不夠完整或有所遺漏。團隊的目的本來就是要整合綜效,所以專案經理收集團隊成員所提供的資訊,整合成專案計劃[1],才是有效率的專案規劃過程。什麼事都靠自己親力親為的專案經理,看起來,雖然專案沒有事可以難倒他,但卻浪費了大量的機會成本[2]。 [...]

  4. [...] 領導軟體人才不是不管理,而是管理正確的事情,讓每個軟體人才都能發揮比較優勢,讓整個軟體開發組織產生綜效。管理軟體人才與其告訴他們具體方案步驟,不如教導、栽培、矯正、和指引,促使他們去思考問題,找出正確的方向。《授權》這本書提到「3F 管理」:可以事前提供前饋(feedfordward)來指引方向、事後提供回饋(feedback)來矯正錯誤與缺失、並要完成跟催(follow through)以確認工作成果。其實不管是不是組成 Agile/Scrum team 或是應用任何軟體開發的方法論,領導軟體人才使他們有能力都是重要的事,但並不意味著沒有管理,而是管理要更有用。       Posted by jim yeh 問題解決, 專案團隊, 思考, 生活感觸, 組織, 職場, 開發流程, 領導 Subscribe to RSS feed [...]

  5. [...] 同人從這邊聯想到 Agile 重視的是關係,一種整體大於總和的關係,才能讓團隊產生一加一大於二的綜效。如同「全像圖組織」把整體織入系統的所有部分一樣,團隊績效不是仰賴成員單一個體的出色表現或是管理者的權力,而是成員在簡單的互動過程之中,相互刺激與回饋而產生出有脈絡的節奏。團隊的自我組織,乃是開發者的集體智慧的創造呀。       Posted by jim yeh 利害關係人, 問題解決, 專案團隊, 專案規劃, 思考, 溝通, 生活感觸, 組織, 職場, 開發流程, 閱讀, 領導 Subscribe to RSS feed [...]

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="">