「プログラミングのアウトソーシング」は本当にコストを削減できるのか? 147
ストーリー by reo
プログラミングだけをアウトソースしてない現実 部門より
プログラミングだけをアウトソースしてない現実 部門より
cheez 曰く、
本家 /. 記事「Does Outsourcing Programming Really Save Money?」より。
「Programmer for Hire の記事にて John Larson は、プログラミングをアウトソーシングしたが故にプロジェクトが完成を見ないスタートアップ企業の話を引き合いに出し、海外へのアウトソーシングにまつわる問題点について論じている。このスタートアップ企業ではプロジェクトのプログラミングを時給 14 ドルでインドに依頼したが、全てにおいて細かな指示を出さないと事は正しく進まず、結局自分たちで多くの時間を直しに費やさざるを得ないという悲惨な状況に陥っているという。Larson 氏は今までこの程度の価格帯でのアウトソーシングで上手くいったプロジェクトなど耳にしたことがないといい、ではこのスタートアップ企業の例では問題の核心は果たしてプログラミングにあるのか、それともその価格帯での無謀な期待にあるのだろうか? と疑問を投げかけている (ITworld の記事より) 。
Larson 氏のブログエントリにはブログ本文よりも恐らく有益な、多くの体験談が寄せられている。本家 /. 記事では「例え腕が酷かろうと、マネージャ層が『時給 14 ドル』に飛びつかないとは限らない」という意見や、最近ではアウトソーシングから米国内へと仕事が戻ってきているという意見など 500 件を超えるコメントが寄せられている。
プログラミングは設計 (スコア:3)
ビルド寸前までコードを書く行為はすべて設計です。
設計を外部に任せるためには、相応の信頼と権限の委譲が必要です。
納得行くものが出来上がらずに細かな指示をしていくというのは、自分で設計する部分を増やしているだけです。
Re:プログラミングは設計 (スコア:2)
自前でも可能なプログラミングを、外部に委託するということは、一時的にせよチームの
人数を増やすことなので「人月の神話」で指摘された問題を考慮する必要がありますからね。
しかもこの場合、色々な意味で意思疎通に要するコストが大きいし。
----
アウトソースシングって、プログラミングのリソースを自前では持たないという選択であって、
他の事業を主体する企業が必要なソフトウェアを、調達する手法くらいに考えるべきで、
ソフトウェアを作るのが本業の場合は、安易に使えるものじゃないですよね。
Re:プログラミングは設計 (スコア:1)
>ソフトウェアを作るのが本業の場合は、安易に使えるものじゃないですよね。
その、はずなんだがなあ...。
#存在自体がホラー
Re:プログラミングは設計 (スコア:1)
以前Web系で機能ごとに分けて各技術者に依頼するというのを試行した会社さんとやりました。
問題点として出てきたのは
「細かいところまで仕様を決めて記述しないと想定したものが出来上がってこない」
「それにかかる手間が大きすぎてむしろ内部の工数が増大」
といったところで外部の技術力とか信頼性とかいう以前だったようです。
それまで内部的にはざっくりとしたものだけだったんじゃないかと思います。
社内ならすりあわせとかちょっと口頭で話せばなんとかなりますからね。
技術者のレベルや考え方もそうですが、社内の延長線で考えてしまうと失敗するという例でした。
Re: (スコア:0)
同じ試験仕様を通りさえすれば、どのようなソフトも同じ品質です
と宣言してたバカがいたな
Re: (スコア:0)
あなたには品質を担保できる試験仕様を書く能力がないということですね。
あなたの能力ではできないことでも、普通にこなせる人が世の中にはいるんですよ。
Re:プログラミングは設計 (スコア:1)
そうそう、「仕様を書く能力」は重要。
この能力がないのに口でアレコレ言えば下が理想のモノを作ってくれると思い込んでる上司に当たるとサイアク。
そいつが思い描いていないものができるとヒス起こすし。
another side:
懇切丁寧に説明しててもろくなもん作らない、今度来た奴ヒドイわ。
#どっちもあるな。
Re: (スコア:0)
ちょっと疑問。
なぜこの流れでここで皮肉を書く必要が。
Re:プログラミングは設計 (スコア:2)
はい、コードカバレッジという言葉も
それが完全な試験手法ではないことも
知ってるけど。
そして、チューリング言語で書かれたプログラムを
完全に試験する一般的な術はないことも知ってる。
Re:プログラミングは設計 (スコア:1)
カバレッジが100%で、仮にバグが0であったとしても、スパゲッティプログラムは書けるんだな。
コードの品質と現在残っているバグの個数とテストのカバレッジに相関はあってもイコールではない。
>同じ試験仕様を通りさえすれば、どのようなソフトも同じ品質です
と言った奴はそんな初歩的なことも知らないのだから、大馬鹿者としか言いようがないのです。
Re:プログラミングは設計 (スコア:1)
つーてもまあ、ソースの全システム機能呼び出しが発生する(かもしれない)箇所すべてで、システムにも相応の負荷をさまざまなパターンでかけるとか、難しいよ。
# OSやライブラリ側がある負荷以上になると、問題になりうる挙動をしめす。とかあるだろうし。
個々の事例というか箇所を指摘するのは、たぶんできるんだろうけど。それの組合せになると事実上試験しきれなくなるんじゃないかな?
# 規模が中以上を想定しています。
とはいえ、実装の子細の違いとかは試験仕様を通るなら問題ない、で通るだろうし、状況しだいかなぁ。
M-FalconSky (暑いか寒い)
Re: (スコア:0)
逆でしょう?
同じ試験仕様書を通ればどのソフトも同じ品質です。は正しいです。
試験仕様書から漏れた項目があってAでは対応しているがBでは対応していなかった場合
それは「試験仕様書の品質」が悪かっただけでソフトウェアの品質としては同じですよ。
ソフトウェアの品質とはテストの結果で得られるものであって書いてあるから得られるものじゃないです。
Re:プログラミングは設計 (スコア:1)
そうでしょうか?
定量的に測れるところだけで勝負ということは、結局コスト競争だけに終始して構わない、という宣言でもある。
そういうのって作り捨て(あとで増強・改良しようとも思わない)のアプリではいいかもしれませんが、のちのち拡張して使うことを考えていれば、テストでは測りきれない「品質」というものもある。
そういうものをアウトソースするな、という意見ならわからなくもないですが。
Re: (スコア:0)
機能実現性やバグ数という意味ならそうでしょうねー
しっかし100行で表現できるコードを5000行に膨らまされた時にはどーしようかと思った orz
Re: (スコア:0)
>機能実現性やバグ数
それ以外のものをどう評価する?評価する意味ある?
確かに頭悪いなーというときはあるけど、どっかで割り切らないとしょうがないんだよね。
Re:プログラミングは設計 (スコア:2)
Re: (スコア:0)
まぁ、パフォーマンステストとかにも現れないならソレは受け入れるしかないわな
Re: (スコア:0)
いまどき行数で価格なんか量らないしね
Re: (スコア:0)
非機能項目で差が出ることはよくありますよ。
ソースの可読性は代表的な非機能項目。しかし品質としては重要。
Re: (スコア:0)
ならばそれも試験仕様に加えればよろし。
Re:プログラミングは設計 (スコア:2)
Re:プログラミングは設計 (スコア:1)
アウトソースだからこそ、ソースの品質程度の事は割り切るべきだと思うけどね。
割り切れないか、品質を管理できないなら、それはアウトソースすべきものじゃなかったという事だ。
それこそ、ゲームのパッケージを買うのと同じ事なんだからさ。
#存在自体がホラー
最終的に誰も得しないような気がするオフショア (スコア:2, 興味深い)
小さいプロジェクトではアウトソース(オフショア)する意味はないでしょうね。
更に保守まで考えると余計難しいかと。まー最近ではオフショアも単価が上がって来てるので、オフショア先も大手で日本人が常駐しているようなとこで億単位のプロジェクトでもないと採算が難しいのかもしれません。
しかも物によってはノウハウや成果物を丸パクリされて売られたりするリスクもあるし。
最近インドにオフショアしてる会社に聞いたのは、時給で働いてるから余った時間で頼んでもない機能を実装してくる、だそうです。
真面目なんだか不真面目なんだか(笑)
Re:最終的に誰も得しないような気がするオフショア (スコア:1)
いきなり音楽が流れて、画面にあるものが踊りだすんですね。わかります。
日本の場合 (スコア:1)
国内の労働者ならいくら値切ってもなぜか品質はあまり変わりませんが、同じことを海外の労働者に対しても期待すると痛い目を見ます。
Re:日本の場合 (スコア:1)
日本企業の場合は労働者の品質が変わらないんじゃなくて、プロジェクトに穴が空きそうになったら元請けなり下請けなりがそれなりの人間を投入してる。
そいつらが(顧客から見れば)ただ働きで火消しをしてるから、外から見ると(日本人としては)安い値段でも一定の品質が保たれているように見えるだけ。
IT土方の新人研修なんて有って無きが如しだし、OJT()で現場に教育を丸投げすることも珍しくないから、それこそオフショアより使えない日本人だってそこかしこに居る。
海外の企業はそういった日本の「お作法」なんて知ったこっちゃないから、値段に見合った成果しか上げてこないだけ。
ある意味、ビジネスとしては日本より海外の方が真っ当だとは思う。
ただ、下請け側からすりゃオフショアのせいで人数減らされてるのに、何故かそいつらが上げてきた動かないプログラムの修正までやらされて、泣きっ面に蜂も良いところだが。
プログラミングだけだから (スコア:1)
プログラミングだけじゃなくて、設計からちゃんとアウトソースすれば問題解決。
注:和約 ・・・ 丸投げ
Re:プログラミングだけだから (スコア:2)
いや、それ普通に株式会社だから。
#存在自体がホラー
いいから落ち着こうよ。 (スコア:0)
焦っちゃらめえええ。
アウトソーシングのキモはだな (スコア:0)
とりあえず責任が離れるってことだよ
Re: (スコア:0)
相手が責任を取り切れるという前提があれば真なんですがね ^^
Re: (スコア:0)
責任すら取らないんだったら元請けってなんのためにいるんだろう
Re:アウトソーシングのキモはだな (スコア:1)
>元請けってなんのためにいるんだろう
つ 「ピンハネ」
Re:要件に対する責任は果たすが (スコア:1)
仕様書が適当なのが悪いように読めるけど……
1を聞いて0を知れ!
Re:要件に対する責任は果たすが (スコア:2, 興味深い)
詳しくはしらないが
USB機器で1回処理すると応答がなくなる不具合があって=>抜き差しして通信するので問題ありません。
「処理ごとに抜き差しするとは仕様に書いてない」対「処理ごとに抜き差ししてはいけないと仕様書にかいてない」
の言い合いになってた
こんな仕様漏れでもだめだなんて、完璧な仕様書って大変そうだ
Re:要件に対する責任は果たすが (スコア:1)
そんなこと言うなら「ククク。出しますとも。この利根川、こと金に限り虚偽は一切言わぬ。出す。出すが今回まだその時と場所の指定はしていない。つまり、我々がその気になれば金の受け渡しは10年後も20年後も可能ということ」って言って金払わなかったらいいんじゃね。
# 民法上ダメらしいけど。
# 民法持ち出すなら、これも十分、錯誤無効で争えそうだし……
1を聞いて0を知れ!
Re:要件に対する責任は果たすが (スコア:1)
>仕様書が適当なのが悪い
と一言でいってしまえば、じゃ完璧ならいいのか?そんな完璧な仕様書ってコーディングと同値で無駄じゃない?という事になるので、
おそらくは請負という形式ではなくて、パートナーシップが理想なんだろうけど、難しいよな。
#存在自体がホラー
Re:要件に対する責任は果たすが (スコア:1)
それはそうだけど、元請けが完璧な仕様書を書いて外部に出すんだったら、SIビジネスの元請けは成立しないんだ。
コスト的にも技術的にもね。
報酬から求められる仕事の質を推測して対応してみた (スコア:0)
アウトソース先は時給バイトで引き受けたから、「コードを書くだけの単純労働者」をつけるといった感覚でいたんだろう。
結果サビ残しまくりな日本のブラックなSIに下請けしてもらうより高くついてるかもしれないな。
# 中抜きはあるだろうけど、もし手取りならインドで時給14ドルって悪くなくない?そうでもない?
Re:報酬から求められる仕事の質を推測して対応してみた (スコア:1)
時給14ドル、14*8(時間)*20(日)*80(レート) = 179200円/人月単価
# 高いか安いか?
Re:報酬から求められる仕事の質を推測して対応してみた (スコア:1)
ちと古いデータだが、インドの大都市ムンバイの平均月収は28,400円程度 [777money.com]だそうなので、上記の額だとおよそ半年分の収入をたたき出してる事になる。
オフショアの形態にもよるが、自国に居ながらこの収入ならかなりの高額所得者と認識されるんじゃなかろうか。
ただ、自分の見聞きした範囲では、インドでIT関連の仕事やってるのはそれなりの高等教育を受けられる富裕層に限られるそうなので、そういった事情まで加味すると上記の値段がどの程度なのかはちょっと分からんけど。
仕事の質に関しては…… 自分の知ってるインド人は、1ドル80円とすると時給14ドルで1120円、中抜き考えると8掛けで約900円だからまあそんなもんと言う印象かなぁ。
1~10まで書いてない仕様書が悪い (スコア:0)
コレまで見た仕様書は大抵異常系の動作仕様が不完全でかなりの量が未定義なんだよね。まぁ、全挙動を自然言語で書くくらいなら俺が書くってのはその通りかもしれんけど。
Re: (スコア:0)
HTMLもバージョン4まで異常系の仕様が適当きわまりなくてずいぶん非互換や混乱を招いてきましたね。
と微妙に前のストーリーと関係のある話
Re:1~10まで書いてない仕様書が悪い (スコア:1)
というか、ビジネスモデルの欠陥という気がする。
最終的には許容できるコストでユーザ(お金を出すところ)を満足(納得)させれば、紆余曲折あっても問題はないと思うんですが。
それに至る道筋はウォーターフォールだけじゃないんじゃないかなあと。あっ、アジャイルならいいという話ではないです。
どこかでブレイクスルーが起きるんじゃないかなあと、思うというか願望かな。
ユーザの意識が変わるか、画期的なビジネスモデルができるか、それともこんなシステムの作り方に依存する産業が傾くか。
#存在自体がホラー
スタートアップでアウトソーシングを利用って (スコア:0)
稀な例じゃないか?
よく聞くのは「自分たちでガンガン書くぜ!」というのりじゃなかろうか。
Re:スタートアップでアウトソーシングを利用って (スコア:2)
間違い。
食らった事のある中で最も「わかりやすい」例。
「ここで、このオブジェクトをソートしてくれ。キーはこれ、値の大小で比較して、降順で」
『そのソートは何を使えばいいのか』
「何でも構わないが、アルゴリズム的には O( n*log n ) のものを選んでくれ」
『それでは決められない。何を使えばいいのか』
「決められないとはどういう事か?」
『ライブラリにソートの種類がたくさんあって、どれを使えばいいのか判らない』
「O( n*log n ) の条件を満たせば、どれでもいいが?」
『判った。Bubble Sort を使う』
「Bubble Sort はいつから O'( n*log n ) を満たすようになったのか?」
『標準で付いてくるライブラリはすべてその条件を満たすのではないのか?』
「おまえはアルゴリズムの勉強をした事があるのか?」
『もちろん、Knuth は全部読んでいる』
「読みなおせ、バカ者」
…
10日以上して
…
『quick sort を使う』
「それでよい」
もう少しモノがわかっている奴を引っ張りだすまでとても大変だった。
一事が万事この調子の奴らを、「自分たちでガンガン書くぜ」とは言わない。
この調子のやつらに「ガンガン」書かれても、増えるのはバグだけだ。
fjの教祖様
Re:スタートアップでアウトソーシングを利用って (スコア:2, 興味深い)
Knuth読んでいるだけいいじゃない・・・
標準ライブラリ使おうとしているだけいいじゃない・・・
なんでもない普通のソートをお願いしただけなのに
わけのわからない5ネストぐらいのforループで独自実装して
しかも全くデタラメな結果になって
文句を付ける頃には連絡不能になってないだけマシだと思う私は
それ以来、中国恐怖症ですよ。
#ええ実話ですよ。
Re:スタートアップでアウトソーシングを利用って (スコア:1)
どこをどう読むと、これが
「私は O( n*log n ) のソートライブラリを選んでもらえて満足しました」
という例に読めるんだ??
fjの教祖様
Re:スタートアップでアウトソーシングを利用って (スコア:1)
ただの通りがかりだけれども、
「それでよい」という寝言を誰が言ったのか、明らかでない。
「もう少しモノがわかっている奴」の置換対象となっているのが、「それでよい」な人なのか、「バブルソート」な人なのかが明らかでない。
という書き方なので、誤解されても、胸を張って開き直るのはいかがなものかと思う。
Re:スタートアップでアウトソーシングを利用って (スコア:1)
「提供されたライブラリの sort より早い物をつくってみせる」と豪語したオフショアがいました...
「早い」は「速い」の間違いだよね。
大抵は、コストの問題で標準ライブラリを使うのが最良の選択です。
しかし、ソートプログラムにはチューニングの余地は結構あります。手間を惜しまなければ、ある特定の領域では標準ライブラリを凌ぐものを書くことは、そう難しいことでもありません。