管理はすべて人に関するものです。マネージャーであろうと従業員であろうと、どちらも個人的および専門的な目標を達成する方法を考えています。これらの目標と関係する人々の個人的な特徴の組み合わせは、やがて、前向きで、生産的で、充実した、あるいは単にストレスがたまり、要求が厳しく、対立しがちな関係を形作ります。
もちろん、後者の場合、製品の品質が低下し、人員の離職率が高まり、目標の達成がますます困難になります。したがって、マネージャーと従業員の間にやりがいのある、やる気を起こさせる関係を確立する方法を見つけることは、両方の効率、生産性、および自己実現に関して重要です。
これは、ソフトウェア開発者の管理において特に当てはまります。彼らの仕事の技術的な複雑さと創造的な性質のために、結果を生み出すためにしばしば狭いタイムラインに圧縮されます。すべての上司と従業員の関係と同様に、次のような多くの要因が関係しています。
この記事では、技術的な側面ではなく、ソフトウェア開発者を維持することに成功したい人なら誰でも考慮すべきだと考える主な管理の側面に焦点を当てます。
C ++プログラミングを行う方法
しかし、ここでの「成功」とは、結果を達成し、会社の方針、スケジュール、予算を順守するだけでなく、意欲的で生産的なソフトウェア開発チームが最善を尽くして会社に長くとどまるということも意味します。
これは私たちの基本的なテーマにつながります:ソフトウェア開発者を刺激するものは何ですか?これを念頭に置いて、成功したソフトウェア開発チームで特定した従業員を維持するためのいくつかの方法を紹介します。
ソフトウェア開発では、採用した人材が成功と失敗の違いを生み、チームで継続的な変更を行うことは、時間とお金の面で常にコストがかかります。したがって、プロジェクトを成功させるには、適切な選択プロセスが不可欠です。
技術系の採用担当者は、ソフトウェア開発者の採用に関しては、すべて慎重にバランスの取れた求人情報から始まることを知っています。適切な開発者がそれに対応するには、投稿の動機付けが必要です。要件が多すぎたり、専門的すぎたりすると、落胆する可能性がありますが、あいまいすぎると、会社は無駄な履歴書が殺到する可能性があります。
詳細な給与と福利厚生パッケージを記載することも両刃の剣です。競合他社はその情報を使用して報酬プランを活用でき、開発者はそれを採用時の交渉のベースラインとして使用できるからです。もちろん、採用プロセスでは常に交渉の余地が必要であるため、報酬に関しては、固定値ではなく範囲を使用して、求人情報の具体性を低くすることをお勧めします。
対照的に、求人情報は、義務的でありがたいものの両方で、職務と要件において可能な限り明確でなければなりません。しっかりとした適合から始めることは、残りの従業員維持戦略にとって最良の状況です。
プロセスのこの時点で、次のことを行うことをお勧めします。 候補者の評価に関するアドバイスを得る とに 面接プロセス中に回避できる落とし穴を確認する 。また、上記のリソースのガイダンスに、以前の仕事からの参照を事前に候補者に求めることは、スキルを検証する他の方法を補完するのに役立つことが多いというガイダンスを追加します。
会社が役職の特徴(名前、ランク、地域など)、報酬パッケージ(給与、健康、年金、教育などの福利厚生)を要約した正式な文書を提示すると、採用は候補者への求人で終了します。 、開始日、タイムスケジュール、勤務地、および候補者が申し出を受け入れた場合の勤務契約を確立するための要件。
この段階ではすべてが多かれ少なかれ達成されていますが、候補者はいくつかの条件を交渉したいと思うかもしれません、そしてそれらを受け入れるか交渉するかは会社次第です。それは会社の慣行に依存します。
Javaでメソッドをテストする方法
しかし、確かに、会社は原則の問題で良い候補者を失いたくないので、合理的なトレードオフは誰にも害を与えません。この場合、たとえば、より早い開始日、会社での最低存続期間、または会社が持つ可能性のある特別な要件など、行われたすべての譲歩の見返りとして候補者に何かを求めることをお勧めします。
ソフトウェア開発者が会社で働き始めると、彼らのマネージャーは彼らが誰であるか、彼らがどのように働くか、そして最も重要なことに、彼らが生み出す結果に気づき始めます。ソフトウェアエンジニアを維持することは、明確な優先事項になります。
ここで、ソフトウェアエンジニアの個性についての洞察が得られます。彼ら、特にハイパフォーマーは、多くの場合、いくつかの共通の特徴を示しています。これらのパターンについては説明しますが、すべての個人に等しく適用されるとは限らないことに注意してください。ソフトウェア開発プロジェクトの管理は、例外だけでなくパターンにも関係しています。
ソフトウェア開発は技術的な仕事であるため、会社の構造、目標、手順、ポリシー(信条と商慣行を含む)、および標準(技術的および非技術的)に関する非常に正確な知識が必要です。したがって、開発者が会社をよく理解すればするほど、彼らはより良い製品を作り、それを作るのにかかる時間は短くなります。
この基本的なトレーニングは、ドキュメント、オンラインイントラネットコース、またはプレゼンテーションによって管理できます。しかし、それは新入社員に明確さを与えるので、それは必要です。
新しいテクノロジーを導入する場合は、必ず必要なトレーニングを提供してください。ソフトウェア開発者は挑戦されることを好みますが、最初に適切に学習せずに新しいテクノロジーに投げ込まれることに憤慨するかもしれません。
インターネットには貴重な学習資料がたくさんあり、ソフトウェア開発者が技術的な詳細を学習または再学習する必要があるときに最初に利用するリソースであることがよくあります。ソフトウェア開発者を維持したい場合は、自習文化を促進し、必要に応じて、そのための作業時間を与えることが不可欠です。このようにして、チームは最先端のテクノロジーと方法を最新の状態に保つことができます。これは、ソフトウェア開発者が非常に高く評価していることです。
ソフトウェア開発者は、業界で利用可能な最高の仕様を備えた、仕事をするための最高のテクノロジーを求めていると考える人もいます。代わりに、それは目の前の仕事に依存すると思います。たとえば、会社が発展した場合 一人称ゲーム 、開発者に最先端のコンピューティングパワーを提供する必要があります。しかし、仕事がトランザクションシステム用のバックエンドWebサービスを開発することである場合は、それほど強力ではないコンピューターで十分かもしれません。
本当に重要なのは、開発者に仕事をするために必要なすべてのツールを提供し、新しいツールに関する提案を受け入れることです。論理的には、開発者が提案するすべての新しいツールは、承認され(おそらく以前にテストされていても)、会社からライセンス供与される必要があります。ただし、コストに見合う価値があります。十分なリソースがあることは、開発者のモチベーションと結果の重要な要素です。 (失敗するように設定した場合、ソフトウェアエンジニアを維持することは期待できません!)
llccまたはscorp
ソフトウェア開発者は、設計、標準、およびITポリシーに導かれているにもかかわらず、何もないところから何かを作ることが仕事であるため、創造的な努力を奨励し、尊重する場所で働くことを好みます。したがって、開発者は、会社のポリシーに準拠し、その信条に沿っている限り、すべての官僚主義と制限が最小限に抑えられているユニットに属していることを合理的に確信する必要があります。
これは、ソフトウェア開発者が会社の他の部分と比較して特別な特権を持つ必要があることを意味するのではなく、マネージャーが必要に応じて官僚主義を克服または解決するのを支援することを意味します。ソフトウェア開発者を維持する上で非常に重要な側面は、上司が個人的な要件を受け入れ、必要なときに支援することです。
ここでは、内部開発ユニットの配置も重要な役割を果たします。多くの場合、テストグループが存在し、開発者とテスターの間でチームワークを流動的に保つことはソフトウェアエンジニアリングマネージャーの義務です。これは、明確な方法論とプロセスを持つだけで達成できます。両方の当事者が従うべきルールがある場合、開発者はテスターと非常にうまく連携する傾向があり、競合を低く抑えるか、存在させません。
ソフトウェア開発者を維持したい場合は、彼らをループに保つことが不可欠です。チームのすべてのメンバーは、目的、メンバーに影響を与える企業の状況、戦略、組織の変更、そして最後に重要なこととして、チームの成果について定期的に更新する必要があります。
多くのチームメンバーがいくつかのハイライトを共有することでさえ、チームの結束とチームワークを促進するのに役立ちます。通常、これらのチーム会議は、最大2時間、定期的に(おそらく毎週)、プロジェクトの最終段階や危機的な状況などの特別な機会にスケジュールする必要があります。
チームとのコミュニケーションに加えて、マネージャーは、仕事関連、技術的、または個人的なすべてのメンバーの状況を最新の状態に保つ方法を確立する必要があります。
通常、すべてのチームメンバーと毎週30分間の会議を行うことで、マネージャーはこれらの状況を特定して支援を提供できるため、潜在的な人的危機を防ぎ、社内のチームメンバーの士気を高めることができます。
明確にするために、私たちは会議指向の開発ユニットを設立することについて話しているのではないので、厳格な会議の規律(時間厳守、尊重、参加、期間)が必要です。さらに、この分野は、開発者が非常に専門的な組織で働いていることを示しています。これは通常、彼らが高く評価していることです。
毎年の一般的な目標や同様の評価ガイドラインを割り当てることには意味がありません。
これは、ソフトウェア開発者に対応する際の明確な要素です。彼らの役割(要件の収集、アーキテクチャ、設計、プログラミング、テストなど)が何であれ、目的は可能な限り明確に与えられるため、意味がありません。毎年の一般的な目的または同様の評価ガイドラインを割り当てる際に。開発者はプロジェクトで作業することになっているため、つまり、明確な範囲とタイムラインで作業することになっているため、目標を割り当てる最善の方法は、プロジェクトの開始時に、進捗状況を評価する方法と、該当する場合はそれらを認識する方法を含めることです。
幸いなことに、今日では、アジャイルやスクラムのように、フォローアップとプロジェクト管理を簡素化する結果をできるだけ早く生成することを目的とした方法論があります。これは、ソフトウェアの才能を維持する上で重要な役割を果たす場合もあります。多くの開発者は、結果を迅速に提供し、定期的に達成感を与えることができるため、これらの方法論を気に入っています。
さらに、開発者はより軽い方法論を好むことがよくあります。彼らは、Rationalのようなハイエンドのもの(要件エンジニアリング、設計、開発、テスト、および実装の長いプロジェクトの後に最終製品が提供される)はリスクが高く、従うのが難しい場合があることを知っています。
これは、他の種類のソフトウェア開発チームと同じように当てはまります。ソフトウェアエンジニアリングマネージャーは、競合に迅速かつ効果的に対処する必要があります。そうしないと、制御不能になり、ユニット全体の士気、チームワーク、および有効性が損なわれる可能性があります。
対立する開発者が専門的で意図的なものであると仮定すると、マネージャーと関係者とのミーティングで、後で迅速な解決を伴う明確な対話を開始することで、チームは先に進むことができます。また、個人レベルでの対立が起こったとしても、それが受け入れられないことを明確に警告する必要がある場合もあります。
kubernetesは、あらゆるコンテナ化製品で動作するように設計されています
いずれにせよ、この和解の終わりに、たとえ一方がそれを気に入らなくても、双方が解決策が公正であると感じることが非常に重要です。対立は人生の一部である場合もありますが、ソフトウェアの才能を維持することは 尊厳を持ってすべての人を扱う そのような状況が発生するときはいつでも。
開発者のモチベーションに影響を与える多くの要因に触れてきましたが、もう1つの重要な側面があります。これは感情的でも技術的でもありません。私たちは彼らの仕事に対する報酬の割合について話している。
本質的に理想主義的である傾向があるにもかかわらず、ソフトウェア開発者はしばしば物質界の良いものを好みます。会社にとって、給与と報酬プランが労働市場と一致していることを確認することは常に良いことです。 業界研究 見つけるのは簡単です—そして多分彼らの位置のために少し高いです。
また、ほとんどのソフトウェア開発者は、仕事を充実させるための便利なテクニックを学ぶことができるコースやテクノロジーイベントなど、特典や賞品に無関心ではありません。
ソフトウェア開発者を維持することになると、特定の方向性に関係なく、社内での成長をサポートすることが重要です。ソフトウェアエンジニアがリーダーシップのポジションや管理職に移行することをあまり望んでいない場合、代わりに技術分野での進歩を高く評価しています。これには、より多くの上級資格や、修士号や博士号などの正式な学術プログラムが含まれます。知識は彼らにとって非常に強力な推進力です。
ただし、彼らがリーダーシップの地位に成長することを熱望する場合は、候補者の性格と会社での歴史を徹底的に分析することをお勧めします。これは、人事部門または他の企業ユニットの助けを借りて行うことができます。優れた管理には、技術的な熟練を超えたまったく異なるスキルのセットが必要になるためです。
あなたは最善の意図を持っており、上記のすべてのヒントに従うかもしれませんが、それでもソフトウェア開発者を100%維持することはできません。場合によっては、外部要因が単により大きな影響を与えることもあります。しかし、次の場合に限り、人員の離職は健全で機会に満ちていると考えています。
オラクルデータベース設計のベストプラクティス
貴重な人が辞任したいときの反応だけでなく、従業員の定着戦略を会社の方針に盛り込む必要があります。反動的な保持には非常にコストがかかり、欠陥があります。その人は滞在することに同意するかもしれませんが、自分自身に考えてみてください。「私はここでX年間働いて、去るときに2倍の給料を提供されました。足りる!'
この人の次のステップは何ですか?彼らは別の仕事を探すかもしれませんが、今では最低給与が2倍になっています。現時点では、ソフトウェアエンジニアを何としても維持しようとする価値はないでしょう。その人が会社にとって絶対的に基本的(そしてかけがえのない)でない限り、通知期間を交渉し、すぐに代わりを見つける方が良いかもしれません。
ソフトウェア開発者を引き付けて維持することは、テクノロジー業界のすべての役割と同様に、複雑で非決定論的なタスクです。価値のあるソフトウェア開発者を探している企業はたくさんありますが、ありがたいことに、ここでの目標はこれらの企業に勝つことではなく、会社にとどまることができる優秀な人材を引き付けることです。
選択プロセスには、多大な時間と労力がかかる可能性があります。急いでこれに取り組むと、間違った人になってしまう可能性があります。チームに有毒なソフトウェアエンジニアを維持したいのは誰ですか。代わりに時間をかけて正しく実行してください。
特別な仕事にのみ報酬を与え、過失に対して公平になります。業界で支払われる平均給与を定期的にチェックし、それに応じて調整します。厳密に必要な場合を除いて、退職したい人を引き留めようとしないでください。代わりに、会社の方針として保持を提唱します。
厳格かつ公正な選択プロセスを持ち、急いで雇うことはありません。求人市場に合わせた、またはそれ以上の報酬パッケージを提供します。
仕事に必要なツールを提供します。必要なたびにチームをトレーニングし、自習を促進します。
断定的で明確であること。定期的なチームミーティング。定期的な個別ミーティング。
紛争に迅速、公正、かつ効果的に対処します。チームワークを促進します。
漠然とした年間目標よりも、プロジェクトごとの具体的な目標を優先します。信頼できるソフトウェア開発方法論を適用します。具体的な結果に基づいて評価します。