成為軟件工程師是一項了不起的工作!
軟件開發(fā)人員努力實現(xiàn)我們的信條:與出色的人員一起解決問題并遵循最佳實踐,以使(技術)世界變得更加美好。當工程經理一起設計架構和功能時祭陷,他們要與一群熱情,知識淵博的人一起工作趣席】藕可以想象,這可能會很有趣吩坝。
在一個緊密聯(lián)系的團隊中工作并不總是陽光和玫瑰花。當您有一群來自不同地方哑蔫,擁有不同經驗和各種專業(yè)知識的人時钉寝,通常會在如何最佳地開發(fā),實現(xiàn)和使用功能方面存在分歧闸迷。
但是分歧和討論不是主要問題嵌纲。實際上,當人們胸懷開闊的胸懷并專注于最好的結果時腥沽,與其說是“正確的”逮走,不如說是分歧可以創(chuàng)造出更好的解決方案。
開發(fā)團隊之間意見分歧的常見原因
通常有幾個領域會引起討論并導致開發(fā)團隊之間出現(xiàn)分歧今阳。
pull request評論
想象一下:團隊中的一名開發(fā)人員花費數(shù)小時編寫代碼來完成沖刺师溅。他或她努力創(chuàng)建最好的名稱和抽象,以使代碼清晰易讀盾舌,并創(chuàng)建測試以確保所有功能均按預期工作墓臭。然后,開發(fā)人員提交拉取請求妖谴,一旦準備好審查代碼窿锉,則需要另一位開發(fā)人員的批準。
編碼是一門藝術,我們制作杰作的過程是個人的嗡载,但是代碼審閱是強制功能窑多,可確保高質量的代碼和應用程序。
很容易看出來洼滚,批評者并要求進行更改的審閱者可能會引起與作者的緊張關系埂息。涉及自我,每個人都有討厭的“自我利益”偏見判沟。
例如耿芹,開發(fā)人員有興趣在不重做大量代碼的情況下獲得其代碼的批準。為什么挪哄?因為他們還有其他工作需要在沖刺結束時完成吧秕。
另一端是審閱者,負責維護和改進標準迹炼,并確保遵循這些標準砸彬,即使要花更長的時間才能完成檢票。審閱者如何才能將草率的代碼或缺少最佳實踐的代碼納入代碼庫斯入?確保高質量的項目不是他們的責任嗎砂碉?
很明顯,為什么在批準代碼與完成所有請求的更改之間來回回蕩會引起分歧刻两。實際上增蹭,這是完全正常的。溝通和解決問題的方式很重要磅摹。
團隊標準
軟件工程的好處(有時甚至是挑戰(zhàn))是沒有始終每個人都遵循的特定最佳實踐滋迈。意見各不相同,標準也在不斷發(fā)展户誓。這些不僅會出現(xiàn)在代碼審查中饼灿,而且還會在團隊成員之間出現(xiàn)不同意見(例如制表符或縮進行的空格)時產生壓力。
關鍵是要不斷地決定和更新集中式Wiki或文件中的代碼約定帝美。這為審閱者提供了他們可以指向的文檔碍彭,并為請求者提供了指南,這對緊張無意義悼潭。
架構討論
隨著團隊隨著時間的推移開發(fā)其軟件庇忌,他們必須適應和更改其架構,以適應新的設計或功能舰褪∑崦叮可能需要數(shù)據(jù)庫結構或新的微服務,或者它們可能會在堆棧中采用新的框架或庫抵知。
這些領域的經驗是多種多樣的墙基,關于命名約定或所選技術棧的意見可能會決定項目代碼庫的大部分內容软族。它影響團隊中的每個人,因此残制,每個人都有理由偏愛一種解決方案而不是另一種解決方案立砸。
良好的對話可以產生良好的結果,但是團隊應該概述他們?yōu)閷崿F(xiàn)這些討論而試圖達到的一些基線目標初茶。通過這樣做颗祝,他們可以將對話推向特定的最終結果,從而可以權衡各種選擇恼布。
人格差異
顯而易見螺戳,軟件工程師需要精通軟技能。開發(fā)人員全天候進行協(xié)作折汞,并且能夠與他人建立聯(lián)系倔幼,交流他們的想法并找到共同的基礎,從而影響他們的項目的成功爽待。
對于那些每天告訴計算機做什么的人來說损同,開發(fā)這些技能可能會很困難。
在工作中鸟款,我們不能僅僅停止與我們不認識的人一起工作膏燃。我們可能存在真正的人格不匹配,對最佳實踐的看法截然不同或整體溝通風格上的差異何什。這就是團隊工作的生命组哩。
學會撇開分歧以完成工作和實現(xiàn)團隊目標仍然是優(yōu)秀領導者的能力。你也可以做到的处渣!
如何防止團隊沖突
在您生活中的所有討論和分歧中禁炒,都有一個基本真理:您是其中的一部分。
您是否故意挑戰(zhàn)正確的事情霍比?
圍繞討論建立自我意識可以幫助您扎根,拋開情緒暴备,并使您更清晰地思考悠瞬。作為隊友,您必須了解自己無法始終如一涯捻,并且挑戰(zhàn)一切將導致時間和生產力的巨大損失浅妆。
換句話說,只有在影響和利益值得的情況下障癌,才應該挑戰(zhàn)和推動特定的選擇凌外。這里有一些問題要問:
- 決定的結果是否會根據(jù)解決方案影響我,我們的代碼庫或我們的未來涛浙?
- 我是否具有專業(yè)知識康辑,經驗或數(shù)據(jù)來陳述支持或反對討論中的選項的原因摄欲?
- 在提出自己的觀點之前,我是否正在積極傾聽并理解所有觀點疮薇?
- 是否有替代解決方案結合了所有選項的一部分胸墙,從而產生了更好的結果?
- 我是讓自己的情緒引起討論還是引起我的想法按咒?可能需要幾次深呼吸
如果在回答這些問題后仍對某個特定解決方案有強烈的感覺迟隅,請確定如何最好地交流每種選擇的差異,以及為什么您相信一個選擇比其他選擇能獲得更好的結果励七。
你保持開放的心態(tài)嗎智袭?
如果有人不同意您的看法,那么第一個本能不應該是表明他們?yōu)槭裁醋鲥e掠抬,而是要了解他們?yōu)槭裁床煌狻驗椴虏率鞘裁春鹨埃克麄兛赡軐嶋H上是對的!
理解然后合并他們的推理可以設計一個更好的解決方案剿另,或者可以幫助您了解他們的擔憂箫锤,并更好地交流您的解決方案如何減輕他們的困擾。
在開發(fā)團隊中保持開放的態(tài)度可以創(chuàng)建一個安全的環(huán)境雨女,可以在其中挑戰(zhàn)谚攒,討論和改進思想。
解決您的工程團隊之間的分歧
即使在雙方都發(fā)揮了作用之后氛堕,也絕對有可能無法達成協(xié)議馏臭。它發(fā)生了,很好讼稚!問題是:我們從那里去哪里括儒?
這就是解決分歧的這些步驟!
第1步:說話而不是打字
如果最初的異議和討論是從非語言媒體開始的锐想,并且無法達成協(xié)議帮寻,那么下一步將是變焦通話或面對面的聊天。
分歧是很基本的誤解赠摇,這很常見固逗,實際上,要傳達的想法和差異實際上是同一頁面上的兩個人藕帜。發(fā)現(xiàn)在更好的通信媒體上可以在哪里以及如何達成協(xié)議要容易得多烫罩。
如果對話陷入僵局,那就沒問題洽故。讓我們繼續(xù)第二步贝攒。
步驟2:詢問團隊
將辯論和不同的想法進行更廣泛的討論可以將僵局變成解決方案。通過列出每種觀點的不同選擇以及優(yōu)點或缺點时甚,您可以對構想進行全面了解隘弊,并允許所有隊友進行上下文輸入(即使經理在這里也可以權衡其想法)哈踱。
通常,多數(shù)將開始形成并提出解決方案长捧。我發(fā)現(xiàn)大多數(shù)分歧可以在此步驟中解決嚣鄙。
如果您發(fā)現(xiàn)正在形成更高層次的沖突,則這是您的下一步串结。
步驟3:讓您的經理參與
如果您發(fā)現(xiàn)自己與感到敵對的隊友之間經常發(fā)生沖突哑子,分歧或緊張,那么下一步就是讓您的經理介入肌割。
您可以征求他們的意見卧蜓,以解決這種情況或他們可以幫助減輕沖突的方式。希望這可以解決惡劣的工作環(huán)境把敞,否則弥奸,您可能需要將事情帶給人力資源部。
步驟4:參與領導和/或人力資源
即使在讓您的經理參與之后奋早,緊張局勢仍可能持續(xù)盛霎。在這一點上,最好是引入高層領導或人力資源耽装。
您不應在工作中受到威脅或不舒服愤炸,而這些正是可以幫助您解決問題的資源。
步驟5:尋找新的團隊掉奄,或者最糟糕的是離開公司
顯然规个,這是最艱巨的步驟,通常是最后的稻草姓建。但是我們每周都會花費大量時間在工作上诞仓,并且在軟件開發(fā)團隊的要求下進行協(xié)作,這僅表明您希望在一個舒適而有趣的環(huán)境中工作速兔。
如果在嘗試了所有先前的級別并且沖突仍然存在之后墅拭,最后的選擇是在組織內尋找另一個團隊,使您擺脫敵對情緒涣狗,或者開始尋找新公司的工作谍婉。
兩種選擇都可以真正改變您的生活!關鍵是要明智地選擇屑柔,在面試中問很多問題,并找到適合自己的文化珍剑。
結論
軟件工程專業(yè)很少能在其職業(yè)生涯中不斷挑戰(zhàn)和發(fā)展其成員掸宛。技術真正實現(xiàn)了這樣的口號:“生活中唯一不變的就是變化”。
這是一個非常有意義的職業(yè)選擇招拙,它有機會與偉大的人們一起成就世界上的偉大事物唧瘾。像在任何行業(yè)中工作的任何團隊一樣措译,您可能會遇到與同事的沖突和分歧,但是當您這樣做時饰序,您現(xiàn)在就可以有效地處理它领虹。