オフショア開発チームの管理

オフショア開発チームの管理:生産性を向上させるための実践的なノウハウ

目次

はじめに

開発者の仕事がいかに大変か、考えたことがありますか?ただ大変なだけでなく、時には非現実的な日程をこなさなければなりません。また、開発者が作るソフトウェアに依存してビジネスが成り立っているため、他の従業員にはないストレスに直面します。

その結果、開発者が日常的にトラブルに遭遇すると、開発作業に支障をきたす可能性があり、作業を中断するたびに、コードを書き直すのに時間がかかります。特に、集中力がない人にとっては、それだけでも深刻な問題かもしれません。

では、開発者が日中に直面する共通の課題を克服するために、どのような支援をすればよいのでしょうか。それは、意外と難しいことではないのです。同時に、ソフトウェアエンジニアが他の従業員から孤立するような雰囲気を作らない必要があります。開発者を完全に孤立させたり、他のメンバーより優れていると感じさせたりすることは避けなければなりません。

しかし、エンジニアが品質を犠牲にしなく納期を達成できるように、頻繁に起こる障害を解決するための支援が必要です。では、どうすれば生産性の問題を解決できるのでしょうか。

関連記事

開発者の生産性を測定する方法

従来、開発者の生産性は、コード行数、機能数、プロジェクト数で測定されていました。その際、納品された製品の品質や標準への適合性は必ずしも考慮されません。これは生産性の指標ではありますが、実際には有用ではありません。この統計を改善するために、企業は以下に挙げる開発者の生産性指標をより重視するようになりました。

技術的負債

コードの実装、変更、パッチ適用時に発生する余分な作業の量を技術的負債と呼びます。例えば、バグに対するパッチは効果的ですが、次のバージョンをリリースすれば、技術的負債を引き起こすことがよくあります。複雑さ、標準の違反、資料の不足はすべて、技術的負債を増加する原因となります。開発者の生産性を数値化するためには、どれだけの技術的負債が蓄積されたかを考え、それに対する生産性を比較・検討する必要があります。

終了したタスク

開発プロジェクトにおいて、仕事を分解し、追跡する方法として、チケットとカンバンボードが有効です。どのような手法であれ、実行した仕事の数を記録すれば、生産性を評価するのに役立ちます。多くの開発ツールは、チーム、プロジェクト、メンバーごとにこの量を迅速に計算するため、支援機能を備えています。

上手くオフショア開発チームのパフォーマンスを保証するために、以下の要素を考慮してください。

  • タスクの完了
  • 完成予定時期
  • タスクの優先順位

ドキュメンテーション

開発者は、資料作成を嫌う傾向があります。なぜそのような書き方をしたのか、その構造を知らない人に説明するよりも、コードを書く方が簡単と思います。それでも、資料作成は、コードを簡単に保守できるようにするために重要です。

資料は、保守性を高めるために、開発者の生産性指標に含まれるべきです。そうしないと、開発者が自分の仕事を適切に文書化するのを妨げ、製品全体の品質を低下させることになります。この属性は、ページ数または属性で測定できます。文書が不十分な場合や非効率的な場合は、それを許容するようにします。

デプロイ

ユーザーが使える商品をリリースするプロセスをデプロイと呼びます。デプロイは、顧客が代金を支払う製品であるため、プロジェクトで最も価値のあるステップです。この指標は、パイプラインを使用して追跡できます。このメトリックを最大限に活用するためには、デプロイされた機能のサイズ、複雑さ、および重要性を評価する必要があり、デプロイには複数のエンジニアの労力が必要な場合があります。

開発者の生産性を向上させる方法

割り込みの防止

開発者が直面する最も一般的な問題の一つに、「割り込み」があります。不要なミーティング、立ち入り、電話、オフサイト出張、オンサイト訪問などがその例です。開発者の作業を中断すれば、中断時間の長さだけでなく、開発者がコードを作成できるようになるまでにかかる時間も長くなります。そのため、それまでの文章を見直し、狙いを検討し、最終的には仕事に戻る必要があるかもしれません。

開発者が一日中作業を中断されると、ダウンタイムが蓄積されます。開発者の生産性を向上させるには、彼らが最もコードを書くことに集中できるよう、自由度を与える必要があります。

非開発業務の解除

マネージャーは、開発者に開発以外の仕事を割り当てる可能性があります。例えば、ユーザー登録、請求書作成、チーム管理、あるいは軽度の管理業務などを任せます。このような仕事は、開発者に支払ったタスクである「開発」を妨げるもので、邪魔なものになると考えるべきです。

エンジニアがソフトウェア開発という唯一の目的に集中できるように、頻繁にエンジニアの状態を確認すべきです。開発以外の業務を軽減すると、開発者の生産性を高めることにつながります。

スタッフの声に積極的に耳を傾ける

これが意外と難しいです。積極的なリスニングには、単に言葉を聞くだけではありません。言葉の裏にある意味や、その言葉の原動力となる姿勢に耳を傾けなければなりません。実際に従業員の意見を聞き取れば、彼らがどんな課題を抱えているのか、どんなニーズが満たされていないのか、よりよく理解できます。これはおそらく、自分が考えている程度よりもずっと大きな問題です。開発者の声に積極的に耳を傾けるようになれば、彼らが直面している課題を理解し、どうすれば効果的に対処できるかを理解する態勢が整うでしょう。

可能な限り柔軟に対応する

開発者に厳しくし過ぎると問題が出てきます。生産性を上げるには、開発者に自分が適応できることを示す必要があります。そのためには、リリース期限(これは守るべきですが)、スケジュール管理、リモートワークなどの形が考えられます。開発者に厳しくすればするほど、開発者は仕事中にストレスを感じるようになります。

楽しく働けるだけでなく、開発者固有のニーズにも対応できる柔軟な環境を整えましょう。時間の制約がある中でよく働く開発者がいる一方で、過度に興奮し生産性が低下する開発者がいるかもしれません。このようなことは、それぞれの開発者がどのように活動しているかを理解し、彼らの仕事での好みに合わせて対応できるようになれば、結果的に生産性が飛躍的に向上します。

量より質を重視する

エンジニアに巨大なワークロードを要求したくなるものです。しかし、それは間違いです。確かにエンジニアはコードを書かなければなりませんが、質よりも量を優先させる考え方は破滅の源です。開発者が求めるのは、可能な限り質の高いコードを書くことです。そうすると、開発スピードが遅くなるように見えるかもしれませんが、コードのテスト期間と開発工程全体が短縮されます。開発工程が短くなれば、より早く、より安定したリリースが可能になります。品質を目標にすれば、その利点を得ます。

カンバンボードの採用

本当にエンジニアを支援したいなら、カンバンボードを使いましょう。これらの使いやすいプロジェクト管理ツールは、開発者が仕事の進捗を把握し、チームの協力をより簡単にするのに役立つかもしれません。さらに良いことに、カンバンボードは、中間管理職を排除するのに役立ち、開発の中断や開発以外の雑用を減らすのに役立ちます。

さらに重要なのは、カンバンボードによって、各作業がプロジェクトのタイムテーブルのどの位置にあるのかを視覚的に把握できます。これにより、開発者は納期を保証でき、ゴールまでに急がなければならないストレスを避けます。カンバンボードは、簡単に導入でき、低コストで、エンジニアとビジネスの双方に大きなメリットをもたらすソリューションです。

オフィス内の個人用ブースは極力避ける

企業によっては難しいかもしれませんが、エンジニアがオフィスで個人用ブースを使って仕事をするのは逆効果です。前述したように、ものづくりは難しいからこそ、開発チーム同士のチームワークが必要なので、個人用小室はそれを阻害します。

どうしても個人用ブースを使いたい場合は、開発者全員が同じフロアにいるようにします。そうすれば、お互いを尊重し、気が散ることも最小限に抑えます。一方、最善のシナリオは、開発チームにドアを閉めて生産的に働けるオフィスを提供することです。

まとめ

開発者に対して1から10まで、全てに対処する必要はありませんが、職場の典型的な気晴らしになるようなちょっとした配慮し、開発者の生産性を高めることができます。開発者の生産性が上がれば、ビジネスの成果も上がるはずです。 

CMC Japanについて

ベトナム第2位のICT企業である当社、CMCグループは、ベトナム政府主導の新型コロナウイルス対策に準拠し、ハノイおよび、ダナン・ホーチミン市の3拠点で、オフショア開発を継続して提供しています。

中長期的なリソース計画や開発コストの最適化をご検討の企業様は、お問い合わせフォームよりご連絡ください

当社は日本のお客様に「止まらない、持続可能な開発」をベトナムオフショア開発で支援しています。

【動画】【2022年版】2分でわかる!オフショア開発とは?

ベトナムオフショア開発の活用で、コスト「60%」削減!! & 開発期間「1/2」短縮を実現できた事例をご紹介!

高品質なオフショア開発なら当社にお任せ!
【お役立ち資料】 ベトナムオフショア開発入門書
資料ダウンロード

資料は下記のフォームを送信して頂くと完了画面またはメールにてダウン口一ドできます

Previous
Next