吸引、管理和留住軟件開發人員的技巧

已發表: 2022-03-11

管理是關於人的。 無論是管理者還是員工,都在思考如何實現個人和職業目標。 這些目標和相關人員的個人特質相結合,最終形成了積極、富有成效和令人滿意的關係,或者有時只是簡單的壓力、要求和衝突傾向。

當然,在後一種情況下,產品質量下降,人員流動增加,實現目標變得更加困難。 因此,就雙方的效率、生產力和自我實現而言,找到一種在經理和員工之間建立獎勵和激勵關係的方法是關鍵。

積極的關係是留住軟件人才的最佳方式。

在管理軟件開發人員時尤其如此,因為他們的工作的技術複雜性和創造性,通常被壓縮到產生結果的狹窄時間表中。 就像在每個老闆與員工的關係中一樣,涉及到許多因素,例如:

  • 個性
  • 目標
  • 期望
  • 政策
  • 組織文化
  • 項目技術細節

在本文中,我們將關注主要的管理方面,而不是技術方面,我們認為任何想要成功留住軟件開發人員的人都應該考慮這些方面。

但在這裡,“成功”不僅意味著取得成果並遵守公司政策、時間表和預算,還意味著擁有一支積極進取、富有成效的軟件開發團隊,他們竭盡全力並長期留在公司。

這將我們引向我們的基本主題:是什麼讓軟件開發人員打勾? 考慮到這一點,我們將介紹一些方法來留住我們在成功的軟件開發團隊中確定的員工。

吸引合適的人

在軟件開發中,你僱傭的人才將決定成敗,而在團隊中進行持續的改變總是會耗費大量的時間和金錢。 因此,一個好的選擇過程對於您的項目的成功至關重要。

招聘啟事

技術招聘人員知道,在招聘軟件開發人員時,一切都始於精心平衡的職位發布。 帖子必須具有激勵作用,才能讓合適的開發人員做出回應——太多或太專業的要求可能會令人沮喪,但如果你太含糊,你的公司可能會收到大量無用的簡歷。

說明詳細的工資和福利方案也是一把雙刃劍,因為您的競爭對手可以使用這些信息來利用他們的薪酬計劃,而開發人員可以嘗試將其用作在招聘期間討價還價的基準。 當然,由於在招聘過程中總要留有協商的餘地,我們建議職位發佈在薪酬方面不要那麼具體,使用範圍而不是固定值。

相比之下,職位發布應在工作職責和要求中盡可能明確,既是強制性的,也是好的。 從紮實的配合開始是我們其他員工保留策略的最佳背景。

面試

在這個過程中,最好在評估候選人時獲得一些建議,看看在面試過程中可以避免哪些陷阱。 我們還將添加到上述資源的指導中,即事先向候選人詢問他們以前工作的一些參考資料通常是對其他驗證其技能的方式的良好補充。

工作機會

當公司提供一份正式文件,總結職位特徵(姓名、等級、地區等)、薪酬方案(工資和福利,如健康、養老金或教育等)時,招聘以向候選人提供工作機會結束。 ,開始日期,時間表,工作地點,以及建立工作合同的要求,如果候選人接受報價。

雖然在這個階段一切都或多或少地完成了,但候選人可能想要談判一些條件,這取決於公司接受或討價還價。 這取決於公司的做法。

然而,公司肯定不會因為原則問題而失去一個好的候選人,所以合理的權衡不會傷害任何人。 在這種情況下,建議向候選人索取一些東西以換取做出的每一個讓步,例如,更早的開始日期、在公司的最短持續時間或公司可能有的任何特殊要求。

管理軟件開發團隊以取得成功

一旦軟件開發人員開始在公司工作,他們的經理就會開始意識到他們是誰,他們是如何工作的,最重要的是,他們產生的結果。 留住軟件工程師則成為一個明確的優先事項。

這就是洞察軟件工程師個性的地方:他們——尤其是高績效者——經常表現出一些共同的特徵。 我們會在進行過程中指出這些模式,但請記住,它們可能並不同樣適用於每個人。 軟件開發項目管理既關乎模式,也關乎異常。

訓練

由於軟件開發是一項技術工作,因此需要對公司的結構、目標、程序、政策(包括信條和業務實踐)和標準(技術和非技術)有非常精確的了解。 因此,開發人員對公司了解得越多,他們就會做出更好的產品,並且花費的時間就越少。

這種基本培訓可以通過文檔、在線 Intranet 課程或演示文稿進行管理。 但這是必要的,因為它會讓新員工清楚。

如果要引入新技術,一定要提供必要的培訓。 軟件開發人員喜歡接受挑戰,但他們可能會討厭在沒有先正確學習新技術的情況下被投入到新技術中。

互聯網上充斥著有價值的學習材料,它通常是軟件開發人員在需要學習或重新學習技術細節時首先求助的資源。 如果你想留住軟件開發人員,就必須促進自學文化,並在必要時給予工作時間。 通過這種方式,團隊將掌握最新的技術和方法,這是軟件開發人員通常非常欣賞的。

資源

一些人認為軟件開發人員尋求最高的技術來完成他們的工作,以及業內可用的最佳規範。 相反,我們認為這取決於手頭的工作。 例如,如果一家公司開發第一人稱遊戲,就需要為開發者提供尖端的計算能力。 但是,如果工作是為事務系統開發後端 Web 服務,那麼一台功能較弱的計算機可能就足夠了。

真正重要的是為開發人員提供完成工作所需的所有必要工具,並對他們對新工具的建議持開放態度。 從邏輯上講,開發人員建議的每個新工具都必須獲得公司的批准(甚至可能之前測試過)並獲得許可。 不過,這是值得的:擁有足夠的資源是開發人員積極性和結果的關鍵因素。 (如果你讓軟件工程師失敗,你就不能指望他們留住他們!)

組織

軟件開發人員喜歡在鼓勵和尊重他們的創造性努力的地方工作,因為他們的工作是白手起家,儘管受到設計、標準和 IT 政策的指導。 因此,開發商需要合理地確信他們屬於一個所有官僚主義和限制最少的單位,只要他們遵守公司的政策並符合其信條。

這並不意味著軟件開發人員與公司其他人相比應該擁有任何特權,而是他們的經理在需要時幫助他們克服或解決官僚主義。 留住軟件開發人員的一個非常重要的方面是他們的老闆對他們的個人需求持開放態度,並在需要時幫助他們。

內部開發單元的安排在這裡也起著關鍵作用。 通常,存在一個測試組,軟件工程經理的職責是保持開發人員和測試人員之間的團隊合作流暢。 這可以簡單地通過明確的方法和流程來實現。 如果雙方都遵守規則,開發人員往往會與測試人員很好地合作,從而保持低衝​​突或不存在衝突。

溝通(定期會議)

如果您想留住軟件開發人員,必須讓他們參與進來。 團隊中的所有成員都應該定期更新目標、影響他們的公司情況、戰略、組織的變化,以及最後但並非最不重要的團隊成就。

即使有一些團隊成員分享一些亮點,也會有利於培養團隊的凝聚力和團隊合作精神。 通常,這些團隊會議(最多兩個小時)應該定期(可能每週)以及在項目的最後階段、危急情況等特殊場合安排。

除了與團隊溝通外,經理還必須建立一種方法來了解每個成員的最新情況,無論是與工作相關的、技術的還是個人的。

  • 工作相關是指員工與公司關係的所有可能方面。
  • 當開發人員遇到問題並且無論出於何種原因,他們都沒有尋求幫助時,就會出現技術情況
  • 如果開發人員分享它們,他們所經歷的個人情況會影響他們的工作以及他們與同事的關係。

通常情況下,每週與每個團隊成員進行 30 分鐘的會議將使經理能夠識別這些情況並提供幫助,從而防止潛在的人事危機並提高團隊成員在公司內的士氣。

需要說明的是,我們不是在談論建立一個以會議為導向的開發單元,因此嚴格的會議紀律(準時、尊重、參與、持續時間)是必要的。 此外,這門學科向開發人員展示了他們為一個非常專業的組織工作,這是他們通常欣賞的。

分配目標和跟進

分配年度總體目標或類似的評估指南是沒有意義的。

在與軟件開發人員打交道時,這是一個明顯的因素:無論他們的角色是什麼(需求收集、架構、設計、編程、測試等),都應該以盡可能清晰的方式向他們提供目標,所以沒有意義在分配年度總體目標或類似的評估指南時。 由於開發人員應該在項目中工作,即有明確的範圍和時間表,分配目標的最佳方式是在項目開始時,包括如何評估進展,如果適用,如何確認進展。

幸運的是,現在有一些方法旨在盡快產生結果,比如敏捷和 Scrum,它們可以簡化後續工作和項目控制。 有時這甚至可以在留住軟件人才方面發揮重要作用:許多開發人員喜歡這些方法,因為它們可以快速交付結果,定期給他們一種成就感。

此外,開發人員通常更喜歡更輕的方法。 他們知道,像 Rational 這樣的高端產品——最終產品是在一個長期的需求工程、設計、開發、測試和實施項目之後交付的——是有風險的,並且可能很難遵循。

衝突管理

這一點同樣適用於軟件開發團隊:軟件工程經理必須迅速有效地處理衝突,否則可能會失控並破壞整個部門的士氣、團隊合作和效率。

假設衝突中的開發人員是專業的和善意的,經理與相關人員會面以啟動清晰的對話並在之後迅速解決應該足以讓團隊繼續前進。 此外,有時有必要給他們一個明確的警告,即個人層面的衝突,如果發生的話,將不會被接受。

無論如何,在這次和解的最後,重要的是雙方都覺得解決方案是公平的,即使其中一方不喜歡它。 衝突有時是生活的一部分,但留住軟件人才意味著在出現這種情況時要以尊嚴對待每個人。

動機

儘管我們已經觸及了影響開發人員動機的許多因素,但還有另一個關鍵方面。 這不是情緒化的,也不是技術性的。 我們正在談論他們工作的報酬率。

儘管在本質上傾向於理想主義,但軟件開發人員通常喜歡物質世界的美好事物。 公司最好確保工資和薪酬計劃與勞動力市場保持一致——行業研究很容易找到——甚至可能對他們的職位更高一點。

此外,大多數軟件開發人員對津貼和獎品並不無動於衷,包括他們可以學習有用的技術以豐富他們的工作的課程和技術活動。

在留住軟件開發人員方面,支持他們在公司內的發展非常重要,無論其具體方向如何。 當軟件工程師沒有表現出繼續擔任領導職位或管理層的願望時,他們反而會欣賞在技術領域的進步。 這包括更高級的認證和正式的學術課程,如碩士學位甚至博士學位。 知識對他們來說是一個非常強大的驅動力。

但是,當他們確實渴望成長為領導職位時,建議對候選人的個性和公司歷史進行徹底的分析。 這可以在人力資源部門或其他公司單位的幫助下,因為良好的管理需要一套完全不同的技能,而不僅僅是技術熟練程度。

如何留住軟件人才:結語

您可能有最好的意圖並遵循上述所有提示,但仍然無法 100% 地留住軟件開發人員——有時外部因素只會產生更大的影響。 但我們認為人員流動可以是健康的並且充滿機會,只要:

  1. 這並不頻繁。 如果是這樣,這將是組織層面出現問題的徵兆。
  2. 它只發生在最有價值的資源中。 在這種情況下,這可能意味著他們將您的公司用作蹦床,即,他們與您在一起只是為了在搬到其他公司之前獲得經驗。

員工保留策略應載入公司政策,而不僅僅是當有價值的人想要辭職時的反應。 反動保留是非常昂貴且有缺陷的:這個人可能同意留下來,但對自己說:“我在這里工作了 X 年,只是為了在離開時得到雙倍的薪水——他們只是承認他們沒有付給我薪水足夠的!”

這個人的下一步是什麼? 他們可能會尋找另一份工作,但現在他們的最低工資是雙倍的。 在這一點上,不惜一切代價挽留軟件工程師可能是不值得的。 除非此人對公司絕對重要(且不可替代),否則最好協商通知期限並立即找到替代人選。

這是一個非確定性的任務

吸引和留住軟件開發人員是一項複雜且不確定的任務,就像科技行業的每個角色一樣。 有許多公司正在尋找有價值的軟件開發人員,但幸運的是,這裡的目標不是戰勝這些公司,而是吸引我們可以設法留住公司的優秀人才。

選擇過程可能需要大量時間和精力。 如果匆忙解決這個問題,你很可能會遇到錯誤的人——谁愿意留住對他們的團隊有害的軟件工程師? 花點時間把事情做好。