軟體從業人員如何激發敏捷團隊?

turingbooks發表於2012-06-11

enter image description here

集中辦公

怎樣才能極大地提高團隊的生產效率呢?答案是讓每個人都坐在一起。

集中辦公的團隊效率就是要高一些。問題不僅可以很快地在現場得到解決,而且彼此間的交流也會更加順暢,並能很快建立起信任。集中辦公的小型團隊競爭力是非常強的。

那麼,既然集中辦公的團隊這麼好,是否意味著分散式團隊就無法運作敏捷專案了呢?絕對不是。

對於很多人來說,分散式辦公正在成為一種生活方式。雖然相比緊湊型集中辦公的團隊,分散式團隊總會有些劣勢,但仍可以用很多辦法來加以彌補。

比如,在專案的初始階段,為了將所有人都召集在一起,你要預留一些時間。哪怕是隻有幾天也好(如果能延長到幾周就更好了),大家在這段時間內互相認識一下、開個玩笑、一起吃個飯,這非常有助於你把形形色色的人聚合在一起,打造成一個緊湊高效的團隊。因此,在開始階段,就要將所有人都聚在一起。

之後,即使沒有集中辦公,你也可以使用書本中提及的所有溝通工具和技巧(Skype、視訊會議和社交工具),使你的分散式團隊看起來像一個集中辦公的團隊。

專職客戶

當今仍有很多團隊編寫的軟體沒有專職客戶。這很可悲,甚至可以說是一種犯罪。

如果產品的使用者沒有納入到程式中,怎麼可能期望團隊能夠建設優秀而具有創造性的產品呢?

專職客戶會在演示版中現身、解答問題、給出反饋,併為團隊建設優秀軟體提供必要指導和洞見。他們是團隊的核心成員,是交付過程中的全面合作伙伴。

enter image description here

正是由於這個原因,諸如極限程式設計和Scrum這樣的敏捷方法都儘量實現客戶的專職化,比如採用現場客戶,或像Scrum那樣設立專門的產品負責人。這是一項很重要的工作。稍後我們會對這些角色加以詳述。

也正因為這樣,任何成功的敏捷專案都需要專職客戶。

enter image description here

現在你可能心存疑惑:“沒有專職客戶,應當怎麼做?” 那是因為可能他們過去曾經失望過,也可能他們認為根本不需要現在這個專案,或者他們只是認為你根本交付不了。

不管有什麼問題,如果你想建立某種客戶信譽,那就得這麼辦……

下一次面對客戶時,請告訴他們:從現在起會在兩週內解決他們提出的一些問題。

不需要徵求誰許可,別搞什麼不知所云的大型儀式。只管收集一些問題,瞭解客戶的疾苦,然後將問題解決即可。

接著就是要付諸實施。兩週過後,向客戶展示他們的問題已經完全解決了,然後重複這個過程。再收集一些其他的問題,解決掉。

你可能需要重複這個過程三到四次(甚至更多次),才會引起他們的注意。但最終他們肯定會注意到的。

此時,他們就會對你刮目相看,瞭解到你的真實價值:你是一個辦事靠譜、值得信賴且雷厲風行的執行者。

喏!你可以找出一千個理由來解釋為什麼客戶不是專職的。也許他們厭倦了由IT部門去完成他們的專案,也許他們沒有或者不需要將軟體放在首要位置,也許你沒有讓他們意識到他們這種角色對於專案的成功有多麼重要,或者他們可能只是真的很忙。

我絮叨了這麼多,就是想說明一點:如果想建立一些誠信,那就要經常往信任儲蓄罐裡面放點零錢,這樣才會最終贏得客戶。

自組織

敏捷團隊常常會設定一個目標,然後退而結網,通過共同研究來實現目標。為此,敏捷團隊需要進行自組織。

自組織首先要求個人放下架子,與團隊協作,將自己作為團隊的一分子,想出如何發揮出個人所有的獨特技巧、激情和天賦,最好地交付專案的辦法。

“鮑比當然可以分割程式碼。但他也擅長設計,因此,還是讓他幫忙做實體模型吧。”

“對,蘇茜是我們最好的測試人員之一,但她真正出色之處在於設定客戶期望值。她的確有一套,並且也喜歡做這項工作。”

這並不意味著開發者必須要精通視覺化設計,或者立刻就要求測試者去管理專案。

這只是說建設團隊的最好方法是要讓角色適應人,而不是讓人適應角色。

那麼,該如何使團隊自組織呢?

  • 要讓他們自己建立計劃、提出估算,並對專案全權負責。

  • 不要擔心所謂的頭銜和角色,而要更關注於不斷交付出可執行且經過測試的軟體。

    • 你要找的人應該具有主動性,喜歡掌控自己命運而非惟命是從。

簡言之,你要擺脫束縛,信任他們並授以權力,這樣工作才能完成。

enter image description here

現在,自組織本身就夠強大了吧,但是真正的神奇之處是其所引發的授權和責任感。

勇於承擔和授權

優秀的敏捷團隊會對其所產生的後果勇於承擔。他們知道自己是客戶成功的關鍵,並且從一開始,他們就要交付有價值的東西,這是他們義不容辭的責任。

當然,只有團隊真正地被授予權力,勇於承擔才會發揮效力。讓團隊自己去抉擇,去做他們認為正確的事情,這可以激發他們的主動性並使其獨立工作。他們會解決自己的問題,不必再等待他人的許可。

當然,你偶爾也會犯錯。但由於這樣做優點頗多,故而值得冒險。

建立一個授權和有責任感的團隊說起來容易做起來難,不是所有人都希望被授權。如果只是要混個臉熟,做個打下手的工作並且只需奉命行事,那就非常簡單,何必自找麻煩呢?

enter image description here

如果你認為在培養團隊責任感這方面有問題,那麼有一個簡單的解決方案——讓團隊演示其軟體。

將團隊推到現實中真正的客戶面前,讓他們演示軟體,這會極大地提升團隊的責任感。

首先,你的團隊會意識到現實中有人正依賴於他們的交付。他們會意識到確實有人面臨著現實中真正的問題,需要現實的軟體去改善其生活。

其次,只要一次糟糕的展示,團隊就會突然變得有興趣去讓軟體迎接反饋,並確保一切運作正常。為此,他們會堅持要求下放權力。如果他們還不這麼做,你可就有大麻煩了。

跨職能

跨職能團隊要能夠為客戶提供全面的服務。這意味著團隊要具備必要的技巧和技能,才能完成客戶需要的所有特性,成功地完全交付。

當為團隊招募員工時,你要招聘那些多面手,因為他們能夠輕鬆地完成多種任務。如果想招聘程式設計師,就要找到那些精通整套技術棧之人(不只限於前端技術或者後端技術)。而對於測試人員和分析師來說,他們在做深度需求分析工作時,應與做測試一樣輕鬆自如。

團隊缺乏某種專業技巧(比如資料庫效能調優)時才會偶爾用到專家。但通常在專案的整個過程中,團隊會作為一個整體互相支援,同舟共濟。

enter image description here

當然,跨職能團隊的真正妙處在於其運轉的速度。不必再等什麼許可,也不必與其他人討價還價爭取某種資源,而是從一開始他們自己就可以交付有價值的東西,沒人會擋他們的路。

好吧,這些就是當你組建團隊時希望設定的一些期望值和為之奮鬥的一些目標。

本文摘自《敏捷武士》

相關文章