《進化:從孤膽極客到高效團隊》筆記

本文由Deguang 發表於 碼路-技術博客git

軟件編寫是一項集體活動,咱們認爲人的因素和技術因素同樣,對項目結果有很大的影響。
大部分人可能花費了數十年的時間學習編程技術,卻從未真正關注過人的因素。

1. 天才程序員神話

天才神話

天才神話,各類大神雲集,Linus、比爾蓋茨等等,創造了一個個神話諸如:。。。。變成了被常人仰視,被供奉的存在,Linux 的成功是源於linus寫了第一個內核,建立了 git 的協做方式,更多的工做是由團隊完成。尤爲在現今的開發環境中,不排除有部分獨立開發者進行着我的項目開發,也有至關的擁躉。程序員

名人效應: 人有一種本能, 發現領導者和楷模, 將他們偶像化, 而後試圖模仿他們

我的開發

那咱們來看一下 我的開發 中可能存在問題:編程

若是別人看到我未完成的工做,我會很是沒有安全感,以爲他們會肆意批評我,並認爲我是個白癡。
  • 失敗風險 / 錯失機會:咱們但願在事情作到完美的狀況下,再把一切公之於衆,可能重複造輪子,也可能錯過了絕佳的合做者,
  • 巴士因子:項目中多少人被巴士撞死會致使項目徹底沒法進行下去。
  • 不發表則消亡 / 分享想法

團隊爲王

  • 軟件開發是一項團隊活動。

三大基石segmentfault

  • 謙虛(Humility)———— 你並不是宇宙中心,並不是無所不知,也會犯錯,希望意自我改進。
  • 尊重(Respect) ———— 你要真誠關心同事,以禮相待,欣賞其能力,承認其成就。
  • 信任(Trust) ———— 你要相信別人能夠勝任工做並做出正確選擇,願意在合適的時候將權力交給他們。

HRT 遵循的建議:安全

  • 放下自我:不擺架子,保持態度謙虛,注意態度謙虛 !== 不自信。追求團隊成就和集體榮譽感;
  • 批評和自我批評:人身攻擊毫無價值,這種行爲既卑劣又無法迴應。建設性批評一般是有益的,可以指導咱們改進。建設性批評是基於尊重的,出於對接受方的關心,期許對其有幫助。接受方要能接受批評,並相信提出者的初中是真心爲你和項目好。另外一個角度講:你的自尊不該該和你寫的代碼(或建立的任何創新項目)有任何聯繫。 對代碼、項目的批評指正 !== 對你的否認;
  • 快速失敗 和 迭代:「失敗是一個選項。」歷來不犯錯誤,說明你沒有足夠的創新性去承擔足夠的風險。失敗會爲下一次的努力提供了學習和改進的最佳機會。過後分析報告:解釋學到了什麼,計劃做出什麼改變,後來者更容易瞭解當時發生了什麼並避免重複歷史。不要擦除你的足跡,照亮來路,以便後來者追隨!
  • 留出學習的時間:即便你是團隊裏技術最強的人,不斷的接觸新事物、保持謙虛,保持分享和學習;跨出溫馨區, 接受未知的挑戰
  • 學會忍耐:團隊中可能存在與你工做方法、認知不相符的成員,要包容、學會利用不一樣的角度;
  • 接受改變:不要執拗,不要固步自封,接受「我不知道,你有好的想法嗎?」實際上,這也是HRT原則的表現:對外表現出謙虛的態度,不只能夠顯示出可靠性和責任感,還說明你信任別人的觀點,最後,人們也會尊重你的誠實和能力。

下一步:如何在團隊中打造 HRT 氛圍?異步

2. 打造團隊文化

什麼是團隊文化?

團隊文化就像一塊好吃的酸麪糰麪包:劑子(創始人)向麪糰(新成員)注入菌羣(文化),隨着酵母和細菌(團隊成員)的成長,就能夠作出好吃的麪包(團隊)。若是創始文化足夠強大,就能夠同化新成員可能帶來的不和諧因素。2若是創始文化過弱,那麼團隊很容易受到新成員帶來的未知文化的干擾。未知文化帶來的影響難以預測,所以團隊文化的培養仍是從已知創始文化開始爲宜。ide

團隊文化不只僅是團隊成員完成工做、編寫代碼或彼此相處的方式,並且是成員共享的經驗、價值觀和目標。也會隨着團隊成長不斷變化和發展。工具

團隊文化的重要性:學習

  • 一個優秀的工程師不只能爲產品開發做出貢獻,並且也能夠參與產品的決策過程,團隊成員能達成共識。
  • 「共識」是指每一個人對產品的成功都有強烈的主人翁意識和責任感,領導者可以聽取團隊成員的意見(重視HRT中的尊重原則)。在這樣的團隊中,人們有時進行不少討論和思考,有時又須要加快進度。當須要加快進度時,可能會將大量平常瑣碎的決策託付給一位或多位領導者。

成功團隊文化的溝通模式

重視幾種溝通渠道,如郵件列表、設計文檔、聊天室、任務說明書、產品手冊,等等。測試

人少時使用同步溝通(如會議和電話會議),人多時使用異步溝通(如郵件、問題跟蹤系統、文檔註釋)。中斷成本

包括:

  • 高層同步:在最高層次上,團隊須要保持統一的共同目標,在溝通中遵循最佳實踐。
  • 高效會議
  • 設計文檔:設計文檔不只是將來產品的概要藍圖,並且也是與大團隊溝通的低成本方式,能夠傳達你的設計目標及實現方法
  • 面對面 && 異步聊天工具
  • 問題跟蹤系統

工程中的溝通:

  • 註釋
  • 署名:最多能夠指定修改此文件的首選審閱人
  • 代碼提交要有審閱
  • 測試與發佈流程

團隊文化和溝通習慣反映了咱們喜歡的工做方式,可能帶有一些主觀喜愛,時間上一個好的團隊文化下,成員會將更多的時間花在編寫和提交產品上

3. 團隊leader

要關心的事,是全部事,一般技術轉型管理會有一個很大的空虛狀態:原有的工做量化是代碼提交、需求完成,轉型管理後,會有一天下來碌碌無爲的感受。做者舉了一個🌰:這就好像你多年來一直按天天摘的蘋果計算工做量,工做變成摘香蕉以後,你收工時對本身說「我今天一個蘋果也沒摘」,卻對身邊的一大堆香蕉視而不見。對管理工做進行量化比計算組裝好的工具要困可貴多。你不能把團隊的工做成果算成本身的功勞,但保持團隊成員心情愉快、工做高效是衡量你的工做的重要標準。請不要犯摘香蕉時數蘋果的錯誤。

服務型領導:

  • 領導者能作的最重要的事是爲團隊服務,就像管家照料家人的健康和福利同樣。做爲一位服務型領導者,你應當努力營造一種HRT氛圍。惟一須要管理的是團隊的技術和人際關係的健康。

反模式:成爲成功領導者不該陷入的一些模式

  • 僱傭軟弱者。管理者缺少安全感,確保無人質疑其權威和地位,僱傭不如本身、易控制的人。會致使本身在團隊中的角色責任愈來愈重,增長工做量,失去本身的管理,團隊步履維艱。
  • 忽視表現不佳者。管理人最難的部分則是管理那些沒法達到預期的成員,暗自但願表現不佳的成員會忽然有所長進,或者自行離開。而這兩種狀況都極少發生。要儘快處理表現不佳者,設定具體時間計劃,列出但願在此期間實現的具體目標,使失敗容易衡量。這期間若是沒法跟上進度,管理者和表現不佳者都能認清現實、發現問題,或者奮發圖強、或者離開。
  • 與全部人爲友。友誼 !== 溫和的領導方式,保持一視同仁,不能由於友誼產生區別對待,或者由於友誼而致使部分同窗曲意逢迎
  • 放寬招人標準。沒有構建優秀團隊的原材料,只能註定失敗。
  • 把團隊當孩子管。你怎麼對待人們,人們就會怎麼作。所以,若是你把他們當孩子或囚徒對待,他們也會表現得像孩子或囚徒同樣。給予信任,回報信任。

領導模式:

  • 放下自尊。信任團隊,尊重團隊成員的能力和成就,對新成員也是如此。任何人不可能全部事情都作對、都瞭解,也不能解決全部問題,接受批評,真心認可錯誤。道歉不會表現爲脆弱,而會贏得尊重。道歉代表你頭腦冷靜,可以審時度勢。 對照 HRT 原則:態度謙虛;
  • 成爲‘禪意大師’,少發表懷疑言論,保持冷靜。整個團隊都會有意無心地把目光投向本身的 leader,你的狀態、情緒會影響團隊表現。另一個難點是:提出問題,拋掉工程師習慣的解決問題模式,改成提出問題,經過問問題的方式引導問題解決,問的問題要在墊子上。
  • 成爲催化劑。促成共識、驅動團隊/事情朝着正確的方向,略加推進以加速過程的完成。
  • 失敗是一個選項。失敗也不要緊,大部分人不善於評估風險,不遺餘力規避風險,致使人們保守形式,難以追逐大的成功。caseStudy 的目的也是爲了總結經驗、發現漏洞,從失敗中學習。失敗時冷靜分析,不作指責。
  • 成爲老師和導師
  • 設定清晰的目標
  • 以誠相待
  • 關注幸福度
  • 其餘提示和技巧: 放權,但也要作具體工做;尋找接替本身的人;知道什麼時候出手;給團隊一方淨土;保護團隊;贊成有價值的冒險

人和植物同樣,每一個人對關照、水分、養料的需求不一樣,管理者提供的應該是激勵與指引,使團隊保持快樂、高效。

無聊到興奮 -> 須要激勵; 散漫到自主 -> 須要指引
激勵有兩種:源自外部因素(如金錢)的外在激勵和源自心裏的內在激勵
有三樣東西能夠提高人們的內在激勵:自主性、卓越性和目標。

4. 應對‘有害之人’

咱們瞭解構建穩固且溝通良好的團隊文化的重要性,介紹了良好的團隊文化應該包括什麼:基於共識的開發、高質量代碼、代碼審閱,以及鼓勵你們進行新嘗試並從快速失敗中學習的環境等。

這裏的「有害之人」這個詞指代行爲不佳的人。但在實際工做中,最好避免在平常談話中用這個詞!

發現威脅

保護團隊不受有害之人的侵擾,要作的第一件事是瞭解構成威脅的因素是什麼,何時應提升警戒。最可能受到影響的是團隊的注意力和專一力
注意力和專一力是最爲稀缺的資源。

  • 不尊重他人的時間
  • 自大
  • 頤指氣使
  • 溝通幼稚或混亂
  • 疑神疑鬼
  • 完美主義

去除毒素

不少時候咱們不自知,對本身產生的負面影響沒有感知,適當的引導可以幫助咱們改變本身行爲,去掉負面影響。這裏關注的是如何消除行爲,固然屢次努力行爲仍無改觀,趕人走也就成了最後防護。

  • 引導完美主義者的能量
  • 對故意搗亂或者帶偏問題的人不做迴應,保持克制,對方無趣便會放棄堅持。
  • 不要過於情緒化
  • 在憤怒中尋找事實,從中積極尋找事實
  • 以德報怨,表現的樂觀友善會讓不少找茬的人失去興趣;
  • 適時放手,引導和嘗試要有限度,無論你如何努力,最後仍是須要選擇放下,繼續前行

放眼將來

若是見到你以爲可能有害的行爲,你須要向本身提出兩個關鍵問題。

  • 拋開團隊注意力和精力的短時間損失,就長遠來講,你確實相信項目將受益嗎?
  • 你相信這個衝突最終會以一種有益的方式解決嗎?

以上兩個問題中的任何一個答案爲否,那麼你須要出手干預,儘快中止這種行爲。基於HRT的強大團隊文化是不可替代的,但技術能力絕對是能夠替代的,不作無限度的包容。爲了短時間效益而損害團隊文化是不值得的

5. 組織操控

組織操控:理解如何在良好或不佳的公司中工做。大多數人所在的公司都存在各類問題,須要應用某些操控技能纔能有效地完成工做。有些人將此稱爲政治,也有人稱之爲社會工程。

理想狀態

若是你有一位服務型的經理,遵循HRT原則,真心實意想幫助你成功,那麼你能夠作到幾件簡單的事情,使他的工做更容易,從而也使本身工做更高效,在團隊中更有價值。也許更重要的是,作到這些可使你的工做成績更優異,職業更成功。

  • 承擔風險 而且 不懼失敗。
  • 表現得像個成年人。別人採起什麼行動,如何對待你,其實取決於你本身
  • 對不肯定提出疑問
  • 及時向領導回報進度,而不是等着他來問你。

一般狀況

  • 不稱職的經理:懼怕失敗; 缺少安全感而堅持插手; 知識就是力量而不肯意分享; 藏匿信息
  • 辦公室政治家:他成天做出有影響的樣子,而不是實際產生影響。
  • 管理不當的組織:隨着發展,公司會設置機構和流程,以管理利潤、下降風險、提升可預測性,並適應組織自身的龐大規模。長此以往,這些機構會發展到阻礙公司成功的地步。更甚者指揮和控制結構僵化. 缺乏一些重要的東西, 好比焦點/願景/方向

如何解決這種困局?只有跳槽嗎??若是跳槽後的公司也存在這些問題呢???

操控組織

你應當認可事情的現狀,專一於探索公司結構,尋找一些策略用於有效完成工做。

  • 知道什麼狀況是不能被容忍的,從你信任的人那裏得到一些意見也很是重要的;
  • 另闢蹊徑:在公司內作出改變 -> 讓底層接受; 說客 -> 找幾個支持你的人; 想法 -> 不在乎功勞歸誰, 能夠流傳很廣; 中止壞習慣 -> 替換爲好習慣
  • 向上管理:你須要確保本身的經理和團隊外的人不只知道你在作什麼,並且知道你作得很好。儘量少承諾, 多提交; 推出產品放在首位
  • 將工做分爲「進攻性」和「防護性」: 進攻性 -> 產品改進, 用戶可見; 防護性 -> 產品長期健康(代碼重構、功能重寫、格式修改、數據遷移,或者改進的緊急狀況監控);防護性活動能提升產品的可維護性、穩定性和可靠性。可是沒法獲得任何政治功勞,不可見,遵循一個簡單準則:無論欠了多少技術債,團隊花在防護性工做上的時間不該超過所有工做時間的三分之一到二分之一。超出這個範圍都是自尋死路。
  • 運氣和人情經濟: 運氣好的人‘善於創造和捕捉偶然機會’
  • 政治銀行帳戶: 人情經濟
  • 晉升到一個安全職位: 能讓你升職的事情 vs 對公司重要的事情
  • 尋找有影響力的朋友:聯繫人、老員工
  • 寫信尋求高管幫助:「三條要點和一個行爲召喚」:優秀郵件應最多包含三條要點說明當前的問題,以及一個——只有一個——行爲召喚,簡潔,十秒內 看完獲得要點,「當有機會糾正錯誤時,身居高位的人一般會很樂意去作」
  • 備用計劃:撤退。作正確的事,等着被炒;若是你的確無能爲力,那就不要再耗着了,走爲上策。

PS:不是說若是如今的工做幹得不開心就應該更新簡歷立馬走人。相反,你的首要目標應當是做出所需的改變,使本身開心,完成工做目標,不去努力瞭解如何操控所在的組織結構,就沒法掌握本身的職場命運。

6. 用戶也是人

合做不限於團隊,要創造優秀的產品,你還須要積極地與用戶合做,一個沒人使用的漂亮軟件沒有意義。

  • 管理公衆認知:收集用戶反饋,客服、實施、市場,考慮用戶對產品的感性認知。
  • 第一印象:新用戶 30s 內的體驗
  • 少量諾多提交:給預期功能一個保守的時間估計。搶先發布了,客戶會驚喜,google 任何產品不準預先公佈功能。房子團隊內部拼命加班趕工在對外宣稱的不切實際的時間點交付產品。軟件應該真正完成並可用時發佈。
  • 用戶可用性:除非你開發的是軟件工具,不然工程師不會是軟件的用戶。谷歌有一句名言:「關注用戶,其餘便都將水到渠成。」
  • 考慮進入的壁壘:初次使用成本,儘量下降。
  • 設計:以用戶爲先,速度不容忽視(「速度是一個功能。」),切勿求全,隱藏複雜性
  • 管理與用戶的關係:客戶服務, 用戶但願創建聯繫, 有人傾聽; 時間推移, 用戶增多, 平均技術水平下降, 而軟件複雜度上升; 尊重用戶智商; 保持耐心, 最關鍵的傾聽技巧在於學會理解人們想要說的是什麼, 而不必定要試圖解釋他們實際說的是什麼; 創造信任和愉快, 不存在所謂的暫時失去誠信, 信任是最寶貴的資源, 必須從別對本身太嚴肅開始

這一章總結爲三個要點:

  • 市場營銷:瞭解人們對軟件的見解;這決定了他們會不會願意嘗試。
  • 產品設計:若是軟件作不到容易嘗試、速度快、友好,並且用戶面廣,用戶就會流失。
  • 客戶服務 主動與用戶創建長期的良好關係能影響軟件的演化和用戶保持率。
相關文章
相關標籤/搜索