web-dev-qa-db-ja.com

アウトソーシングプロジェクトに取り組むためのヒント/落とし穴

私の会社は私たちのためにiPhoneアプリを開発するために外部の会社を保持しています。 Objective-Cの知識を持っている唯一の内部開発者として、私は当サイトで関連するAPIを開発するだけでなく、すべてが時間どおりにまとめられるようにできることは何でもするように割り当てられています。

特に以前にこの道を進んだことがある人から、私がすべきことや注意すべきことについて何か提案はありますか?

7
Arkaaito

私は過去10年間で、あらゆる規模の300を超えるITプロジェクトを外部委託しました。私自身もアウトソーシング開発者です。

これが私が何度も遭遇した最も問題のある問題とそれらを避けるための提案です(私は難しい方法を学びます)。それらの間違いは私に数十万ドルの費用がかかるので、私が平等であり、バラバラに休むことができるように、提案のおかげであなたができるだけ節約することを願っています:)

  • リポジトリへのアクセスが必要。不可能な場合は、レビューのために毎週完全なソースを送信するようにリクエストしてください。

プロジェクトの最後に、コメントの欠落、ドキュメント、不適切なコーディング慣行など、コードが品質基準を満たしていないことを発見したくありません。作業を頻繁に確認することで、開発フェーズの早い段階でフィードバックを提供できます。

  • 適切なNDAおよびIP割り当て文書に署名したことを確認してください。

これはよくある間違いの1つです。あなたがプロジェクトを外部委託して彼らの仕事の完全な所有権を主張した会社は事態が悪化しました。さらに悪いことに、彼らはあなたが彼ら自身のビジネスのために支払ったものを使うことに決めます。適切なNDAおよび知的財産権の譲渡が署名されていることを確認してください。

  • ソースコードなしで提供されるライブラリのカスタムフレームワークを使用することがよくあります。それがあなたに受け入れられることを確認してください。

あなたが雇った開発者や会社が、彼らが書いたカスタムフレームワークやライブラリを使用することを決定することがあります。あなたが彼らに依存しているなら、これは問題かもしれません。あなたの開発者を変えることはほとんど不可能です。開発ショップは、ライブラリではなく、あなたのために特別に作成したコードについて完全な権利を与える場合があります。それは同じように問題があります。それらなしでプロジェクトを継続する可能性があることを保証することは、あなたが維持したい本当に重要な可能性です。

  • 選択したテクノロジーの標準を使用していることを確認してください

特定のカスタムライブラリを使用していない場合でも、別の問題に直面する可能性があります。業界標準を満たしていない特定のコーディング方法です。最悪の場合、それらなしでメンテナンスを可能にするためにすべてを書き直す必要があります。

  • 期限が重要な場合は、期限を逃した場合に備えてペナルティを要求してください

これは、明示的に指定されていない場合があります。締め切りに間に合わなかった場合はどうなりますか?彼らが時間通りに配達することを妨げる強い内部問題に直面しているとしましょう?緊急に別の開発ショップで開発する予算はありますか?

原則として、そのような作業では仕様が非常に重要であることを付け加えておきます。ですから、そこには多くの責任があります。時間の経過とともに、最初の小さなプロジェクトを会社に提案して最初にテストし、以前に協力していた信頼できるプロバイダーに大きなプロジェクトを予約することが望ましいことを学びました。

22
user2567

上記の答えと一緒に。

  • 可能であれば、一緒に働いている人にインタビューしてみてください。あなたはあなたが一緒に働くつもりの人々の開発とコミュニケーション能力/スタイルを知っているべきです。これにより、通信チャネルも設定されます。

  • 概念実証を依頼します。

  • 要求と設計の段階にもっと注意を向けます。プロジェクトのスケジュールが厳しい場合、要件の安定性は非常に重要です。そうしないと、バグ修正フェーズが不必要にドラッグされます。

0
Reno

私がこれを尋ねるように促したプロジェクトを生き延びたので、私は私の学習を次のように要約します:

信頼するが検証する

アプリやシステムの状態について、外部の会社の担当者が教えてくれたことに頼ることはできません。彼らは要件を誤解したり、開発者からのレポート/質問/問題を伝えなかったり、テストの状態に関するレポートを誤解したり、あまり慈善的ではないが、彼らが持っていない機能を「提供」できると思うかもしれません。まったくテスト済み。

可能であれば、特定の日付に(あなたの!)テスターに​​提供される特定の機能を主張します。そうしないと、プロジェクトの最後に一連の機能が「提供」されてしまい、(a)修正するためにより多くのお金を払うか、(b)自分で修正する必要があるバグの山につながる可能性があります。

0
Arkaaito

Pierre 3 が言ったこと以外に、APIを開発しているので、会社に要求する必要のある追加事項がいくつかあります。

  • 会社が適切なAPIドキュメントも作成していることを確認してください。 doxygen どうやら Objective-Cプログラマーとうまくいく (よく知られているJavaDoc形式を受け入れる)。 APIはパブリックライブラリであり(企業内などのプライベート設定で使用されている場合でも)、十分に文書化されていることが重要です。
  • TDDとBDDを使用したテストを提案します。 BDDには、APIの仕様を作成することが含まれます。これにより、ユーザーと会社の間の開発ループが閉じられます。 APIは通常、TDD/BDDを実行するための最も単純な形式のソフトウェアです。一部の企業はおそらくこれを行う方法を知らないので、私は提案すると言います。
0
Spoike