web-dev-qa-db-ja.com

プログラマー(アウトソーサー)の仕事をコントロールする方法

少し前に、私はWeb開発プロジェクト(phpコーディングとデザイン)を外部委託することに決めました。私はマネージャーと数人のプログラマーとデザイナーと共に海外に小さなオフィスを開設しました。私は始めたばかりですが、すでに彼らの仕事をコントロールするのに問題があります。

プログラマーの中には速い人もいれば、はるかに遅い人もいます。私は彼らに固定給を支払うので、彼らが時間通りに仕事をするかどうかは私にとって重要です。

彼らがオフィスで働くとき、私には少なくともプロジェクトの責任者が彼らが本当に働いたかどうかを教えてくれます。しかし、時には彼らは自宅で仕事をしているので、その場合、彼らが本当にその時間を何らかの問題に取り組んでいたかどうかを知る方法がありません。

私のアイデアのいくつかは次のとおりでした:svnで実行されるコードの量の制御、厳格な期限、毎日のレポート..しかし、私には完璧なものは何もないようです。それは私の側からさらに多くの仕事を生み出します。

実際の仕事に実際にどれだけの時間が費やされたかについて、公正な判断の方法を誰かが提案できますか?人々が働くように刺激する方法は?仕事が早くできたら、ボーナスシステムを作ってみませんか?このトピックに関するアイデア/経験をいただければ幸いです。

4
Kelvin

満たす必要のあるパフォーマンスメトリックと目標を定義する必要があります。何らかのタイプのアジャイルやスクラムを実行している場合は、この問題は発生しません。これを支援する無料のアプリケーションがたくさんあります。ラリー(rallydev.com)は素晴らしいものです(無料ではありません!!)

タイムラインと目標を設定し、それらを保持します。基本的な管理スキルを身に付ける必要があるようです。それらが生成されない場合は、それらを取り除きます。あなたは結果に対して彼らに支払います。ハンバーガーの1/2でマクドナルドに10ドルをあげますか?

あなたがあらゆるタイプの開発者であるなら、あなたはプロジェクトを分解して、各部分の時間の見積もりを考え出すことができるはずです。開発者に見積もりを提出すると、あなたとあなたのチームはそれらについて話し合い、同意することができます。 5時間と言って15と言ったら、5ではなく15になる理由を説明してもらいます。彼らが何を話しているのかわからなくても、BSの匂いがすることがあります。彼らにそれを呼び、彼らにそれを説明させなさい。それはがらくたを削減します。これは私が毎日行っていることであり、困難な従業員でも機能します。

7
DustinDavis

あなたの唯一の尺度は達成であるべきです。

仕事は終わりましたか?

番号?別の開発者を取得します。

とても簡単ですが、なぜ人々が他の人をコントロールしようとするのか(不可能)、あなたがすべきことは彼らとの仕事をやめることなのか、私にはまだわかりません。

アウトソーシングであろうとオフショアであろうと、問題は同じです。唯一の違いは、場所と、4000km離れた場所にいる人を制御しようとするのが難しいという事実です。

17
user2567

あなたが開発者でも経験豊富なプロジェクトマネージャーでもない場合、開発チームを管理しようとする資格が実際にはなく、そうしようとすると、長期的にはフラストレーションとお金の損失につながるだけです。信頼できるチームマネージャーを雇うか、(個々のアウトソーシングされたプログラマーを雇うのではなく)ベンダーにアウトソーシングするか、ソフトウェア開発の詳細を学びます。

3
programmx10

マネージャーとしてのあなたの仕事は、プログラマーをコントロールすることではなく、プログラマーが仕事を成し遂げるために必要なすべてを与えることです。

タスクが希望する速度で進行しない場合は、タスクの所有者を非難するのではなく、何がブロックされているかを分析してください。それは必ずしもプログラマーのせいではありません。正しいツールの不足、入力ドキュメントの配信の遅れ、エアコンの故障などが考えられます。

原則として、問題に直面したときは、根本原因を見つけて解決し、責任者を見つけないでください。

確かに時間とお金がかかります。 Linuxでさえ、ソフトウェアは無料ではありません。確かに、あなたはあなたが支払うものだけを手に入れるでしょう。

3
mouviciel

まず、これは難しい問題です。ある開発者と別の開発者の生産性をランク付けするために使用できる適切なメトリックが実際にはないためです。コード行(LoC)のようなものを使用する場合、1人の開発者が1000以上のLoCしか書き込んでいないことに気付くかもしれませんが、データベースから情報を取得するだけの場合、他の誰かがデータを解析するために書いた200LoCとほぼ同じくらい難しいです。入力されているのですか、それとも厄介なバグを追いかけている誰かによって書かれた1行のコードでさえありますか?

頭に浮かんだアイデアの1つは、実行する必要のあるタスクを入力する追跡システムを用意することでした(つまり、「データベースからxを取得してユーザーに表示する」、「スタックを修正する」オーバーフローしますが、yモジュール ")で、すべての開発者に、各タスクの実行にかかると思われる時間数について「投票」させます。全員に投票してもらうと、それを平均して、開発者が実際に問題を修正しようとしているものと比較してどうなるかを確認できます。多少の調整が必要になる可能性があり、システムをゲーム化する方法はまだありますが、お互いに何を期待しているのかを公正に把握する方法であり、したがって、それらを判断するために使用する公正な指標となる可能性があります。

2
rjzii

開発者の生産性を測定するべきではありません-マネージャーはあなたの代わりにそれを行うべきです。なぜなら彼はそこにいてあなたはいないからです。

1
Jas