分散アジャイル開発は何と戦っているのか?

Puzzle pieces - 2

分散アジャイルが怪しい。そう感じたのには理由がある。ツールが進化してきたせいか、同じ場所にいないメンバーと働いたりする事例が増えてきたけど、それにどんな意味があるのかがいまいちわかっていない。今日はそんなことをつらつらと考えてみた。

オフショア開発の場合

開発をインドに丸投げとかよく聞く話だけど、メリットとしては安く頼めること。デメリットはブリッジSE(今もこういうのかな?)の活躍が不可欠というのが自分の経験。

でも、実際には納品されたものがひどかったときもあったし、調整役がボトルネックになるときもあった。それでもオフショアを考える理由ってなんだろう?トータルでほんとうに安いのかな?

また、開発部隊が開発を丸投げするということは、技術力じゃなくて企画力で勝負するということだろう。エンジニアがエンジニアリング放棄すると、調整ばかり達者な若者ばかりが生まれてしまう。プロダクトアウトしたい気持ちはわかるけど、開発だけしてた組織が果たしてそのステージで勝負できるのか?

海外のエンジニアとの連携

オープンソースの開発だと、地理的に違う人が集まって開発するのはよくあることだろう。どちらかというと「人」にフォーカスしているから、「場所」はあまり関係なくて、人と人がつながりやすいGithubのようなツール・システムが爆発的に人気になるのもわかる。便利そうだし。

ただ、日本の会社の場合、大抵は会社に集まって仕事するから、「場所」のほうが強い。だから、いくらプロジェクトでGithub使っても、ソーシャルの範囲がカンパニー以上にならない気もする。それが悪いということではなく、それ以上使いこなせない上限みたいなものがありそう。

そして、わざわざ海外のエンジニアと連携して作る理由があるのかよくわからない。何かしらのスペシャリティを持っている人だったらしかたないかもしれない。でも、そういう理由でみんな分散開発しているのかな?

今後、時代は「人」にフォーカスしていきそうだから、いずれは変わるかもしれない。

分散の価値とは何か?

ちょっと古いけど、MSの経験から生まれた分散アジャイルですべきこととすべきではないこと(2008年)や第1回 分散開発とアジャイル開発は、水と油か?(2009年)のように、マイクロソフト・IBMといった巨大企業は分散開発を実現しているらしい。

でも、どちらの記事を読んでも「なぜ分散開発なのか?」の説明が書いていない(気がするけど違うかな?)。

調べてみて思ったのは、「大規模・大人数への挑戦」とか「分散開発への挑戦」というような、男のロマン系の話なのではないだろうか?スケールの話とかも同じなんだけど「そこがんばらなくてもいいよね」と思ってしまう。

何と戦っているのか知りたい。