英文原文:Coding Culture: How To Build Better Products by Building Stronger Teamshtml
譯/叢一前端
軟件開發人員一般會付出大量的時間和精力在如何構建最好的產品上。咱們常會糾結應該使用哪一種Web框架,是用NoSQL數據庫仍是SQL數據庫?不過,儘管這些問題十分重要,開發人員一般會忽視掉軟件開發過程當中與這些問題一樣重要的一個方面——文化。本文將與讀者分享在Atlanssian公司中如何保持健壯的創新和協做文化氛圍的經驗。程序員
產品時刻都在發展變化。在以後的幾年中,一個你傾注過血汗和眼淚的產品可能會不復存在。不過,若是你能同時專一於創造健壯的團隊和編碼文化,你就可以時刻準備着,抓住出現的機遇(克服障礙)。並且,發展強健的文化須要對團隊所表明的立場達成共識,而這種凝聚力也會正向地反映到團隊所構建的產品上。偉大的文化促成偉大的產品。面試
那麼什麼是「偉大的文化」?人們一般會將文化可見的外部標誌——免費食物、免費飲品、瑜伽課程、Aeron電腦椅、電視遊戲、Nerf 玩具槍——錯誤地等同於文化。的確,許多公司,特別是科技企業都會提供這些很棒的福利,可是這與文化沒有半點關係。文化是咱們如何交流、工做、組織、榮辱與共。文化沒法準確描述,可是它可以讓員工更加快樂、更有生產力。若是員工懼怕失敗,公司等級森嚴,僱主把利潤看得比員工更重要,即便有再多的免費食物和公務津貼也無濟於事。數據庫
當今的職場已經再也不由朝九晚五,打卡上下班,流水線式的心態所主導。對於知識型勞動者來講,如軟件開發人員,並非用容量或時間,而是用創造力和質量衡量產出的價值。現在,只要有須要,咱們能夠自由選擇在辦公室工做仍是在家工做,或者是在酒店的房間裏工做。這會創造無數使人激動的機會,培養一種可以讓全部員工都受益的文化氛圍。服務器
創新文化架構
在科技界有一個耳熟能詳的故事,小型創新公司隨着規模的增加會逐漸失去創新的能力。的確,大型組織與初創企業相比會更加結構化,缺少靈活性,這會致使難以孕育開創性的想法並使之浮出表面。文化如此重要的一個緣由就是不管公司規模多大,它均可以幫助公司始終保持創新。創造一個創新的文化氛圍不僅是說「好吧夥計們,創新的時間到了。」或者開闢一個專門的「創新部門」那麼簡單。咱們不可能命令創新,也不可能將創新隔離在一個孤立的羣體中。併發
在我我的的經驗中,鼓勵人們創新的最好方法就是給予他們充足的時間開創想法並嘗試實現這些想法。在Atlassian ,咱們每一個季度會將全部員工集合到一塊兒,開展一次名爲」ShipIt Day」的24小時黑客馬拉松活動。全部對如何提高部門和產品有好的想法的人均可以加入到ShipIt Day中。圍繞着那些最有影響潛力的想法,組成多個團隊(或者也能夠獨自奮戰),而後在週四下午三點,啓動ShipIt Day。除了到週五下午三點必需要有交付物以外,沒有任何其餘規則。這是一項全球範圍的Atlassian辦公室活動,全部人最終會投票選出一個全球優勝者。app
在24小時內所取得的成就使人驚奇。許多來自於ShipIt Day的很棒的產出物最終都融入到了咱們的產品中。此外,這些活動能讓人們心情愉悅,由於他們有了一個能夠將想法實現的渠道。ShipIt Day激勵公司中的每一個員工不斷鞭策本身而且思考用不一樣的方式解決問題。框架
快樂文化
去年出現的一項重量級研究證明了咱們以前的感性認識——快樂的員工更加多產,一般也就能促使公司盈利更強,發展更迅速。ShipIt Day成爲人們保持快樂的一部分不只是由於他們可以將本身的想法實現,還由於它將人們聚在一塊兒。在快樂的團隊中員工互相瞭解,互相尊重而且一同享受共度的時光。僱主能夠經過開闢專門的社交時間,讓員工能夠休息和放鬆,從而培養快樂的工做氛圍。
公司歡樂時光、夏季戶外派對和主題假日活動都是能夠將不一樣部門的各種員工聚集到一塊兒的很棒的手段。共同慶祝團隊的勝利也是個好主意,例如舉辦版本發佈派對,由於這對出色工做的承認很是重要。與人分享勝利的感受更加甜蜜。此外,也能夠組織像漂流或者攀巖這樣的活動,員工可以進行團隊合做而且更加深刻地瞭解同事的優缺點。這類活動能夠加強一塊兒共事的員工之間的關係而且可以讓那些沒有太多交流機會的員工之間創建聯繫。在坦誠相見和相互交流時,有助於人們感受更加溫馨,同時還能夠突出做爲一個團隊榮辱與共的感受,這有助於避免負面態度或相互指責。
目前許多公司已經在開展這類活動,並認爲營造快樂的文化氛圍,這就是他們須要作的所有工做。但實際並不是如此。
爲了確保員工可以快樂努力的工做,經理須要創建快速方便的檢查機制,快速獲得員工關於當前工做方式以及工做改進意見的快速反饋。Atlassian構建了一個名爲MoodApp的iPad應用,放置在辦公室的每一個出口,這樣當員工離開時就能夠分享他們的感觸,是否能感覺到他們的經理的支持等。咱們發現儘管超過90%的員工都比較滿意當前的工做,仍有大約30%的受訪者認爲,在他們出色地完成某些工做時,並未所以獲得承認。咱們將這一比例告知團隊領導,併發起一項促進榮譽計劃(Kudos program)的運動:很簡單就可讓員工互相賞識各自工做的方法。員工只須要在內部服務檯填寫一張單據便可。幾天以後,被你們承認的員工就可以獲得一張小禮品卡,裏面有亞馬遜代金券或者電影票。在榮譽單據數量增長的同時,感受工做不受承認的員工數量卻降低到了10%。在瞭解到有91%的員工感受快樂以後,Spotify也作了相似的工做。儘管91%已是至關不錯的一個比例,Spotify仍但願瞭解剩餘9%的員工不快樂的緣由。他們與這些員工交談,並作出一些微小的調整,最終這一比例上升到94%。
固然,不可能每一個人都一直保持快樂。某段時間可能會比另一段時間壓力更大,工做以外的私人問題隨時可能發生,並且可能會有超出咱們控制範圍的事件發生,例如生產服務器上的一塊磁盤損壞會致使成百上千的客戶服務中斷。起伏不可避免,但經過構建強大的團隊,當遭遇不順時,員工能夠相互分擔痛苦。
由價值觀驅動的文化
文化不只是組織層面所應關心的問題,內部團隊一樣也要考慮文化問題。健壯的文化氛圍基於整個組織層面的強力的價值觀。價值觀能夠指導文化。Atlassian圍繞五個強力價值觀構建了本身的文化,例如‘不要#@!%客戶。’對於工程團隊,這意味着每一個人都須要可以瞭解客戶。
雖然這已是老生常談,但仍然值得再重複一次。全部人都應該瞭解客戶,並且客戶也應該參與到產品開發的過程當中。咱們能夠經過視頻訪談,在投票系統中新增功能請求,故事映射,在辦公室甚至是浴室張貼用戶角色完成這項工做。意識到客戶是團隊運做的中心能夠提醒全部成員構建產品的緣由和目標。這可以確保員工理解所要處理的問題,明白功能與產品直接相關的。
顧客意識還可以幫助團隊保持對產品的熱情。除了熱情以外,另外一個重要的工程價值(engineering value)就是追求卓越。蹩腳代碼永遠都是不可接受的,即便是因爲時間緣由。創造一個可讓開發人員或團隊充分估算項目週期的環境,由於突擊工做並不是好事,以後頗有可能須要從新返修。
Atlassian的另外一個價值觀就是‘欲求改變,先變自身’,這句話的含義是做爲工程師應該不斷尋找更好的作事方式。要牢記只有變化纔是永恆不變的,昨日的最佳實踐並不適用於今天。各個團隊應該樂於嘗試新的方法或使用不一樣的技術,不過不要掉進‘由於有能力作到,就實施最新的框架’的陷阱。另外,要小心團隊中妄自尊大的人,他們可能會作出一些超出既定目標,或者對整個團隊或產品不利的事情。保證全部人都可以齊心工做,達成目標。同時,這也須要與架構調整的需求作出平衡。若是老是在調整架構而沒有發佈任何產品,這無益於任何人。不要對產品過分設計。咱們須要足夠好的產品,但並不須要天衣無縫的產品。發佈可用版本,獲取反饋,不斷優化產品。要在對代碼的熱情和用戶的需求之間作出平衡。
工程師正在利用這些價值觀爲客戶構建平常使用的軟件,在版本發佈時,向客戶展現工做成果的感受很是棒。不過,並非組織中的全部部門都有這樣的特權。例如,服務部門能夠追蹤服務過程並基於處理的支持案例數量舉行慶祝,但這並不像發佈一個本身親手構建的產品那麼有知足感。幾年前,咱們的服務團隊決定從他們的角度解讀‘不要#@!%客戶’這類價值觀的意義,並作成海報貼在天天進入辦公室的必經之路。海報中包含了像「期待每一位客戶」,「在問題還小的時候就解決掉它們」,「不斷學習」以及「讓客戶敬佩」等口號。這培養了團隊共同的使命感,而且讓支持團隊承認擁護這些價值觀並按照這些價值觀行事的「文化搖滾明星」。
公開透明的文化
公司很天然會劃分紅多個團隊,文化須要營造一個這樣的團隊環境:1)有效率和凝聚力,同時 2)與其餘團隊之間溝通順暢。咱們爭取將小型團隊的平均規模控制在4-8人。在這種規模的團隊中,無需複雜的溝通工具,每一個人都能瞭解同事的工做內容。他們之間的聯繫也比較緊密。
然而,隨着企業規模愈來愈大,這些團隊和部門每每會被分割成爲多個難以打破的孤島。構建強健的組織文化的一部分就是儘可能保持羣組之間的界限越低越好,方便人們可以在須要時互相學習,互相幫助。不管組織規模多大,從根本上來講,全體人員都是朝着同一個目標努力,強調這一點十分重要。例如,開發人員可能會以爲十分沮喪,由於他們認爲法律部門不容許他們使用某個開源庫,只是由於說‘不’比找解決方案更容易。而法律部的人可能認爲開發人員不能理解使用特定的軟件許可證所帶來的法律問題。
越過這些孤島最好的辦法就是未來自不一樣部門的員工彼此相連。上面所談及的活動就是這一努力的一部分。此外還可讓新員工寫一篇關於本身我的信息的介紹性博客,以及實現健壯的便於共享的合做平臺。經過博客或公告,員工還應該可以隨時瞭解到其餘部門正在發生的事情。例如,將設計團隊贏得大獎的新聞與整個組織分享。分享失敗併發起討論——你永遠都不知道誰會貢獻出有價值的想法。透明是保持文化有活力的關鍵。
咱們會記錄全部想要在協做平臺Confluence上討論或保留的內容。咱們會討論想法,將想法變成功能,並共同開發這些功能。這種方式要比電話溝通的方式更好,電話溝通時所討論的內容沒法自動文檔化,也比電子郵件的方式要更好,討論內容很容易被淹沒掉。聊天也是很是好的手段。經過團隊溝通平臺HipChat,聊天已經成爲咱們的神經系統。每一個團隊都有本身的HipChat聊天室,聊天記錄能夠及時保存,若是某個成員正在旅行,在一個長時間的會議中或者想要更專一,能夠選擇關閉通知,稍後再查看以前的聊天記錄。咱們還將聊天與其餘的系統相連。例如,若是某次構建失敗,咱們就會收到一個聊天通知而且能夠當即發起一次討論。除了每一個團隊內部的聊天室以外,還有跨部門的聊天室,可讓組織中不一樣部門的員工創建聯繫。例如,法律部的員工和HR部門的員工能夠加入一個足球主題的聊天室,討論選拔賽計劃或回顧週末的一場職業比賽。
透明和溝通對於分佈式的團隊來講尤其必要,這已經成爲常態。這些聊天室可以鏈接不一樣時區的人們,讓他們達成共識,而且能夠相互討論。聊天室還可以消除組織內的層次結構。任何員工均可以評論首席財務官發表的一篇博客,反之也是如此。在這些流暢的溝通中,會產生許多可能很是偉大的觀點,但一樣重要的是,要保持全部的對話恭敬有禮。
文化規模化(Scaling Culture)
隨着公司規模愈來愈大,在整個組織中傳播和保持文化氛圍會變得愈來愈有挑戰。當我三年半之前加入Atlassian時,整個公司大概有350人,而如今有超過1300人。咱們清楚,隨着公司規模的增加,咱們的文化氛圍會有所變化,但咱們也知道若是可以正確行事並保持員工的責任心,咱們的價值觀會幫助保持文化氛圍無缺無損。
咱們經過建立包括設計人員和QA人員在內的小型跨職能程序員團隊實現文化規模化,若是在下一個Sprint中再也不須要設計人員,他就能夠轉到另一個須要他的團隊中去,反之亦然。另外一個挑戰是組織多個團隊爲同一個產品服務。我曾經見過一些公司經過建立前端團隊、性能團隊和數據庫團隊等多個團隊來解決這一問題。在個人經驗裏,這會產生協做問題,由於某個功能或用戶故事可能會橫跨全部的團隊。
咱們發現讓每一個團隊各自負責一個特定場景的工做方式收效良好。例如,咱們的Confluence產品有一個「輕鬆入門」團隊,集中精力研究如何將用戶帶入平臺。而後,咱們還有一個企業團隊,主要負責大型的客戶,不只僅是在性能方面,還要研究如何在管理員屏幕上展現1000個用戶。這些團隊各自獨立地工做,同時在須要時也可以相互得到支持。每一個團隊自行決定問題的解決方案以及所要使用的我的工具。咱們將這種方法稱之爲「行動主義(do-ocracy)」,每一個團隊都擁有受權,能夠採用最適於他們的工做方式。
各個團隊各自獨立的同時,咱們也鼓勵團隊在須要時從其餘團隊尋求支持,與其餘團隊分享他們能夠實施的好想法和功能。若是輕鬆入門團隊說,「咱們計劃按照功能構建新的Confluence頁面佈局,」咱們會將這個想法與全部其餘的團隊分享。其餘團隊可能會說「從企業的角度來講,你可能須要注意這點或那點。」全部的事情都會通過討論,這可以創造出一個集體全部制的環境。集體主義須要透明度。爲了在代碼級別達成這一目標,咱們會在Stash和Bitbucket中作代碼評審。不過有時候很難找到最合適的代碼改動評審者。所以咱們還編寫了一個免費的Stash插件Stash評審人推薦器(Reviewer Suggester),根據以前是否修改過該文件或者是該文件的原做者,進行評審人推薦。他們是評審改動的最佳人選,由於他們對這段代碼最爲了解。咱們發現這種方法的擴展性十分良好,可以讓組織更加扁平化,從而引領更多創新。
挑選合適人選
若是不能僱傭到適於公司和各個團隊的人選,即便在文化氛圍培養上付出最大的努力,最終也會功虧一簣。在人員僱傭方面,能夠吹毛求疵,拒絕妥協。挑選合適的人選有助於保護辛苦建立的文化氛圍。Atlassian在最終肯定一個候選人以前,會通過篩選性問題,在線編碼測試和屢次現場面試。每一個候選人都須要有合適的技能而且可以與公司價值觀及其餘員工相容。
也就是說,你不該僱傭只適應某種特定模式的員工。在我說你不想要一羣兄弟程序員時,最好相信我,而若是你只僱傭你的朋友,那這種狀況就頗有可能發生。你的文化和生產力會隨着多樣性一同增加。若是新的影響者不能使之面目一新,文化早晚會消亡。僱傭女性,僱傭有着不一樣年齡,不一樣背景,不一樣教育和工做經驗,不一樣種族的員工,並確保他們受到歡迎。咱們經過爲每位新員工指派一個夥伴達成這一目標——爲他介紹周邊狀況,在重要的環節幫助他們,並讓他們知道每週的聚會等。咱們的舊金山辦公室有一項「啤酒自行車」的活動,每週五新員工會騎着自行車,馱着啤酒,爲你們分發啤酒,做爲一種自我介紹和促進交流的方式。咱們還會組織爲期四周的訓練營,天天早上資深員工會爲新員工培訓須要瞭解的知識,新員工能夠選擇不一樣的課程。
回想文章開篇咱們所提到的——偉大的文化從何而來?正如咱們在這兒所探討的,文化來自於讓員工的創造力茁壯成長,來自於讓員工爲了樂趣走到一塊兒。來自於重點發展的共享價值體系,讓全部人均可覺得了目標而工做,均可以開放的溝通。文化是關於透明和誠信的強化,尊重自主權及鼓勵合做。文化是關於不管組織規模成長多大,都要保持全部這些不變,而且經過僱傭能夠保持文化的員工來保護這種文化。文化是全部其餘成長的基石——因此,確保你的組織有一個強健的文