GAミント至上主義

Web Monomaniacal Developer.

大規模開発って何が大規模なのか

私はいわゆるSIerで働いた経験が無いけど、開発の話で大規模開発とか、求人で大規模経験など、「大規模」という言葉をよく耳にする。

何が大規模なのか少し考えてみた。

○ 機能の数

bizoceanではフレームワークにSymfony2を使っているけど、これも他のPHPフレームと比較するとYahooとか大規模向けだと言われる。

たしかフォルダもファイル数も設定やたら数が多くて、その分ルールも多い。(残念ながら私はほとんど理解していない)。

それは、大量の機能(という括りが正しいのかは分からない)、ページがあるアプリケーション向けに必要なのだろう。細かく別れていたほうが再利用出来る可能性が上がったり、他の機能との衝突を防ぐことが出来るからだろう

フレームワークとして大規模はしっくりくる。

けど最近流行りのマイクロサービス的に、それぞれの機能を細かく作る案件となると、それは大規模なのだろうか。全体としては大規模だけど、大規模開発か?と言われるとしっくりこない。

マイクロサービスだと依存関係が少ないから、大規模って感じがしないのか?

◎ 関わる人数の数

よく銀行系で何万人月とか想像できない表現を聞くけど、これは大規模って言われてしっくりくる。

大手銀行であれば、開発者だけでなく利用するユーザーも相当な数になるし、上で書いたような依存関係も多くなる。

変な人が紛れ込んでも大丈夫なようにJavaのような言語を使うイメージがある。


☓ ユーザーの数

これだけでは大規模とはいえない気がする。

例えばSnapchatは1億人以上のユーザーがいるけど、もしこの開発案件があったとして、大規模案件だと表現するだろうか。私のイメージではしっくりこない。

Job Application for Software Engineer at Snap Inc.

求人をGoogle翻訳にかけてみたけど大規模っぽい表現はなかった。

コンピュータサイエンスまたは同等の経験などの技術分野のBS / BA
本当に良いソフトウェアエンジニア
厳しい技術的課題に興奮している人
学ぶのを愛し、他者を助けることに情熱を持っている人
バイルアプリやデータベースの経験
ミズ。コンピュータサイエンスまたは関連分野の学位が望ましい
他の人と協力し合うことができる人
3年以上のソフトウェアエンジニアリング経験が望ましい
分散システムでの作業経験が望ましい
Snap Inc.製品のための情熱!