自社の製品を開発するためにアウトソーシングする代わりに、社内のソフトウェア開発者を雇うのはなぜですか?[閉まっている]


23

貴社の製品開発において、アウトソーシングよりも社内で採用する理由は何ですか?私はほんの少ししか考えることができませんが、それらが十分な理由であるかどうかは完全にはわかりません。

これは実際にクラスで議論するためのものです。私はアウトソーシングの部分にもっと傾いていますが、残念ながら、私は議論の社内側に切り替えるように頼まれました。

何か案は?


1
明確にするために、アウトソーシングとは、単に外部の会社を意味しますか、それとも口語的に使われるオフショア(つまり、国外)を意味しますか。
GrandmasterB

教授がアウトソーシングを言ったとき、私は教授の両方を意味していると確信しています。
テレンスポンス

38
宿題の質問を外注する方法が好きです:p
glasnt

回答:


26
  • 社内のチームは実際にはあなたの会社の一部であるため、あなたのニーズにより敏感に反応します。
  • 社内のチームはコミュニケーションが簡単です。通常の対面のコンタクトに勝るものはありません。
  • 社内チームには、外部チームが学習しなければならないドメイン固有の知識がさらにあります。
  • ソフトウェアに投資するだけでなく、会社が抱えるソフトウェアの問題を解決する専門知識に投資しています。独自の開発者を使用すると、これらの特定の問題に以前に対処したことがあるプログラマーのストックが蓄積されます。

(反論については、ジョエルの見解を参照してください。)


5
ジョエルのリンクへの取り組みは、「社内開発者になりたくないのはなぜですか」と思われました。
MIA

幾分。歴史的なポイントの1つは、社内開発ではくだらないソフトウェアも作成される傾向があることです。
フィッシュトースター

8
アウトソーシングされたくだらないソフトウェアに関する恐怖物語がたくさんあるので、その特定の次元を一般化することは不可能だと思います。
MIA

+1:ずっと。当社は、開発者の外部委託チームに依存しています。私は彼らが5年間でスタッフに就いた最初の「開発者」です。具体的には、アウトソーシングされた会社への依存を減らし、社内に持ち込むためです。
IAbstract

6
すべてのソフトウェアの90%はくだらないものであり、過小評価されている可能性があります
jk。

11

ソフトウェアを戦術的または戦略的に使用する場合、またはビジネスの核となる場合は、ビジネスを理解しているプログラマーがいることが重要です。また、サポートとライフサイクル、およびリリース後のシステムをサポートするために企業にかかる費用を理解する必要があります。

一般的に、コストが本当の要因だとは思いません。誰かがそうだと主張するなら、彼らは無知か嘘をついている。アウトソーシングする場合、コストに加えて他の人の利益率を支払います。地理的な労働市場の違いによる節約は、通常、コミュニケーションと教育のコストの増加ですぐに埋め合わせられます。発展途上国は理由で呼ばれているため、料金の差は以前ほど大きくありません。

そこには多くの種類のソフトウェアがあります。多くの場合、あなたは何かをアウトソーシングして大丈夫です。問題は、その決定はケースごとに行われる必要があることであり、すべての状況に適合する単一サイズでそれを解決することはできません。

意思決定プロセスには、百万ものものがあります。

明確に指定された中核となるソフトウェアの開発は、その種の仕事に特化した企業に簡単にアウトソーシングされる場合があります。たとえば、デバイスドライバーやWebサーバーなどのシステムレベルのものは、アプライアンスを作成し、ビルディングブロック以上のユーザーエクスペリエンスに特化したい会社。

一方、そのWebサーバーを特別な方法で駆動し、それが明確に指定されていても、このコンポーネントを主要なマルチフェーズ開発イニシアチブと緊密に結び付ける場合は、おそらくそうではありません」それを外部委託したい


3

これは遅い回答ですが、より一般的な「外注ではなく、社内でXを雇うのはなぜですか?」-言い換えれば、すべてを外部委託する単一のCEOではなく、なぜ企業が存在するのか?-「会社の理論」と呼ばれる

http://en.wikipedia.org/wiki/Theory_of_the_firm

また、さまざまな理由からかなりの証拠と研究があり、さまざまな労働力と資本を「アウトソース」と「インソース」で比較することが理にかなっています。


2

社内で行う理由の1つは、特定の国に輸出できないデータ暗号化技術を使用しているためです。

反復モデルを使用して対面で通信できる小規模のローカル開発者チームが使用される場合、ソフトウェアはほぼ間違いなく、より高い品質でより高速に実行され、顧客の期待に応えることができます。

反復モデルは、おそらくアウトソーシングではあまり効果的ではありません。アウトソーシングでは、BDUF(事前に大きな設計)を使用して、要件を開発するためのより多くの作業が必要です。

アプリケーションが大きく、ありふれたものの一部を小さく、明確に定義されたライブラリに分割できる場合、アウトソーシングはそれらの部分を作成するのに役立ちます。


2

会社が開発を行うためのリソースや開始するためのノウハウさえ持っていない場合、アウトソーシング(ローカル)は理にかなっています。たとえば、Androidアプリを作りたい靴会社。彼らが社内でそれを行うのはあまり意味がありません。ソフトウェア会社の場合、プロジェクトのアウトソーシングはあまり意味がありませんが、外部の請負業者でいくつかのギャップを埋めることができます。

別の形態のアウトソーシングがあります...企業を買収して製品を入手し、ブランドを変更します。つまり、大企業は既存の製品を検索して購入し、自社製品としてブランド変更します。その最終的な効果は、アウトソーシングと本質的に同じです。

オフショアリングについては、それは必ずしもマネージャーがあなたに考えてほしいと思う良い財務上の決定ではありません。ほとんどの開発で必要とされるドメイン知識(業界知識)が多すぎて、単にそのように購入することはできません。


1

私たちには小さな内部チームしかなく、小さな外部チームしか使用していませんが、内部で作成されたソフトウェアは、外部で作成されたソフトウェアよりもずっと優れています。

内部的には、文書化されたパターン、適切なビジネスレイヤーロジック(データレイヤー内の他のメソッドを呼び出して、実際のロジックをどこにも返さないDataTableを返すクラスだけでなく)を使用し、適合する他のアプリケーションから再利用できるコードのライブラリがあります私たちのドメイン。


1

おそらく、何を構築する必要があるかを正確に知らないからです。


1
また、範囲を大幅に変更することなく、合意した要件を最終的な成果物として受け入れた顧客はいますか?社内の開発者は、明確化されていない要求に基づいてさまざまなシナリオを固め、思い付くことがあります。
ジェキュー

0

それはさまざまな要因に依存します:

ソフトウェア製品を開発している場合; 明らかに、それに関連する秘密の計画、機密性、新しいアイデアなどを持っている必要があります。これにより、ソフトウェア開発要件をアウトソーシングするよりも社内で行うほうがより敏感になります。

一方、予算が限られている場合、またはハードコアな開発よりも販売およびマーケティング活動に重点を置きたい場合、または現在のチームが処理できる以上のワークフローがある場合。ソフトウェア開発のアウトソーシングを利用できます。

したがって、それはすべてあなたの好みに依存します。どちらのオプションにも長所と短所があります。単純なWebサイトを開発する必要がある場合は、Webサイト開発会社を雇って外部委託し、CRMやERPなどのソフトウェア製品を作成する必要がある場合は、社内で行うことを選択します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.