以角色為基礎(chǔ)的軟件開發(fā)團(tuán)隊建設(shè)

0 評論 2753 瀏覽 2 收藏 23 分鐘

軟件開發(fā)管理的重要任務(wù)之一就是團(tuán)隊的組建。本文提出了一種以角色為基礎(chǔ)的團(tuán)隊建設(shè)方法,以有效提高團(tuán)隊建設(shè)能力。在軟件開發(fā)過程中,對開發(fā)和管理活動進(jìn)行分解會產(chǎn)生一系列的子活動,對子活動及其相關(guān)知識的抽象產(chǎn)生角色——問題角色;對人的分析和抽象也產(chǎn)生角色——人員角色。

在軟件開發(fā)過程中,對開發(fā)和管理活動進(jìn)行分解會產(chǎn)生一系列的子活動,對子活動及其相關(guān)知識的抽象產(chǎn)生角色——問題角色;對人的分析和抽象也產(chǎn)生角色——人員角色。

問題角色與人員角色的有效關(guān)聯(lián)也就是團(tuán)隊的組建,問題角色與人員角色的再定義和改進(jìn)也就是團(tuán)隊的建設(shè)。以角色為基礎(chǔ)來進(jìn)行軟件開發(fā)團(tuán)隊的組織,能夠比較全面地解決項目管理問題,而且團(tuán)隊建設(shè)很容易達(dá)到可持續(xù)改進(jìn)的目的。

角色抽象作為一種載體,可以很好地進(jìn)行軟件工程知識體系和企業(yè)知識地圖的組織,滿足企業(yè)知識體系持續(xù)改進(jìn)的需要,因此角色團(tuán)隊組建和建設(shè)也可以作為軟件工程實(shí)施方法之一。

軟件開發(fā)項目立項時,重要工作之一就是開發(fā)團(tuán)隊的組建;在軟件工程實(shí)施(把軟件工程研究結(jié)果產(chǎn)生的標(biāo)準(zhǔn)或規(guī)范如ISO、RUP、MSF、XP具體應(yīng)用到軟件開發(fā)活動的程稱為軟件工程實(shí)施)的過程中,要解決的問題之一就是關(guān)于團(tuán)隊組建規(guī)則的定義;從企業(yè)發(fā)展的角度來看,軟件開發(fā)團(tuán)隊建設(shè)是企業(yè)建設(shè)的重要任務(wù)。總之,軟件開發(fā)團(tuán)隊的組建和建設(shè)是企業(yè)經(jīng)營和發(fā)展的重要內(nèi)容之一。

幾乎所有的管理知識體系或規(guī)范都涉及到個體和團(tuán)隊建設(shè)問題,比如組織行為學(xué)[Stephen P.Robbins,1997]對個體和團(tuán)隊的行為進(jìn)行了研究;項目管理[PMI,2000]中的計劃、人力資源管理、項目集成管理、項目溝通管理等多個項目管理領(lǐng)域都涉及到團(tuán)隊建設(shè)和管理;在軟件能力成熟度模型(CMM)[SEI,2000]的發(fā)展過程中,從個體軟件過程和團(tuán)隊軟件過程來研究軟件的開發(fā)和管理。對個體和團(tuán)隊管理的研究是管理學(xué)的核心任務(wù),涉及到的知識和學(xué)科紛繁、復(fù)雜。

然而,在管理的具體實(shí)施過程中,客觀上管理環(huán)境的不同及主觀上管理者的偏好,一般會在理論或規(guī)范基礎(chǔ)上進(jìn)行簡化、刪減、方向取向、分類歸納等工作,最后表現(xiàn)為各自獨(dú)立的制度、規(guī)則、知識、評估方法、認(rèn)證等多種獨(dú)立體系,失去了其內(nèi)在的聯(lián)系,管理工作仍然復(fù)雜,而且不利于改進(jìn)。

瑞理統(tǒng)一過程(RUP)[Rational,2001]通過對工作流分解的方式進(jìn)行了軟件開發(fā)過程及活動的分解和定義,并以角色為中心來進(jìn)行知識、活動、規(guī)則、工具等的關(guān)聯(lián)組織,從而把軟件開發(fā)活動一體化、層次化、結(jié)構(gòu)化,并保持其內(nèi)在的有機(jī)聯(lián)系,為個體和團(tuán)隊軟件開發(fā)活動提供了很好的指導(dǎo)。

本文以“角色”這一概念為基礎(chǔ),提出了“以角色為基礎(chǔ)的軟件開發(fā)團(tuán)隊建設(shè)”的觀點(diǎn),闡述了其原理和方法,并對其優(yōu)、缺點(diǎn)進(jìn)行了分析,簡要說明了該方法對“軟件工程過程改進(jìn)”的支持。

為簡化敘述,文中“以角色為基礎(chǔ)的軟件開發(fā)團(tuán)隊”簡稱為“角色團(tuán)隊”,對應(yīng)地,其它一般團(tuán)隊簡稱為“一般團(tuán)隊”;許多地方把文檔、資源、信息、規(guī)則等統(tǒng)稱為“知識體系”。

一、角色的含義

根據(jù)RUP[Rational,2001]的定義(如 “圖 1 RUP中角色的含義”所示),角色的含義是:角色是抽象的職責(zé)定義,它定義的是所執(zhí)行的一組活動和所擁有的一組資源。角色通常由一個人或作為團(tuán)隊相互協(xié)作的多個人來實(shí)現(xiàn)。

圖 1 RUP中角色的含義

角色定義是一種管理上的要求,是“以活動為基礎(chǔ)的管理”的表現(xiàn)形式,角色定義的依據(jù)是:問題、人、管理都可以分析為一系列活動的組合,這些活動有輸入、輸出,需要一定的環(huán)境和工具,需要活動承擔(dān)者具有一定的能力,所有這些要素都是可以定義的,其聯(lián)系的核心可以稱為“角色”;管理本身的任務(wù)包括對問題域的角色分解、對人的角色分解、問題角色與人員角色的配對等。

因此,我們可以定義通用的角色模型如“圖 2 通用角色模型”所示。

圖 2 通用角色模型

通用角色模型的含義:

  • 角色是活動的承擔(dān)者,角色與所需要的知識、工具、環(huán)境、輸入、輸出相關(guān),是分析和定義結(jié)果的抽象,是一個容器;
  • 角色是構(gòu)成知識體系的基本粒子,角色粒度大小和層次構(gòu)成根據(jù)企業(yè)對角色團(tuán)隊掌握的成熟度靈活控制。

問題角色容納了對問題域的認(rèn)識和分析結(jié)果,人員角色滿足預(yù)定義的能力和人格要求,并在掌握了相關(guān)知識和工具后獲得認(rèn)證;問題角色和人員角色關(guān)聯(lián)后,人員角色利用知識、工具、輸入文檔等進(jìn)行創(chuàng)造性活動,解決問題角色的需求;關(guān)聯(lián)活動產(chǎn)生的結(jié)果經(jīng)過總結(jié)、分析,進(jìn)行經(jīng)驗總結(jié)反饋,從而可以改進(jìn)問題角色和人員角色的定義和認(rèn)證,為組織進(jìn)步提供通道。

二、角色團(tuán)隊組建原理

在軟件開發(fā)實(shí)踐中涉及到的問題、人、管理都具有一個共同特點(diǎn):復(fù)雜,人類解決復(fù)雜問題的方法離不開“分解”,分解結(jié)果被定義為一系列的“信息點(diǎn)”,由于這些“信息點(diǎn)”的粒度、層次、構(gòu)成還是太復(fù)雜,因此又被進(jìn)行分類、歸納、總結(jié)成為一系列的“知識體系”,這些“知識體系”各自有重點(diǎn),同時又具有一定的相關(guān)性,有的發(fā)展為“學(xué)科”,有的發(fā)展為“規(guī)范”,知識體系在具體應(yīng)用時又以知識、規(guī)則、制度、工具等各種方式來具體體現(xiàn)。

在這些分析、綜合、歸納、合并的過程中,關(guān)聯(lián)性并沒有消失,但是變得難以掌握和理解——在學(xué)習(xí)的過程中很少有機(jī)會同時應(yīng)用多種知識及其關(guān)聯(lián)性,而在知識的具體應(yīng)用過程中,由于其龐大、復(fù)雜,只有少數(shù)專家能夠充分理解、綜合應(yīng)用,大部分人難見全貌、只見一斑,能夠?qū)W習(xí)獨(dú)立的學(xué)科,但是很難根據(jù)相關(guān)性進(jìn)行綜合應(yīng)用。于是,又產(chǎn)生了一個新的問題:良好的知識體系得不到良好的應(yīng)用,這就是常見的“理論與實(shí)踐脫節(jié)”問題。

“角色”是一個抽象的概念,通過角色,能夠有機(jī)地把知識體系以及實(shí)踐結(jié)果聯(lián)系在一起,而且是恰到好處——只有需要的知識體系和實(shí)踐結(jié)果才和對應(yīng)的角色進(jìn)行關(guān)聯(lián),通過角色粒度的控制甚至可以達(dá)到這樣一種效果:只要符合了角色定義要求,那么就能夠順利完成角色活動。另一方面,角色概念與“社會化分工”原理不謀而合,主要差別僅僅是粒度、層次上的差別而已。

人員角色并不代表個人,而是說明個人在某一具體業(yè)務(wù)活動中應(yīng)該如何表現(xiàn)以及他們應(yīng)該承擔(dān)的責(zé)任。角色有一組互相聯(lián)系的活動需要執(zhí)行,這些活動密切相關(guān),在功能上互相補(bǔ)充,所以最好由同一個人來執(zhí)行。活動與知識體系密切相關(guān):知識體系提供活動的輸入和輸出,并提供活動之間的通信機(jī)制。項目團(tuán)隊成員在履行角色職能的過程中,一個人可以擔(dān)任許多不同的角色,一個角色也可以由多個人來承擔(dān)。

三、角色團(tuán)隊組建方法

根據(jù)“角色團(tuán)隊組建原理”,角色團(tuán)隊組建就是面向問題、人進(jìn)行角色的定義和關(guān)聯(lián),把相關(guān)知識有機(jī)地分布到角色上去,在具體團(tuán)隊組建時進(jìn)行合理關(guān)聯(lián)配對:讓合適的人在合適的時間利用合適的工具完成合適的任務(wù)。

1.?從問題分析角色需求

根據(jù)相關(guān)知識體系、過去的定義、經(jīng)驗、角色定義原則,把解決問題的過程分解為子問題及子活動,控制子活動的粒度甚至粒度層次,并就每個子活動進(jìn)行關(guān)聯(lián)分析、環(huán)境分析、知識分析,最后定義為角色,稱為問題解決角色,如“圖 3 從問題分析角色需求”所示。

圖 3 從問題分析角色需求

?2. 從人員分析角色認(rèn)可

根據(jù)企業(yè)發(fā)展要求、角色定義原則、人的能力、興趣等要素,對人進(jìn)行分析和認(rèn)可,控制知識體系的粒度、相關(guān)性等,最后定義為角色,稱為人員認(rèn)可角色,如“圖 4 從人員分析角色認(rèn)可”所示。

圖 4 從人員分析角色認(rèn)可

四、角色團(tuán)隊組建

在項目團(tuán)隊組建時,根據(jù)對問題域的分析結(jié)果,在成員角色表中選取對應(yīng)的角色去承擔(dān)問題角色任務(wù),并從項目管理的角度來進(jìn)行工作時間分配、費(fèi)用預(yù)算等。如果企業(yè)內(nèi)部沒有所需要的角色,則可以考慮尋求外部資源。如“圖 5 以角色為基礎(chǔ)的團(tuán)隊組建”所示。

圖 5 以角色為基礎(chǔ)的團(tuán)隊組建

五、角色團(tuán)隊組建與建設(shè)過程

角色團(tuán)隊組建是發(fā)生在項目立項時的工作,而角色團(tuán)隊建設(shè)是在企業(yè)經(jīng)營的整個生命周期內(nèi)都要進(jìn)行的,建設(shè)結(jié)果是角色團(tuán)隊組建的基礎(chǔ)。建設(shè)是持續(xù)性的,組建是臨時性的,建設(shè)為組建提供基礎(chǔ),組建后的項目團(tuán)隊的實(shí)施結(jié)果為建設(shè)提供依據(jù),整個過程如“圖 6 角色團(tuán)隊組建與建設(shè)過程”所示。

圖 6 角色團(tuán)隊組建與建設(shè)過程

角色團(tuán)隊建設(shè)要完成的工作有:

  • 通用問題域角色定義:定義企業(yè)開發(fā)領(lǐng)域的通用問題,根據(jù)對通用問題的解決“從問題分析角色”工作,定義問題域角色體系;
  • 通用人員角色定義:根據(jù)“問題域角色體系”,對人進(jìn)行分析、定義和認(rèn)證,建立關(guān)于“人員角色體系”;對某些超出問題域角色體系的人的角色也進(jìn)行定義,選擇標(biāo)準(zhǔn)可以根據(jù)企業(yè)的發(fā)展方向進(jìn)行選擇;
  • 問題域角色與人員角色映射規(guī)則:為了適應(yīng)企業(yè)業(yè)務(wù)的變化和發(fā)展、滿足管理要求,問題域角色與人員角色不一定要一一對應(yīng),甚至粒度、層次也可以不一樣,所以要建立映射規(guī)則為以后的工作安排提供指導(dǎo)。

角色團(tuán)隊組建時要完成的工作有:

  • 具體問題域角色定義:以“問題域角色體系”為基礎(chǔ),分析項目所面臨的問題,定義“項目角色體系”;
  • 具體人員角色定義:對照“項目角色體系”和“人員角色體系”,根據(jù)映射規(guī)則,進(jìn)行配合、關(guān)聯(lián)、調(diào)整,完成項目團(tuán)隊的組建和任務(wù)計劃,進(jìn)行項目實(shí)施;
  • 角色體系改進(jìn):在項目實(shí)施的任何時刻,如果有超出“問題域角色體系”的角色產(chǎn)生,可以根據(jù)需要補(bǔ)充到“問題域角色體系”中,對人員角色體系的變化也可以采取同樣方法處理。

在具體的角色團(tuán)隊建設(shè)過程中,實(shí)際上可以保留多個層次的角色體系,主要原則就是適應(yīng)企業(yè)的經(jīng)營要求和發(fā)展要求,其它相關(guān)內(nèi)容如取舍、粒度控制、層次控制、結(jié)構(gòu)控制、管理、認(rèn)證等原則和方法本文不再贅述,部分內(nèi)容可參考RUP。

  • 角色團(tuán)隊分析
  • 一般團(tuán)隊面臨的問題和原因

在過去的實(shí)際管理過程中,一般團(tuán)隊存在很多問題,包括:

  • 結(jié)構(gòu)簡單:過于簡單化,“開發(fā)團(tuán)隊”等于“工程師集合”,其相關(guān)性控制、團(tuán)隊配合等全部依賴于領(lǐng)導(dǎo)者的直覺或感覺;盡管不會完全錯誤,但是不夠精細(xì),屬于“粗放”管理范疇;
  • 管理困難:缺乏層次級別,幾乎都處于同一個層次上,令難行,禁難止;
  • 職責(zé)不清:針對工作內(nèi)容,一方面缺乏規(guī)范,另一方面范圍模糊,因此導(dǎo)致職責(zé)不清楚,工作目標(biāo)模糊;
  • 資源浪費(fèi):由于組織和管理不力,軟件開發(fā)效率低、成功率低,并期望通過提高個體素質(zhì)來提高效率或成功率,片面追求文憑,本科不行用碩士,碩士不行用博士,等等,導(dǎo)致資源浪費(fèi),經(jīng)營成本高;
  • 發(fā)展緩慢:團(tuán)隊的進(jìn)步?jīng)]有明確的計劃和方向,團(tuán)隊的進(jìn)步依賴于個體的隨意發(fā)展,因此團(tuán)隊的建設(shè)變成了艱難地培養(yǎng)“全才”,很難培養(yǎng)“專才”;企業(yè)發(fā)展不明確,員工發(fā)展也不明確。

導(dǎo)致上述問題存在的根本原因是什么?我們認(rèn)為,主要的原因有:

  • 對問題的認(rèn)識不充分:沒有對問題域進(jìn)行定義、分析、內(nèi)容組織,或者比較薄弱,僅僅從比較高層的軟件開發(fā)的“需求、分析、設(shè)計、開發(fā)”出發(fā)來進(jìn)行開發(fā)團(tuán)隊的組織,缺乏“具體問題具體分析環(huán)節(jié)”;
  • 對人的認(rèn)識不充分:對個體的認(rèn)識依賴于管理者的直覺、感覺和經(jīng)驗,個體的發(fā)展依賴于自己的興趣,把工作當(dāng)成任務(wù),過多依賴于文憑評價;
  • 對管理的認(rèn)識不充分:過分依賴管理者的直覺和感覺,安排任務(wù)時“大體上”知道存在的問題、什么人能解決什么問題,但是沒有進(jìn)行問題的分化、定義、具體化等細(xì)節(jié)工作,比較“粗放”;管理過于依賴于權(quán)力;
  • 過于平面化和大粒度:從問題認(rèn)識、人的認(rèn)識、管理認(rèn)識三個方面都缺乏層次化、模塊化和結(jié)構(gòu)化,分工粒度過大,忽略問題的多樣性、人的多樣性、管理的多樣性,決策一刀切;

最基本的原因是全面性問題,不夠全面導(dǎo)致管理不到位:用不合適的方法去解決模糊的問題,如“圖 7 一般團(tuán)隊的問題域覆蓋程度”所示,應(yīng)該解決的問題沒有解決,解決問題的人又不一定是合適的。

圖 7 一般團(tuán)隊的問題域覆蓋程度

六、角色團(tuán)隊對問題的解決

角色團(tuán)隊通過“問題角色體系”的建立來促進(jìn)對問題的分析,很大程度上解決了一般團(tuán)隊存在的“不夠全面”問題,改善了對問題域的覆蓋程度,如圖“圖 8 角色團(tuán)隊提高問題域覆蓋程度”所示。通過“人員角色體系”的建立來進(jìn)行培訓(xùn)、認(rèn)證、甄別,促進(jìn)團(tuán)隊建設(shè),并為薪酬體系、績效考核提供依據(jù)。角色團(tuán)隊組建后,管理定位更加容易:管理者有事可做,有章可循;被管理者明確管理定位和職責(zé),依照角色關(guān)聯(lián)的合作更加順暢。

圖 8 角色團(tuán)隊提高問題域覆蓋程度

更重要的是,角色團(tuán)隊的組建和建設(shè)過程,就是企業(yè)知識體系的建設(shè)過程,角色體系也就是知識體系,角色體系的改進(jìn)就是知識體系的挖掘和進(jìn)步,是學(xué)習(xí)性組織的良好選擇。

七、角色團(tuán)隊的缺點(diǎn)

角色團(tuán)隊的建立和組建,其本身就是一項復(fù)雜的管理活動,需要有力的資源支持;角色團(tuán)隊的建設(shè)是一個持續(xù)性發(fā)展的過程,不是一蹴而就的,因此需要企業(yè)具有持續(xù)建設(shè)的需要和能力,也就不適合那些業(yè)務(wù)方向頻繁變化、業(yè)務(wù)領(lǐng)域不明確的企業(yè)。

八、角色團(tuán)隊原理在軟件工程實(shí)施中的作用

在目前軟件工程實(shí)施中,“持續(xù)改進(jìn)”無疑是最重要的思想;首先,改進(jìn)就必須要有一個載體,這個載體必然是企業(yè)知識體系,因此也可以采用“角色團(tuán)隊”作為這一載體;其次,改進(jìn)必須是持續(xù)的,也就意味著過去定義的知識體系能夠在一定程度上重用。角色團(tuán)隊通過“角色”這一概念來進(jìn)行知識體系的分解,通過粒度和層次的控制很容易達(dá)到高程度重用的目的,因此,角色團(tuán)隊原理可以在軟件工程實(shí)施中作為實(shí)施載體來使用。

以角色團(tuán)隊為基礎(chǔ)的企業(yè)知識體系還可以很方便地容納軟件工程規(guī)范,因而對軟件工程的實(shí)施具有很高的支持性;通過“人員角色體系”的建立,可以達(dá)到對個體的針對性培訓(xùn)和學(xué)習(xí)引導(dǎo),對團(tuán)隊的進(jìn)步具有很好的引導(dǎo)作用。

由于角色粒度、層次控制的靈活性,角色團(tuán)隊的組建和建設(shè)可以從任何時候、任何規(guī)模開始逐步建設(shè),非常靈活,滿足企業(yè)逐步成熟的要求。

小結(jié)

軟件開發(fā)是一項知識性活動、創(chuàng)造性活動,軟件技術(shù)日新月異,軟件應(yīng)用領(lǐng)域復(fù)雜多變,所有的這些原因造成了軟件開發(fā)管理的困難,導(dǎo)致了軟件危機(jī)的產(chǎn)生。軟件管理問題的解決,離不開對知識體系的依賴和對變化的適應(yīng)。角色團(tuán)隊原理作為一個知識體系的載體以及對持續(xù)改進(jìn)的充分支持,可以作為軟件工程實(shí)施方法之一。

參考資料

[1]? Stephen P.Robbins,《組織行為學(xué)》(第七版),1997,中國人民大學(xué)出版社;

[2]? PMI,《A Guide to The Project Management Body of Knowledge》,2000;

[3] ?SEI,《CMMI for Systems Engineering/ Software Engineering》,2000;

[4]? Rational,《Rational Unified Process?》,2000。

本文由 @我觀世界觀 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理,未經(jīng)許可,禁止轉(zhuǎn)載

題圖來自 Unsplash,基于 CC0 協(xié)議

該文觀點(diǎn)僅代表作者本人,人人都是產(chǎn)品經(jīng)理平臺僅提供信息存儲空間服務(wù)。

更多精彩內(nèi)容,請關(guān)注人人都是產(chǎn)品經(jīng)理微信公眾號或下載App
評論
評論請登錄
  1. 目前還沒評論,等你發(fā)揮!