開發軟體是一個非常情緒化的工作,團隊中的每一個人都希望這個軟體可以獲得成功,而有的時候這種情緒會在團隊中制造緊張氣氛。軟體團隊中流行着這樣一句話:“你必須要挑選你自己的戰鬥。”那麼問題來了,如何做這樣的決定?你要跟誰幹仗?
勝利和失敗
團隊在協作的時候,他們其實也在時刻彼此“鬥争”中。在我看來,所謂的“勝利”隻有一種情況:就是你成功說服另外一方,讓他們接受你的想法,認同你的想法,讓他們相信你的想法能讓軟
件變得更好。但是,“失敗”卻有着多種情況。如果你讓團隊中的某一個人覺得他的貢獻沒有價值,團隊就會經曆失敗。還有産品本身也存在失敗,例如在産品初期沒有看到一些有價值的評論,或是錯失了以更低的成本開發新功能的機會。

勝利劇本:
在策劃會議上,一個開發人員指出,他找到了一個開發前制圖工具,這個工具可以迅速繪制大多數産品功能圖。然後産品團隊表示他們願意采納這個開發人員的建議。
失敗劇本:
在編碼稽核會議上,稽核人員給程式設計人員施壓,要他們立刻做出改變,短時間内顯著提升軟體的性能,但是稽核人員并沒有做出任何解釋,沒有告訴開發人員這樣做會給團隊帶來什麼好處。于是開發人員拒絕了稽核人員要他們加班加點的要求。
在和團隊中的其他人打口水仗之前,問問你自己下面幾個問題:
你能勝利嗎?
如果你反對産品的發展方向,但是這個問題團隊成員之前已經讨論了多次,而且你此前已經闡述了自己的擔心,那麼你或許應該冷靜一下。因為在這個問題上你很可能無法獲得勝利。
如果你是技術團隊負責人,而某個編碼稽核人員并沒有按照你給項目定下的标準來對軟體編碼進行稽核,那麼這個時候你就應該勇敢的和對方開戰——但是要小心。和對方針鋒相對的“互撕”并不能起到作用,一次心平氣和的談話效果會更好。
值得嗎?
這個問題對你的産品影響嚴重嗎?如果你想推遲商務計劃,優先解決産品功能問題,你要先想一想你能為公司在日後節省多少時間。如果隻是幾個小時,那麼這不足以整個團隊為你而改變。如果你能為公司節省一周的時間,那麼這個問題絕對值得你擺到桌面上和大家一起分享。
假設你是一位編碼稽核人員,在一次編碼稽核會議上,另一位開發人員提出了一個新的不錯的pr,但是它在風格上與你的風格不符,于是你想要和他争辯。
在這個時候,你應該問自己下面幾個問題:
你的回報能否成為編碼庫最好的選擇?
你的想法能否給軟體帶來巨大的提升?
編碼的可讀性是否存在問題?
如果上面所有的問題,你的回答都是no,那麼你最好不要在這個時候去争辯。這樣做可以讓開發人員覺得自己活得了應有的尊重,他們會覺得自己寫出了優秀的代碼。
挑戰别人的工作方式能否給你的産品帶來明顯的好處?
在每一場優秀的戰役中,參與方都在為了一些比自身更重要的東西而奮鬥。在你挑戰隊友的時候,你應該有着足夠好的理由,值得你去和隊友争辯的理由。
在商業層明上,當你挑戰同僚的時候,你的目标應該是給産品的可讀性和可行性帶來更多的價值。在挑戰其他開發人員的時候,你的目标應該是提高編碼的品質,讓産品更穩定、更可控。
選擇失敗的戰役
雖然我鼓勵你去參加那些把握性更高的戰役,但是有的時候,選擇一場注定失敗的戰役也是很重要的事情。這讓你可以更進一步,加強團隊成員之間的了解,讓所有人都看到産品中需要改進的地方。
例如,在面對産品團隊的時候,你可以故意提出一個你其實覺得很難用的ui設計。雖然你的建議不會被接受,但是在這個過程中,你的團隊成員将會各抒己見,提出自己對現有ui的想法,進而完善産品現在的ui,讓産品ui變得更好用。
當你在和另一位開發人員讨論的時候,選擇一場失敗的戰役,給你帶來的好處,就是讓你們雙方都獲得寶貴的學習機會。你可能覺得你的代碼已經很完美,但是其他開發人員總是能給你提出值得改進的地方。在一些情況下,這種讨論和研究甚至有可能會讓你們之間找到一個更好的解決方式。
兩敗俱傷的戰役
我們都見過那些兩敗俱傷的争論。通常情況下,當雙方開始人身攻擊,不再就事論事的時候,兩敗俱傷就無可避免了。在這種情況下,雙方最常見的話語就是:“我不喜歡你的代碼/設計/工作方式。”
甚至你自己也經曆過這樣的事情,尤其是當你某一天心情不好,而你的同僚又來挑戰你的時候。我們都會這樣。當你意識到這種情況即将發生的時候,你就應該先後退一步,在平複心情之後,在找到對方進行一次沒有互相攻擊的對話,用這樣的方式來解決問題。
如果是對方先開始攻擊你,你可以先允許自己生氣一會兒。當你冷靜下來之後,然後和對方進行一次對話,客觀的闡述自己的想法和擔心。
打磨你的“戰鬥技能”
沒 有任何一個人會永遠勝利,了解何時應該挑戰同時,何時應該控制自己,這是一個技巧,一個隻能在實踐中學習的技巧。我曾經在很多次争論中失敗,有的是因為準 備不足,有的是因為我提出了一個并不重要的問題。還有的時候,我本應該馬上提出自己的想法,但是卻在當時忍了下來(這也是我寫這篇文章的原因之一)。
情況越緊張,争論的價值越大,我發現在這種情況下,我們總是能将産品和團隊打磨的更好。你是否也有這樣的政策,用來決定自己何時應該質疑别人,何時應該沉默不語?