web-dev-qa-db-ja.com

リモートソフトウェアエンジニアのチームを管理する上で、どのような推奨事項がありますか?

私はいくつかのプロジェクトのプロジェクト管理も担当しているWebアプリケーション開発者です。契約ベースで私のために働いているリモート開発者を管理する必要があることもあります。ときどき管理が難しいと感じます。奇妙な状況に直面しています。例えば:

  • プロジェクトを提供しなければならない間、開発者が2日間応答しなかったことがありました。 (通話に参加したり、メールに返信したりしませんでした)
  • 開発者が静的ソリューションを使用してCMSをテンプレート化すると(これは専門知識が少なかったと思います)。
  • 開発者に検索機能の完成を依頼すると、翌日彼は完了したと言いましたが、私が見たところ、完了していませんでした。 彼は検索を行っていたが、検索結果リストのフォーマットをしていなかった:)を知った。 (彼は家で仕事をしている間彼の時間を管理することができないと思います)

それでは、適切な人がいないということですか?または、私がカバーする必要があるプロジェクト管理の問題がありますか?時々誤解が生じる可能性があることを理解しています。そのため、unfuddleやbasecampなどのツールを使用して書面で通信する必要がありますが、たとえば上記の状況で何ができるでしょうか?開発者として、少なくとも2年の経験があります。

だから私は実際に知りたい:問題はどこですか?私はプログラマーであり、プログラマーがこれらのことを理解していることを知っています。そのような場合はどうすればよいですか?

15
Hafiz

あなたの正確な状況がわからないので、何が起こっているのかを伝えることは非常に困難です。それにもかかわらず、ここにあなたに適用されるかもしれないし適用されないかもしれないいくつかの要素:

1。コミュニケーション

自分の考えを明確に伝えていますか?つまり、これらの開発者が何をすべきかを正しく理解していることを確信していますか?

2。管理

何かを依頼するだけでは十分ではない場合があります。大規模なプロジェクトでは、機能要件/非機能要件、受け入れテストなどがあります。これらはすべて、時間を浪費するだけのものではありません。期待を明確にし、それらの期待が確実に満たされるようにすることは有用です。たぶん、実際のプロジェクト管理で使用されているテクニックをもっと使うべきでしょう。

。開発者とのつながりを保つ

開発者を野放しにした場合、その開発者が作業を終了するように圧力をかけられなくなる可能性があります。それはデイリーWTFでのインターンに関する話のようなものです。インターンに何かを依頼し、このインターンを忘れて、数週間後、仕事が完了しておらず、その人は現在、奇妙に違うことをしていることがわかります。説明を求めるのが怖かった。

4。追跡

接続を維持するだけでなく、何が行われているかを定期的に監視することをお勧めします。バージョン管理サーバーにコミットするよう開発者に依頼することは良い考えです。毎日更新を取得し、問題が発生した場合に必要な対策を迅速に講じるだけでなく、開発者に最初から作業を強いることになります。そして、最終日の仕事を維持しません。

別の方法は、電話またはビデオ会議で行われた作業について毎日あなたに報告するように開発者に依頼することです。私はこれが嫌いで、私にそうするように頼む誰かのために働くことは決してありませんが、それは他の開発者ととてもうまく働くかもしれません。

22

これはフリーランサーの採用の一環だと思います。そして、これが、個人から必要な応答と作業を取得し、彼らに、あなたが物事がどのように行われると期待するか、そしてあなたが望むことを理解する時間を与える理由です。フリーランサーを雇うことは常にその時間を提供するとは限りません。

私はたいてい、聞くのが上手で、かなり熟練している人たちに固執するのが好きです。それは珍しいパンですが、私はそれらをうまく扱うようにしています。そして、私はそこのスキルに感謝します。手紙で行く人々は、より明確な指示を必要とする傾向があります。もう少し時間がかかりますが、私はこれを好みます。それから私は何が行われるかを正確に知っています。また、交渉後に契約に追加することはできません。彼らがこれを知っていると思っていたとは言えません。詳細が契約に含まれていることを確認してください。

反対側は「チーム」契約です。これらの人は物事を成し遂げる可能性が高いですが、彼らは多くの場合、コミュニケーションの点でプロよりも劣っています。彼らは明らかにインテリジェントな人口統計を扱うのではなく、中古車を販売するべきであるように聞こえます。ここでの私の見解は、専門家に劣る行動に対処する価値があるとしても、値札がどれほど優れていて、どれほど簡単であっても、チームではありません。

応答しないことについては、彼らが契約していなければ、それについて多くを言うことはできません。もしそうなら、あなたが彼らのプロフェッショナリズム、または契約のレビューにおけるコミュニケーションを評価することを彼らに知らせてください。アンビバレンスは、結果を微妙に思い出させることで、かなり迅速に軌道に乗ることができます。

柔らかくなりすぎず、才能を保ち、傲慢を拒否します。それは要約します。

ポールV.

3
Paul

私が行う1つの実用的なことは、前払いで半分を支払うことです。その後、仕様が完成したら残りの半分を支払います。仕様を満たしていない場合、残りの半分は取得できません。それはトラブルを求めているので、私は無制限の時間給をしません。時間ごとの見積もりを事前に求め、その数に応じて支払います。そうしないと、時間どおりに終了する動機がありません。唯一の鍵は、期待を明確に定義し、それを開発者に伝えることです。また、あるプロジェクトで誰かを雇い、彼が私をねじ込んだ場合、私は二度と彼を雇うことはありません。結局、あなたはいくつかのかなり良いフリーランサーを手に入れます。あなたがそれらをうまく支払って、あなたが残業の悪いものを間引くならば、あなたはあなたがあなたのプロジェクトのために彼らのスケジュールを片付けるだろう常連を手に入れることがわかるでしょう。

もちろん、これらすべては@MainMaの提案に追加されます。

2
Jonathan Henson

私はクライアントのリモートチームの管理を支援します。これらは(アジャイルとスクラムに基づく)私たちが従うベストプラクティスです。

  1. デイリーSkypeスタンドアップ-毎日、チーム全員がスカイプに15分間乗り、調整とコラボレーションを行います。昨日やったこと、今日予定していること、障害があるかどうかについて話し合います。
  2. 一貫性のあるチームを維持する-私たちは同じ人々をプロジェクトに引き留め、彼らが顧客との関係を築き、彼らのニーズを真に理解できるようにします。さまざまな部分をさまざまな人に下請けして、別々に管理することはありません。彼らは単一のチームとして運営する必要があります。
  3. ウィークリーデモ-1週間のスクラムスプリントに従います。これは、多くのスクラムチームが行うよりも短い時間ですが、私たちにとっては、顧客と毎週デモを行うことが重要です。これを頻繁にデモすることは、リモートプロジェクトでは非常に重要です。これは、顧客からのフィードバックがなければ、あまり長くはかからないためです。検索スタイリングではなく検索を実装した例は、これらの通常のデモの1つに含まれるものです。
  4. 詳細な契約に基づく軽量の週次計画セッション。他の誰かが契約に言及しましたが、私の経験では、フリーランサーが行う必要があることを明確に定義するのに役立ちません。数週間または数か月前に彼らが何をする必要があるかを確実に予測できない可能性が高いので、代わりに、1時間あたりの支払額と請求できる最大時間を非常に明確にする契約を結んでください。 。次に、毎週スコープを調整し、翌週の最も重要な優先事項は何か、およびそれらの優先事項に対する「完了」の定義を明確に指示します。これにより、スコープを管理し、チームに明確な指示を与え、予算内に収めることができます。

この返信は元の投稿の後にきちんと届いているので、特定のプロジェクトの課題が解決されて久しぶりです。しかし、この記事に出くわす可能性がある他の人に役立つ場合に備えて、私はとにかく返信したかった。幸運を!

2
Arin Sime

一見すると、あなたが指摘する問題は、リモートでの作業とはほとんど関係がなく、面接プロセスと関係があります。

契約リソースとベンダーへのインタビューは、残酷に困難です。実際、非常に難しいので、請負が必要な小規模プロジェクトの場合、最初の2つのプロジェクトを面接プロセスの一部として考えるだけで効率がよくなり、いくつかの成功したエンゲージメントが主要なスキルを反映した後でのみ、ベンダーを信頼できると見なします。 。

私のチームが新しいベンダーのために使用するコアインタビュータスクは次のとおりです。

  1. 技術スキル:私たちは1時間を費やして、新しいリソースが時間の初めに彼らに与える問題へのコードを書くのを監視します(画面共有ソフトウェア付き)。開発者はコードを記述でき、高品質の明確な質問をして、割り当てられたタスクを確実に理解できることを期待しています。また、優れたコミュニケーションスキルも求められます。コードを記述できず、記述しているコードについて話すことができない場合、効果的にコラボレーションすることができません。

  2. コミュニケーションスキルと実務経験:候補者がコードを記述し、彼らが何をしているかについて話すことができるとわかったら、履歴書を一緒に歩き、以前の経験について話します。本当のコラボレーション経験はありますか?これまでのところ、彼らのキャリアの選択を導いてきたものは何ですか?

インタビュープロセスの最後に、私たちは、あなたがプロジェクトに参加したいと思っている人々が戦うためのリソースを探しています。候補者をチームに入れることを切望する面接担当者がいない場合は、うまくいきません。このプロセスは、賢くて物事を成し遂げる人を見つける方法に関するJoel Spolskyの執筆と、Brad Smartのトップグレーディングに関する本に強く影響を受けています。

今あなたが呼びかけている問題として:

  • MIA開発者:これは仮想または対面の開発者で発生する可能性があり、通常は慎重にスクリーニングしなかった場合にのみ発生します。利用可能であると約束したのにベンダーが表示されない場合は、仮想かIRLかに関係なく、ゲームオーバーです。
  • CMS w /静的ソリューション:必要な経験がない人にプロジェクトを渡すと、オフィスにいるかどうかに関係なく失敗します。
  • 仕事が終わっていない:繰り返しになりますが、オフィスでも事実上でも、仕事を終えない開発者との経験はたくさんあります。ほとんどの場合、これは誰かにプロジェクトを与える前の不十分な技術スクリーニングの結果です。

私の経験では、オフィスと仮想チームの両方で15年以上の経験があり、効果的な開発者は通常生産的であり、時間の浪費は通常時間の浪費です。私は自分の力ですべてを行い、効果的な開発者と協力し、彼らが好む仮想業務と社内業務のあらゆる組み合わせでそれらをサポートします。時間の無駄な開発者と協力する必要がある場合は、彼らが価値を破壊し、オフィスにいるかどうかに関係なく、チームからロールオフできるまで影響を最小限に抑えるように努めます。ない。

1
Elijah

自分用のオプションを作成することに集中してください。

プロジェクトと予算に余裕がある場合は、複数のプログラマを雇ってください。これは健全なレベルの競争を生み出すはずであり、それは常に良いことです。これにより、チーム間で知識が共有され、冗長性が向上します。

1
dcunited001

給与を支払う人に、コンサルタントの時間に対するあなたの期待はどうあるべきか、そして仕事の質に満足できない場合はどうすべきかを尋ねる必要があります。それが確立されると、誰もがこのプロジェクトに参加したいかどうかを決めることができます。小さな状況ごとに特定のルールを確立することはできません。さもないと、常に警戒し、何もしないことになります。理想的には、誰もが正しい態度を持ち、プロとして振る舞います。個人的には、時間の制約について前向きに考え、期待することを尋ねるのに十分な経験を持つ請負業者が好きです。私の犬の飼い主は、隣人に追加の鍵を手に入れたことを確認しました。旅行中は常に連絡先の電話番号を残し、彼女は緊急時に他の専門家のネットワークを利用できます。顧客を認定してロジスティクスを処理するとき、それはあなたが何をしているのかを知っており、信頼できることを示しています。

MIAは2日間ですか?週末でしたか?

1
JeffO

私はoDeskに、開発者がプロ​​ジェクトをコーディングしているときにPMがスクリーングラブを取得できる機能があることを知っていますが、直接の経験から、連絡先を通じて紹介されるコーダーに固執し、ロジスティクスの煩わしさのためにあらゆるコストでアウトソーシングを避けています。

0
theonlylos