形成(chéng)新的驅動力
維護所承受的最大壓力來源于它的目标設定。所謂格局決定結局。何以形成(chéng)更爲有利的格局?
首先軟件維護團隊的技術應當與開(kāi)發(fā)團隊是相通的,爲什麼(me)不能(néng)加以利用?維護過(guò)程中發(fā)現的問題和識别出來的需求,是不是可以導入到開(kāi)發(fā)團隊中去?
相對(duì)于開(kāi)發(fā)團隊/項目團隊,如果維護團隊時間壓力相對(duì)小(取決産品類型),就(jiù)有機會(huì)對(duì)問題進(jìn)行深入的研究,特别是領域相關的知識。深入研究問題以降低副作用本身也是維護團隊最需要做的。這(zhè)一優勢正是可以加以發(fā)揮的特點,就(jiù)是交給維護團隊深入挖掘問題并尋求解決方案的職責。研究成(chéng)果再以文檔或者技術分享的形式移轉到研發(fā)團隊。
另外一點,就(jiù)是由維護團隊參予開(kāi)發(fā)團隊的走查,包括設計、文檔以及代碼,也會(huì)爲團隊的整體能(néng)力提升提供莫大的助力。
維護團隊建設
正因爲維護團隊的約束大,團隊建設的難度也更大。最大難題就(jiù)是人員穩定性的問題。如何選對(duì)人進(jìn)入維護團隊?首先做事(shì)細緻嚴謹,既要甘于平淡,又要技術能(néng)力達标,這(zhè)樣(yàng)的人是可遇不可求的,而且常有變化。治水在疏而不在堵。個人覺得有四個要點:
一.盡量選擇合适的人進(jìn)入維護團隊。雖然難,但還(hái)是要努力去做。一定要清楚什麼(me)是首要條件,什麼(me)是次要條件。比如技術能(néng)力是不是首要條件,取決于團隊目标。
二.建立良好(hǎo)的輪崗制度,好(hǎo)進(jìn)好(hǎo)出,至少可以保證順暢地在維護團隊和開(kāi)發(fā)團隊間輪調。出入的條件則靈活設置。
三.建立技術交接流程,降低因爲人員流動而引發(fā)的風險。
四.結合第二點的輪崗制度,可以吸收新進(jìn)技術人員和實習生到維護團隊,在降低工作負荷的同時,也可以活躍團隊氣氛。
這(zhè)些做法可以使得維護團隊相對(duì)開(kāi)發(fā)團隊或項目有其獨特的優勢,也就(jiù)能(néng)吸引一些人。其關鍵是要維持一種(zhǒng)公平性。亞當斯的公平理論提到一個感受的公平的條件就(jiù)是他是否認可自己的所得與投入的比例。也就(jiù)是說如果以項目團隊的管理方式來帶維護團隊,維護團隊成(chéng)員能(néng)否感受公平呢?
當然這(zhè)些做法還(hái)隻是治标,并不治本。要治本,還(hái)要再探讨團隊目标的設定。
維護團隊中的決策
如果一個維護項目終止,就(jiù)可能(néng)導緻維護團隊的解散。早一點預見到維護項目的前景,會(huì)讓管理者有充分的準備時間。
軟件維護團隊的目标和流程
軟件維護團隊被(bèi)賦予維護已交付産品的職責,主要工作内容是分析修複新發(fā)現的Bug, 以及客戶對(duì)軟件提出一些調整,具體的内容要視維護合約而定。總之或麼(me)是修修補補,要麼(me)就(jiù)是錦上添花。因爲是已交付的産品,其變更是開(kāi)發(fā)團隊開(kāi)發(fā)過(guò)程中所花費的成(chéng)本的2~25倍,這(zhè)在軟件工程領域早有定論(可以參考這(zhè)裡(lǐ)和這(zhè)裡(lǐ))。如果因爲變更而引入了新的Bug,則表示要完成(chéng)至少兩(liǎng)次變更,成(chéng)本則是開(kāi)發(fā)過(guò)程修複的4~50倍。爲了保證變更的質量,降低風險和不一緻性成(chéng)本,軟件維護團隊的流程通常較開(kāi)發(fā)團隊要嚴格地多,管理上也要細緻許多。