様々なソフトウェア開発を経験してきた視点から、開発、マネジメント、経済などについて書いています。タイトルは、あるレトロゲームからのオマージュ。ツイッターアカウントはこちら。開発において、余程の小規模で無い限り、外注は不可欠です。外注を使う理由は、だいたい以下に分かれます。採用するマネージャには、ある視点が抜けていることが多い気がします。今日のまとめ外注は高コスト外注にしろ、業務委託にしろ「外部の人材に開発を任せる」という時点で低コストではありません。それは、外注先に支払う費用だけの問題ではありません。開発プロジェクトのコストは、人的要因により容易に増加します。外注する場合は、このことを考慮する必要があるわけです。プロジェクトの業務領域に精通していないチームは、かなり多くの時間を要する。複数サイトに跨って実施されるプロジェクトは、1ヵ所に作業場所を集結したプロジェクトに比べて56%も多くの工数がかかる。プロジェクトの離職率が高いと、費用がかかる。議論の多いチームに比べて効率よくソフトウェアを開発する。上記の表は、スティーブ・マコネル氏の『ソフトウェア見積り』よりの抜粋です。(外注時に考慮した方がよい因子を抜粋しました。増加させる可能性がある、という意味です。開発というのは、結局のところ「自社の開発者に長く働いてもらい、自社の開発者のみで開発する」というのが一番安上がりなのです。開発コストは、以下の2つを駆使して、相対的に下げていくしかありません。外に出す」ことに集中してしまいます。本当に意識しなければいけないのは(社内の)人材投資という視点です。若いうちに、身になる仕事・新しい仕事をいかに沢山こなすか、にかかっています。マネージャは、社内の仕事を外注するときは、いかに「外注した成果物が、いかにスムーズに納品されるか」を計画しますが(これも大事ですが)、実はいかに「社内のエンジニアの時間を確保し、彼らの経験を増やすか」も計画しなければいけないわけです。今日のまとめ外注は、基本的に高コストな開発手法である。開発コストは、投資と無駄の削減により相対的に減らすしかない。外注には、社内エンジニアへの人材投資という視点が必要。外注管理もお粗末というパターンです。結局、投資という概念が分かっていないので、そういう職場は大抵、設備投資もお粗末です。若いエンジニアの時間を無駄に使っている自分の罪深さを分かってないわけです。職業:元ソフトウェアエンジニア自己紹介:東京のゲーム会社でゲームプログラマ。家電メーカーで組み込みエンジニア。今は東京に戻って暮らしています。詳細な自己紹介は、こちら。