伯樂線上注:昨日在@程 序員的那些事 微博中推薦了《What Makes a Good Developer Culture?》這篇文章,感謝@機器human 的地道翻譯,贊!以下是全文。
不論你是一位工程師,還是一位軟體開發者,亦或是一位廚師,最近你都會聽到很多的談論:是什麼造就了一個優秀的“文化”。其實這都是關於找到一個不僅有助於人們順利地把活兒搞定,還能讓你每天屁顛屁顛地起床去那裡上班的工作環境。在這篇文章裡,我們將一窺幾位優秀開發者的心聲,看看他們對“是什麼造就了一個優秀的開發者文化”的一些想法。是額外的報酬嗎?還是更多的“極客”味?是尋求那種通常不會出現的相互協作嗎?還是在所有這些因素的組合上還得加點別的什麼?
什麼叫“開發者驅動”的文化?
對程式設計師來說最熱門的工作地點之一就是Facebook,這個世界上最大並且最受歡迎的社交網站。這個巨獸為全球超過6億(還在增加!)的使用者服務,而這都依靠著一支由軟體工程師和開發人員組成的全能團隊以保障他們的服務生生不息。即使Facebook由於一直在未通知使用者的情況下不斷改變使用者介面和隱私設定而飽受指責,他們永不停機的可訪問性和所有社會關係的一站式中心的核心價值還是讓他們持續繁榮。而這些絕不是憑空出現的:
“持續的發展一直是一個成長型公司的標記,而facebook顯然完全滿足這個要求。但是拋開其巨大的價值和創新性不談,也許這個網站一部分的成功連線著開發者驅動的文化–即Facebook熱衷於創造並維護那些讓平臺執行更流暢,更有活力體驗的程式碼…Facebook的例子確確實實說明了當一些合適的因素存在的時候,開發者驅動的文化可以工作的很好。在有些情況下,公司可能需要用試錯的方式去檢測模型在那些情況下是否有效。當然,並不是每個公司都有能力去組建一個充分賦權給工程師的體系的。” — RegularGeek.com, “Developer Driven Culture | 開發者驅動的文化”
“賦權於工程師”(有的情況下或者是開發者)是一個有趣的前提,但是這到底意味著什麼呢?擁有一間充滿著神祕博士和星球大戰珍藏集的辦公室,隨時可以享受免費的馬殺雞的休息室,還有一大堆免費的快餐食品當然是最好的,但是如果開發者不得不應對SB的辦公室政治,或者更悲劇的微型管理中的各種摩擦糾紛的時候,那麼上述的一切都於事無補。而Facebook看上去正確的地方是對想法的鼓勵政策,一個富有想象力的環境是不會扼殺創新的。而這要求一系列的事情必須做對:一個互相之間和諧合作的聰明團隊,一個有能力過濾掉什麼是必要什麼是不必要,而使得程式設計師們可以完成他們的活兒的聰明管理團隊。這是一個很高的標準,但是當你有一個像Facebook這樣炙手可熱的產品的時候,你就必須做到這一點。
是什麼促成了一個強大的開發者文化?
在Quora這樣一個線上問答網站上,有一個這樣的問題被問及《What makes a good engineering culture | 是什麼造就了優秀的工程師文化?》顯然,這些答案來自於工程師的視角,但是很多的答案同樣適用在開發者身上。關於是什麼造就了強大的開發者文化的答案之一就是快速迭代:
“對明智的團隊來說,快速迭代速度意味著擁有一組強大的領導來幫助協調並驅動團隊努力工作。關鍵的利益相關者在制定決策時,需要做出有效的決定並且將其選擇付諸實施。借用Bill Walsh的一句話,他曾作為教練三次帶領舊金山49人隊進入超級碗,強大的領導需要“commit, explode, recover | 承諾、激發、恢復”,即意味著制定一個攻擊方案,然後執行它,最後對結果做出反應。一個缺乏決斷力的團隊只會將個人的所有努力化為烏有。”
我們所有的人大概都有在一個專案上被其它人束縛的不爽經歷;然而這就是生活。快速,有意義的過程對於一個團隊來說,是一種使得工作更流暢地朝搞定最終目標的方向前進的東西。伴隨著快速迭代而來的,是儘可能多的自動化,構建讓事情變得簡單的軟體的想法:
“選擇正確的方式,則程式設計將自然的與設計銜接;模組將會擁有小巧,簡單的介面;而且不需要大量的重組,新的功能便能很好地新增進來。而選擇錯誤的方式,程式設計會成為一系列糟糕的驚喜:介面將會變得複雜而笨拙,不得不去適應那些意料之外的互動,並且即使是最簡單的改變都將變得困難。”
K.I.S.S(保持簡單,傻瓜)的古訓看來在這裡是行得通的。那些開發者為了在工作中達成一種禪宗般的樸素而使用的特定工具或者過程,對他們最終想要完成的任務不會有什麼影響;而這基本上是一個通往專案終點的無障礙(至少是少障礙)的道路。
20%時間
你可能聽說過Google的“20%時間政策”,這個在科技產業界眾所周知的東西。這個概念要回過頭到1948年:
“在1974年,3M公司科學家Art Fry想出了一個聰明的發明。他認為如果可以將一種粘合劑(這是在早幾年前,他的同事Spencer Silver發明的)應用到一張紙的背面,他能夠創造一個用在他的教堂讚美詩裡的完美書籤。他稱之為Post-It便籤。Fry是在他的“15%時間”裡想出這個標誌性產品(他與Smithsonian談論關於這個產品 猛戳這裡)的。“15%時間”是3M公司的一個計劃,它允許員工利用他們帶薪時間的一部分去做追逐夢想並且孵化他們自己的想法。這看上去只是一個柔性的員工福利而已。然而這些時間卻產生出許多這個公司最賣座的產品。並且為像Google和惠普這樣一些當今頂級的科技公司開創了先例。”Lifehacker.com, “20%時間原則讓你工作更輕鬆 | Make Your Job Feel Less Like Work With 20% Time”
一些Google的最有趣,最有名的產品就是在這20%時間裡構想的,包括Gmail、Google News和Adsense。顯然這個方案對Google非常有效,並且很容易獲得這樣的結論,鼓勵開發者去從事令他們激情四射的那部分工作顯然是非常明智的:
“舉個例子,很多與我在工作中很熟的軟體測試人員都是重度硬體極客。但是除非正式地換個工作,目前對他們來說很難找到個地方去從事這些興趣,儘管整個公司有好幾百個這樣志同道合的極客們。擁有一個官方認可的方式讓他們去探索這些興趣,不但會讓這些員工很開心,還會將他們塑造成適合於轉換到那些事業的人…這裡的關鍵是,不論你的開發人員感興趣的是什麼,你總有辦法去塑造他們,即使在沒有很多的預算情況下。” — arc90.com “建立興盛的開發者文化 | Creating a Thriving Developer Culture”
實用性建議
最近,一位在Jet Cooper的前端開發者Monika Piotrowicz做了一個報告,就他們公司如何擁抱一個更包容的開發者文化給出了一些非常實用的建議。特別指出的是,排程設計師和開發者在專案上應該更好的合作而不是互搞。
她們的設計團隊和開發團隊的相互協作給公司帶來了大豐收。在專案期間,他們試著去通力合作而不是在某些問題上將工作丟來丟去;她們發現這樣的方式能夠啟用他們進行更多的研究,創造更多的原型,並且她們可以通過更好的定位從而嘗試新技術。
團隊還利用下面幾種不同的活動來進行工作專案環境之外的互相協作:
- 每月演示日:演示日允許每個團隊都來秀一秀自己的成果,並且還能得到支援和反饋。
- 每週的開發者演講:所有開發者見面分享新的技術,聊聊他們遇到的問題,或者他們想到的任何東西。
- 創造性休假: 一個月中有兩天,整個公司休假並且可以為他們自己的專案工作,當然,這些是自我導向的(這是模仿前文提到的Google的20%時間政策制定的)
Piotrowicz的報告釋放了這樣一種信念,設計師和開發人員應該提倡更多的公司內部協作,從而擁有一個更強大的團隊,而且對他們來說看來這很管用。
為什麼一個健康的開發者文化是重要的
一個強大的開發者文化對於優秀的工作是非常重要的:
“當你關注文化這個東西的時候,你就會擁有指導原則。人們會因此而瞭解你。員工將會照它行事。它將幫你度過難關。你將基於這些原則進行僱用和開除的決定。它有助於讓所有的員工為同一個公司使命而工作。在某種意義上,它就是將公司緊緊地粘在一起的膠水。”--Kissmetrics.com. “造就偉大公司文化的四個基本元素 | The Four Elements That Make a Great Company Culture””
不論你在哪裡工作——是一個漫畫店,一家麵包店,或者是一間辦公室——它都有著自己的文化。這種工作文化非常重要。如果你每天都像週一一樣賴著不願意去上班,那麼這就有問題了。
樂於搞定工作的員工是有效率的,並且會催生更多的效率。這會使得公司脫穎而出,有助於公司發展,讓員工開心,因為他們正是獲得收穫的人。
優秀的文化同樣讓你更容易找到優秀的人才。讓我們面對這些吧:那些給開發人員提供更多的報酬,有趣的工作和獎賞創造力的前衛的工作環境的辦公室,比起那些期待你吃的是草擠出的是奶的奧威爾式的格子間,前者的HR的門將會被更多得敲響。所以說,優秀的開發者文化吸引優秀的開發者,鑑定完畢。
同樣,當你意識到你在一個安全的,具有創造性的,令人鼓舞的地方工作時候,你會有一種惺惺相惜的感覺。那些在公司文化上投入,同時自身的價值被認可的開發人員會更傾向死忠於公司,努力工作並且互相幫助:
“文化指導的是自由決定的行為,並且在員工手冊管轄範圍外發揮作用。文化告訴我們如何應對前所未有的服務請求。它告訴我們是否需要冒險告知我們的老闆我們的新想法,是去揭露問題還是隱藏問題。員工每天要獨自做出很多的決定,而文化則是我們的指南。文化告訴我們當CEO不在的房間時我們該如何去做,顯然,大多數時候就是這樣的”–哈佛商業評論
關於塑造或者破壞一個優秀的開發者文化你有什麼想法呢?
是時候發表你的意見了。你經歷的愉快的和糟糕的工作體驗?什麼是一個健康的開發者文化需要的基本元素?請在評論中與我們分享你的想法吧。
編譯:@機器human,校稿:伯樂線上黃利民