成功的軟體開發者需要掌握人際技能的3個原因
Petri Kainulainen是位資深的軟體開發者,擁有多年的軟體開發經歷。他熱衷於軟體開發與持續改進,擅長使用Spring框架進行軟體開發,同時也是Spring Data一書的作者。近日,Petri撰寫了一篇文章,談到了對於軟體開發者來說,掌握人際技能重要性的3個原因。文中談到除了軟體開發本身的技能外,要想在職業生涯中取得更大的成就,良好的人際技能是必不可少的重要因素,文中的觀點對於廣大軟體行業從業者來說頗具實際意義,希望能給各位讀者帶來一些啟示。
有很多人認為要想成為一名優秀的軟體開發者只需掌握相關技術即可,畢竟軟體開發者每天的大部分時間都用來設計軟體和編寫程式碼。從這個角度來看,顯然技術本身是非常重要的。
不過,如果你以編寫軟體為生,那就需要與其他人協作,這包括團隊中的成員、其他同事以及客戶。值得注意的是,這些人對你的期望是各不相同的。
在我剛開始學習軟體工程時,我並沒有認識到這一點。我只是覺得可能犯了個小錯誤而已,但實際上這個問題很有可能毀掉你的聲譽和職業生涯。在我開始從事第一份程式設計工作時,我認識到人際技能對於每個軟體開發者來說都是至關重要的。
那麼,到底什麼是人際技能呢?術語人際技能的一個定義如下所示:
人際技能指的是與其他人高效協作以實現特定目標的能力。
下面就來看看為何說人際技能對於軟體開發者來說是至關重要的。
1. 良好的人際技能有助於你更好地理解客戶
客戶與軟體開發者生活在不同的世界中。不過他們有著共同的目標,那就是一同來解決客戶的問題。
問題在於客戶的很多問題對於軟體開發者來說是不可見的。比如說,客戶可能受到老闆和其他利益干係人的壓力,這會對客戶的溝通交流造成影響。
軟體開發者並不一定能夠理解這一點。相反,他們會抱怨客戶,覺得:
我們的客戶一直在抱怨進度慢。他根本就不知道我們其實已經非常努力了,做什麼事情都需要時間啊。
當然了,客戶也有可能就是個不講道理之人。不過,我認為在絕大多數情況下,客戶都處於巨大的壓力之下,這才會導致他的言談和行為有些異常。
如果你能理解客戶的行為是由某些你看不見的因素所驅使,那麼你就應該以一種高效的方式對此作出反饋。
光是抱怨客戶是解決不了任何問題的,也沒法幫助你更好地瞭解客戶的情況,從而避免產生衝突。事實上,抱怨常常會對你與客戶之間的關係造成更不好的影響。這麼做絕對是一場災難。
2. 人際技能有助於更好地表達出自己的觀點
如果你在一個團隊中工作,那麼你需要理解清楚兩件事:
- 每個人都有一個“隱蔽”的日程安排來指導他們的行為。
- 能夠激發你的事情未必會對團隊的其他成員起作用。
這意味著要想傳播你的觀點,你首先要搞清楚團隊的其他成員在想什麼,什麼才能激發他們。這是因為:
- 如果搞清楚到底是什麼指導著團隊成員的行為,那麼你就能以一種對其他成員有意義的方式來表達出自己的觀點。
- 如果理解了到底是什麼激發著團隊成員,那麼你就能以一種吸引人且具有激發力的方式來表達出自己的觀點。
每次我聽到有人抱怨他們的團隊成員對新事物沒有興趣時,我都認為這個人在以一種錯誤的方式表達著自己的觀點。如果他自己能學習一些新的技術,那至少他的一些想法就能通過自身表達出來。
3. 人際技能有助於建立出更好的APIs
在我開始以編寫軟體為生時,軟體開發者經常會嘲弄使用者介面設計師。我們那時都認為這些使用者介面設計師存在的唯一目的就是用他們那可笑的想法來折磨我們。現在看看,那時的想法可真是幼稚至極。
時至今日,我認為使用者體驗設計是軟體專案中最為重要的環節之一。畢竟,我們編寫的軟體是給人用的。確保軟體能夠提供優秀的使用者體驗是非常有意義的事情。
不過,這與APIs有什麼關係呢?
實際上關係很大。API開發常被認為是一個技術工作。雖然API的實現是個技術工作,不過API的設計卻並非如此。光是理解使用者的需要還不夠,因為很有可能實現了一個能夠滿足需求,但卻沒法使用的API。因此,使用者體驗設計也是API開發的一個重要組成部分!
那這與人際技能又有什麼關係呢?
Wikipedia是這樣定義術語使用者體驗的:
使用者體驗(UX)涉及到使用特定產品、系統或裝置的使用者行為、態度與情緒。使用者體驗包括人機互動與產品所有權的實際、經驗、情感等方面因素。除此之外,它還包含個人對系統的感知和認識,比如說功能性、易用性以及效率等。使用者體驗是動態性的,因為它常常會隨著時間的流逝由於使用環境和系統變化等因素而發生變化。
換句話說,如果想要建立出具有優秀使用者體驗的API,你需要:
- 實現一個提供了全部所需功能的API。
- 理解開發者使用API的方式。
擁有良好的人際技能能夠幫助你實現第2個目標。
你不必成為專家
軟體開發並不是一項孤立的活動。相反,它是一項團隊活動,軟體開發者需要與客戶、團隊的其他成員以及同事相互協作。要想成為一名優秀的軟體開發者,你不必非得是外向型人格,不過你要能理解其他人並與之很好地溝通與交流。
除此之外,你也不必成為一名人類行為學的專家,不過在這方面瞭解得越多,你獲得的收益也會越大。
相關文章
- 軟體測試所需要掌握的技能
- 介面測試人員需要掌握的知識技能
- 軟體測試人員需要具備的硬技能
- Oracle DBA需要掌握的技能Oracle
- 高階軟體測試工程師,需要掌握哪些技能工程師
- 大資料時代,財經類媒體人需要掌握哪些技能大資料
- 軟體訂閱模式成功的原因? - Lenny模式
- 網際網路時代IT人士最需要掌握的一些技能
- 每個Web開發者必備的9個軟技能Web
- 成功軟體開發者的9種程式設計習慣 3 (轉)程式設計
- 軟體開發專案失敗的3個原因
- .Net WEB 程式設計師需要掌握的技能Web程式設計師
- .NETWEB程式設計師需要掌握的技能Web程式設計師
- 幾你需要熟練掌握的辦公軟體
- 轉行Java需要掌握哪些技能?Java
- 開發者應該掌握的3個發行步驟
- 架構師之路:一個架構師需要掌握的知識技能架構
- 後端開發者需要掌握的技術棧後端
- 軟體架構師需要具備的技能 - Abeysinghe架構
- 網路安全的學習,都需要掌握哪些技能?
- SAAS對軟體測試人員的技能要求
- 新媒體運營需要掌握哪些技能?新媒體入門
- 釋出一個軟體,需要多少人?
- 程式設計師需要掌握哪些IT技能程式設計師
- 10個所需的IT技能 助你職場成功
- 成功的軟體釋出的三個要素
- 短影片運營需要掌握哪些技能?新媒體入門
- 新時代的網路工程師需要掌握哪些技能工程師
- 新手UI設計師需要掌握的知識和技能UI
- 程式設計師需要掌握的 6 項相關技能程式設計師
- 新媒體運營需要掌握什麼技能?新媒體學習
- 掌握這10個技能,成為高效的Web前端開發者,就是這麼簡單!Web前端
- 成功軟體開發者的9種程式設計習慣 (轉)程式設計
- Redis、Nginx、SQLite、Elasticsearch等開源軟體成功的原因及它們對IT技術人員的啟示RedisNginxSQLiteElasticsearch
- 初學Web前端開發,你需要掌握的11項技能Web前端
- 研究報告:Java開發人員需要在2019年掌握的技能 - CodementorJava
- 提升軟體開發者效率的10個提示
- 成功軟體開發者的9種程式設計習慣 7 (轉)程式設計