敏捷團隊建設

剛寫好的時候本來嘗試發javaeye,結果那天好像服務器有問題沒提交上來。這麼多天才想起來重新發。。。

--------------------------

敏捷團隊建設 本文發表於4月《軟件世界》

最近很多人都問我,有沒有適合的人可以推薦給他們公司,他們正在招人,面試了很多個,但有經驗的開發人員太難找了。有一個朋友在問我要人的同時,他手下的一個開發人員反而問我有沒有好的機會,他想跳槽。

不久前一份報告稱,中國本地軟件企業面臨的最大問題之一,就是高級技術人才的缺乏。造成這種問題的原因,主要是由於本地軟件企業的人才培養機制和管理機制的欠缺。人才大量涌入外資企業和頻繁的流動,導致了各類有經驗人才的欠缺。

每個人都會夢想自己的理想工作。做技術的開發人員要求的更是簡單:一個能夠不斷學到新知識和新技能的職位,一個融洽的團隊,一個舒適寬鬆的開發環境,一份成長的空間。而這些簡單的需要,恰恰是許多公司所忽視的地方。這些東西,很多時候就是一個人決定離職的因素。

有的公司認爲開發團隊是成本中心,所以給他們買最便宜的桌椅——而恰恰是開發人員們一天都依賴於這樣的桌椅爲公司創造價值;有的公司覺得自己的一套軟件不停的實施就能不停盈利——而開發人員最厭煩的就是做重複性工作;有的公司要求開發人員必須上班打卡——好的,那開發人員絕對不會晚下班一分鐘。有的公司從來不舉行內部的技術交流和培訓活動——而開發人員希望的技術提高絕不僅僅是隻靠讀書能夠完成的。

公司要依靠軟件來盈利。而要開發一個成功的軟件項目,人的作用是第一位的。而個人的力量相對於整個團隊來說,又是微不足道的。稍微有點規模項目的成功都是集體努力的結果,而不是靠一兩個英雄程序員能夠完成的。爲了能夠保持一個穩定和高效的團隊,建設一個吸引開發人員的環境和氛圍是所有公司的管理人員們應該考慮的一件事。一個核心的產品開發人員離職,很可能使得當前的項目或訂單陷入癱瘓,這目前已經成爲了影響許多中小公司存亡的大事。

我所在的公司不僅僅以敏捷過程著稱,同時,它以其特有的文化和團隊氛圍吸引了一大批高水平的開發人員。他們不僅僅是認同敏捷而聚在一起,更多的是,他們嚮往着這種平等、自由、輕鬆、快樂的空氣。

人與團隊

在公司一個典型的敏捷團隊中,大致有四種不同角色:項目經理、業務分析師、開發工程師、測試工程師。同時,根據項目不同可能還需要:美術設計師、數據庫工程師、系統工程師、交互設計師等不同人員。雖然在項目中不同的人需要確定一個角色,並擔負相應的責任,但在公司內部,人與人之間是完全平等沒有級別區分的。這種平等的文化,就使得人與人之間的交流不會因爲等級差距而喪失。同時公司鼓勵每個人向其感興趣的其他領域發展,成爲綜合性人才。例如某個人現在是開發人員,但他也可以通過幫助項目經理做一些輔助工作,來學習項目管理方法,從而最終成爲獨當一面的項目經理。

項目成功的一個重要因素就是交流。保障團隊內外順利交流是項目經理的責任之一。公司鼓勵員工之間交流看法和討論問題。在公司內部,如果有閒暇時間,隨時可安排一場講座。這些講座都是由員工自發組織和自願開展,話題多種多樣,不僅僅限於技術。經濟、法律、業務知識等等,都是大家平時感興趣的領域。在項目中,定期的Learning Lunch也是公司項目的一大特色。和客戶一起圍坐在餐桌前,邊享受公司提供的午餐邊討論項目中的技術,團隊的學習交流氣氛自然會無限高漲。

除了自發的、自由的交流,還有一些約定的交流時間和形式,例如,每天的站立會議。你要說出昨天做了些什麼,今天會做些什麼,遇到了什麼困難是否需要別人的幫助。站立會議鼓勵每個人說出事情的真相。有了困難就大膽的向你最值得信任的同伴來尋求幫助,沒有人會嘲笑你,也沒有人會冷漠的不去理睬你的困境。一個自組織的團隊,應當是一個溫馨而又和諧的集體。每個人都會努力的幫助其他的人,幫他解決他的問題並從中積累更多的經驗。

圖略:站立會議

無論是在項目中還是在個人的發展過程中,回顧與總結都是一個必不可缺的步驟。公司內部任何事情告一段落的時候都會有一個總結活動。迭代總結,項目總結,發佈總結,陪訓總結等。在這段時間內什麼做的好,什麼做的不好,如何進行改進。任何的過程和成績都不能是靜止不變的。只有不斷的反省和總結,才能夠在未來的發展中進一步提高。項目團隊一起召開總結會議活動,在這個活動中,任何人不能夠對其他人進行指責和攻擊,一切都應該以互相信任爲基礎,我們的目的是提高下次的工作效率和增強同伴的信心,而不是批鬥和推卸責任。公司對員工的績效考覈,也是類似的由一起工作過的同伴來進行評價,360度全方位考覈。這種定期的總結和回顧,提供給了員工與團隊自我成長的機會。

除了內部的交流,公司還鼓勵員工進行技術創新和參與其他社會活動,例如參與開源軟件開發、撰寫書籍、向雜誌投稿、參加和舉辦技術社羣活動等。這些對技術社區的貢獻,不僅僅能夠提高員工個人的能力,同時還展現了公司員工的整體能力和提升了公司的知名度。對公司和個人來說是雙贏。

環境與工具

如果你有機會到我們的辦公室,你就會發現,每一張牆都被佔得滿滿的。牆上可能會貼滿了各種顏色的小卡片,這些都是正在進行的項目的需求。每張卡片都是一條用戶故事,開發人員根據用戶故事實現系統功能。這種被貼在牆上的一目瞭然的管理方法叫做可視化管理。在公司內部,開發、招聘、銷售等各種流程的狀態都被一一列在牆上。一來可以作爲工作的進展圖公示於衆,二來可以使每個感興趣的人都可以隨時提出他的想法或主意,集思廣益,將工作做到最好。

圖略:牆面

公司採用大長桌作爲開發用桌。座位之間沒有隔板。一方面適合與敏捷開發中的結對編程實踐,另一方面可以減少隔板帶來的交流障礙。如果你到一個採用隔板的公司去走一圈,再來比較公司的工作環境,就會明顯的感受到交流頻度和廣度的明顯不同。公司提供給開發人員舒適的座椅,帶有扶手並可以調節高度和後仰角度,以適合每個人不同的需要。如果中午工作累了,還可以躺在椅子上小憩一會養足精神以便下午更好的投入到工作中。

圖略 開發桌椅

在項目中,必不可缺的交流工具是白板和紙。再沒有比這更廉價和更好用的工具了。兩個開發人員遇到了分歧,兩人走到白板前寫寫畫畫,很快,一副清晰的系統脈絡就出現在兩人面前。分歧達成了一致,開發繼續進行,而圖像留在白板上,任何過路的程序員都可以駐足觀看,如果感興趣還可以問一問作者,更深入的探討。在開發的過程中,隨時遇到問題或需要記錄的,都可以立即寫在手頭的白紙上,一些簡單的算法草稿,也都是用白紙完成。這些白紙多是打印用過一面的紙張,環保而又經濟。

我公司和其他大多數外企公司一樣,爲員工提供免費的飲料和零食。每天早上,公司的麪包機都會工作個不停,烤麪包的香氣會和着咖啡的味道飄揚在空氣中。午飯後,從冰箱中拿出一罐健怡可樂,冰涼爽口,喝下後休息一下就可以精神十足的開展下午的工作。下午四五點鐘,正是開始感到餓的時候,到零食區找一塊巧克力吃補充一下體力,順便休息幾分鐘,活動一下筋骨。

圖略 飲料零食區

公司還在辦公室內放了一臺電視機和一臺PS2,午飯後和下班後,你可以和同事相約PK一場實況足球,既休息了神經,又和同事加深了感情。公司還經常組織各種體育活動。每週租一次羽毛球場,讓長期在電腦前工作的員工運動運動,有助於身體健康。

以上這些是我公司在團隊文化建設的一些做法,提出這些供大家參考,希望更多的公司管理人員,能夠從中或多或少的汲取一些經驗,將之用於提高公司開發人員的物理和人文環境。

改造公司的開發環境,可以先從很簡單的做起,例如,在辦公室的一角開闢一處飲食區,提供免費的飲料和食品;在走廊上掛一個白板,隨時有人記錄一些東西;爲員工提供更舒適的座椅。這些東西花不了多少成本,但其收效是明顯的。不論是技術部門還是其他部門,都會爲公司這一點點人性化的舉動感到高興。有了高昂的士氣,做事情自然也會更加積極高效。不需要公司一下子全部改變,但往往一點點的細節變化就能夠獲得全體人員的支持。雖然有些投資,但員工給公司的回報會更多。

無論是敏捷開發理論還是精益管理理論中,都提到團隊的作用是最重要的。如果能夠發揮人的能動作用,並良好的保持下去。我想,沒有什麼目標是我們完不成的。如果所有的公司都能夠提供良好的環境給開發人員,那不僅僅是開發人員的的幸事,更是我們整個中國IT界的一大幸事了。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章