ソフトウェア開発者を引き付け、管理し、維持するためのヒント

公開: 2022-03-11

管理はすべて人に関するものです。 マネージャーであろうと従業員であろうと、どちらも個人的および専門的な目標を達成する方法を考えています。 これらの目標と関係する人々の個人的な特徴の組み合わせは、やがて、前向きで、生産的で、充実した、あるいは単にストレスがたまり、要求が厳しく、対立しがちな関係を形作ります。

もちろん、後者の場合、製品の品質が低下し、人員の離職率が高まり、目標の達成がますます困難になります。 したがって、マネージャーと従業員の間にやりがいのある、やる気を起こさせる関係を確立する方法を見つけることは、両方の効率、生産性、および自己実現に関して重要です。

ポジティブな関係は、ソフトウェアの才能を維持するための最良の方法です。

これは、ソフトウェア開発者の管理に特に当てはまります。これは、ソフトウェア開発者の仕事の技術的な複雑さと創造的な性質のために、結果を出すためにしばしば狭いタイムラインに圧縮されているためです。 すべての上司と従業員の関係と同様に、次のような多くの要因が関係しています。

  • 性格
  • 目標
  • 期待
  • ポリシー
  • 組織文化
  • プロジェクトの技術的詳細

この記事では、ソフトウェア開発者を維持するための管理に成功したい人は誰でも考慮すべきであると考える、技術的な側面ではなく、主要な管理の側面に焦点を当てます。

しかし、ここでの「成功」とは、結果を達成し、会社の方針、スケジュール、予算を順守するだけでなく、意欲的で生産的なソフトウェア開発チームが最善を尽くし、会社に長くとどまるという意味です。

これは私たちの基本的なテーマにつながります:ソフトウェア開発者を刺激するものは何ですか? これを念頭に置いて、成功したソフトウェア開発チームで特定した従業員を維持するためのいくつかの方法を紹介します。

適切な人々を引き付ける

ソフトウェア開発では、採用する人材が成功と失敗の違いを生み、チームで継続的な変更を行うことは、時間とお金の面で常にコストがかかります。 したがって、プロジェクトを成功させるには、適切な選択プロセスが不可欠です。

求人情報

技術系の採用担当者は、ソフトウェア開発者の採用に関しては、すべて慎重にバランスの取れた求人情報から始まることを知っています。 適切な開発者がそれに対応するには、投稿にやる気を起こさせる必要があります。要件が多すぎたり、専門的すぎたりすると、落胆する可能性がありますが、漠然としていると、会社は役に立たない履歴書が殺到する可能性があります。

詳細な給与と福利厚生パッケージを記載することも両刃の剣です。競合他社はその情報を使用して報酬プランを活用でき、開発者はそれを採用時の交渉のベースラインとして使用できるからです。 もちろん、採用プロセスでは常に交渉の余地が必要であるため、報酬に関しては、固定値ではなく範囲を使用して、求人情報の具体性を低くすることをお勧めします。

対照的に、求人情報は、義務的でありがたいものの両方で、職務と要件において可能な限り明確でなければなりません。 堅実な適合から始めることは、残りの従業員維持戦略にとって最良の状況です。

インタビュー

プロセスのこの時点で、候補者の評価に関するアドバイスを取得し、面接プロセス中に回避できる落とし穴を確認することをお勧めします。 また、上記のリソースのガイダンスに加えて、以前の仕事からの参照を事前に候補者に求めることは、スキルを検証する他の方法を補完するのに役立つことがよくあります。

求人

会社が役職の特徴(名前、ランク、地域など)、報酬パッケージ(給与、健康、年金、教育などの福利厚生)を要約した正式な文書を提示すると、採用は候補者への求人で終了します。 、開始日、タイムスケジュール、勤務地、および候補者が申し出を受け入れた場合の就労契約を確立するための要件。

この段階ではすべてが多かれ少なかれ達成されていますが、候補者はいくつかの条件を交渉したいと思うかもしれません、そしてそれらを受け入れるか交渉するかは会社次第です。 それは会社の慣行に依存します。

ただし、確かに、会社は原則の問題で優れた候補者を失いたくないので、合理的なトレードオフは誰にも害を及ぼしません。 この場合、たとえば、より早い開始日、会社での永続性の最小時間、または会社が持つ可能性のある特別な要件など、行われたすべての譲歩の見返りとして候補者に何かを求めることをお勧めします。

成功のためのソフトウェア開発チームの管理

ソフトウェア開発者が会社で働き始めると、彼らのマネージャーは彼らが誰であるか、彼らがどのように働くか、そして最も重要なことに、彼らが生み出す結果に気づき始めます。 その場合、ソフトウェアエンジニアを維持することが明確な優先事項になります。

ここで、ソフトウェアエンジニアの個性についての洞察が得られます。彼ら(特にハイパフォーマー)は、多くの場合、いくつかの共通の特徴を示しています。 これらのパターンについては説明しますが、すべての個人に等しく適用できるとは限らないことに注意してください。 ソフトウェア開発プロジェクトの管理は、例外に関するものであると同時にパターンに関するものでもあります。

トレーニング

ソフトウェア開発は技術的な仕事であるため、会社の構造、目標、手順、ポリシー(信条と商慣行を含む)、および標準(技術的および非技術的)に関する非常に正確な知識が必要です。 したがって、開発者が会社をよく理解すればするほど、彼らはより良い製品を作り、それを作るのにかかる時間は短くなります。

この基本的なトレーニングは、ドキュメント、オンラインイントラネットコース、またはプレゼンテーションによって管理できます。 しかし、それは新入社員に明確さを与えるので、必要です。

新しいテクノロジーを導入する場合は、必ず必要なトレーニングを提供してください。 ソフトウェア開発者は挑戦されるのが好きですが、最初に適切に学習せずに新しいテクノロジーに投げ込まれることに憤慨するかもしれません。

インターネットには貴重な学習資料がたくさんあり、ソフトウェア開発者が技術的な詳細を学習または再学習する必要があるときに最初に利用するリソースであることがよくあります。 ソフトウェア開発者を維持したい場合は、自習文化を促進し、必要に応じて、そのための作業時間を与えることが不可欠です。 このようにして、チームは最先端のテクノロジーと方法を最新の状態に保つことができます。これは、ソフトウェア開発者が非常に高く評価していることです。

資力

ソフトウェア開発者は、業界で利用可能な最高の仕様を備えた、仕事をするための最高のテクノロジーを求めていると考える人もいます。 代わりに、それは目の前の仕事に依存すると思います。 たとえば、企業が一人称ゲームを開発する場合、開発者に最先端のコンピューティング能力を提供する必要があります。 ただし、トランザクションシステム用のバックエンドWebサービスを開発することが仕事である場合は、それほど強力ではないコンピューターで十分な場合があります。

本当に重要なのは、開発者に仕事をするために必要なすべてのツールを提供し、新しいツールに関する提案を受け入れることです。 論理的には、開発者が提案するすべての新しいツールは、承認され(おそらく以前にテストされていても)、会社からライセンスを取得する必要があります。 ただし、コストに見合う価値があります。十分なリソースがあることは、開発者のモチベーションと結果の重要な要素です。 (ソフトウェアエンジニアを失敗させるように設定した場合、ソフトウェアエンジニアを維持することは期待できません!)

組織

ソフトウェア開発者は、設計、標準、およびITポリシーに導かれているにもかかわらず、何もないところから何かを作ることが仕事であるため、創造的な努力を奨励し、尊重する場所で働くことを好みます。 したがって、開発者は、会社のポリシーに準拠し、その信条に沿っている限り、すべての官僚主義と制限が最小限に抑えられているユニットに属していることを合理的に確信する必要があります。

これは、ソフトウェア開発者が会社の他の部分と比較して特別な特権を持つ必要があることを意味するのではなく、マネージャーが必要に応じて官僚主義を克服または解決するのを支援することを意味します。 ソフトウェア開発者を維持する上で非常に重要な側面は、上司が個人的な要件を受け入れ、必要なときに支援することです。

ここでは、内部開発ユニットの配置も重要な役割を果たします。 多くの場合、テストグループが存在し、開発者とテスターの間でチームワークを流動的に保つことはソフトウェアエンジニアリングマネージャーの義務です。 これは、明確な方法論とプロセスを用意するだけで実現できます。 両方の当事者が従うべきルールがある場合、開発者はテスターと非常にうまく連携する傾向があり、競合を低く抑えるか、存在させません。

コミュニケーション(定例会議)

ソフトウェア開発者を維持したい場合は、彼らをループに保つことが不可欠です。 チームのすべてのメンバーは、目的、メンバーに影響を与える企業の状況、戦略、組織の変更、そして最後になりましたが、チームの成果について定期的に更新する必要があります。

多くのチームメンバーがいくつかのハイライトを共有することでさえ、チームの結束とチームワークを促進するのに良いでしょう。 通常、これらのチーム会議は、最大2時間、定期的に(おそらく毎週)、プロジェクトの最終段階や危機的な状況などの特別な機会にスケジュールする必要があります。

チームとのコミュニケーションに加えて、マネージャーは、仕事に関連するもの、技術的なもの、個人的なものなど、すべてのメンバーの状況を常に把握する方法を確立する必要があります。

  • 仕事関連とは、従業員と会社との関係のすべての可能な側面を意味します。
  • 技術的な状況は、開発者が問題で立ち往生していて、何らかの理由で彼らが助けを求めていないときに現れます。
  • 開発者がそれらを共有する場合、彼らが経験している個人的な状況は、彼らの仕事と彼らの同僚との関係に影響を与える可能性があります。

通常、すべてのチームメンバーと毎週30分間の会議を行うことで、マネージャーはこれらの状況を特定して支援を提供できるため、潜在的な人的危機を防ぎ、社内のチームメンバーの士気を高めることができます。

明確にするために、私たちは会議指向の開発ユニットを設立することについて話しているのではないので、厳格な会議の規律(時間厳守、尊重、参加、期間)が必要です。 さらに、この規律は、開発者が非常に専門的な組織で働いていることを示しています。これは通常、彼らが高く評価していることです。

目標の割り当てとフォローアップ

毎年の一般的な目標や同様の評価ガイドラインを割り当てることには意味がありません。

これは、ソフトウェア開発者に対応する際の明確な要素です。彼らの役割(要件の収集、アーキテクチャ、設計、プログラミング、テストなど)が何であれ、目的は可能な限り明確に与えられるため、意味がありません。毎年の一般的な目標または同様の評価ガイドラインを割り当てる際に。 開発者はプロジェクトで作業することになっているため、つまり、明確な範囲とタイムラインで、目標を割り当てる最良の方法は、プロジェクトの開始時に、進歩がどのように評価され、該当する場合はどのように認識されるかを含めることです。

幸いなことに、今日では、アジャイルやスクラムのように、フォローアップとプロジェクト管理を簡素化する結果をできるだけ早く生成することを目的とした方法論があります。 これは、ソフトウェアの才能を維持する上で重要な役割を果たす場合もあります。多くの開発者は、結果を迅速に提供し、定期的に達成感を与えることができるため、これらの方法論を気に入っています。

さらに、開発者はより軽い方法論を好むことがよくあります。 彼らは、Rationalのようなハイエンド製品(要件エンジニアリング、設計、開発、テスト、および実装の長いプロジェクトの後に最終製品が提供される)はリスクが高く、従うのが難しいことを知っています。

紛争管理

これは、他の種類のソフトウェア開発チームにも当てはまります。ソフトウェアエンジニアリングマネージャーは、競合に迅速かつ効果的に対処する必要があります。そうしないと、制御不能になり、ユニット全体の士気、チームワーク、および有効性が損なわれる可能性があります。

対立する開発者が専門的で意図的なものであると仮定すると、チームが先に進むには、マネージャーと関係者とのミーティングで、後で迅速に解決する明確な対話を開始するだけで十分です。 また、個人レベルでの対立があったとしても、それが受け入れられないことを明確に警告する必要がある場合もあります。

いずれにせよ、この和解の終わりに、たとえ一方がそれを気に入らなくても、双方が解決策が公正であると感じることが非常に重要です。 対立は人生の一部である場合もありますが、ソフトウェアの才能を維持することは、そのような状況が発生したときはいつでも、すべての人を尊厳をもって扱うことを意味します。

モチベーション

開発者のモチベーションに影響を与える多くの要因に触れてきましたが、もう1つの重要な側面があります。 これは感情的でも技術的でもありません。 私たちは彼らの仕事に対する報酬率について話している。

本質的に理想主義的である傾向があるにもかかわらず、ソフトウェア開発者はしばしば物質界の良いものを好みます。 会社にとっては、給与と報酬プランが労働市場と一致していることを確認することを常にお勧めします。業界の調査は簡単に見つけることができます。

また、ほとんどのソフトウェア開発者は、仕事を充実させるための便利なテクニックを学ぶことができるコースやテクノロジーイベントなど、特典や賞品に無関心ではありません。

ソフトウェア開発者を維持することになると、特定の方向性に関係なく、社内での成長をサポートすることが重要です。 ソフトウェアエンジニアがリーダーシップのポジションや管理職に移行することをあまり望んでいない場合、代わりに技術分野での進歩を高く評価しています。 これには、より多くの上級資格や、修士号や博士号などの正式な学術プログラムが含まれます。 知識は彼らにとって非常に強力な推進力です。

ただし、彼らがリーダーシップの地位に成長することを熱望する場合は、候補者の性格と会社での歴史を徹底的に分析することをお勧めします。 優れた管理には技術的な熟練度を超えたまったく異なるスキルのセットが必要であるため、これは人材育成部門または他の企業ユニットの助けを借りて行うことができます。

ソフトウェアの才能を維持する方法:最後のコメント

あなたは最善の意図を持っており、上記のすべてのヒントに従うかもしれませんが、それでもソフトウェア開発者を100%維持することはできません。場合によっては、外部要因が単により大きな影響を与えることもあります。 しかし、次の場合に限り、人員の離職は健全で機会に満ちていると考えています。

  1. 頻繁ではありません。 もしそうなら、これは組織レベルで何か問題があることの兆候です。
  2. それは最も価値のあるリソースでのみ発生します。 この場合、彼らはあなたの会社をトランポリンとして使用していることを意味する可能性があります。つまり、彼らは他の会社に移動する前に単に経験を積むためにあなたと一緒にいます。

従業員の定着戦略は、貴重な人が辞任したいときの反応だけでなく、会社の方針に盛り込まれている必要があります。 反動的な保持には非常に費用がかかり、欠陥があります。その人は滞在することに同意するかもしれませんが、自分自身で考えてみてください。足りる!"

この人の次のステップは何でしょうか? 彼らは別の仕事を探すかもし​​れませんが、今では最低給与が2倍になっています。 現時点では、ソフトウェアエンジニアを何としても維持しようとすることは、それだけの価値がない可能性があります。 その人が会社にとって絶対的に基本的(そしてかけがえのない)でない限り、通知期間を交渉し、すぐに代わりを見つける方が良いかもしれません。

これは非決定論的なタスクです

ソフトウェア開発者を引き付けて維持することは、テクノロジー業界のすべての役割と同様に、複雑で非決定的なタスクです。 価値のあるソフトウェア開発者を探している企業はたくさんありますが、ありがたいことに、ここでの目標はこれらの企業に勝つことではなく、会社にとどまることができる優秀な人材を引き付けることです。

選択プロセスには、多大な時間と労力がかかる場合があります。 急いでこれに取り組むと、間違った人になってしまう可能性があります。チームに有毒なソフトウェアエンジニアを引き留めたいと思う人はいますか? 代わりに時間をかけて正しく実行してください。