第35回 アプリvs.インフラ,担当者はなぜ分かり合えない? @ ITpro
根本的なところでは記事内で触れられているように組織やチームの作り方や活動に問題がある事はごもっとも。
俺たちはアプリを作れば良い。俺たちはインフラだ。
これでは、後に問題が噴出する事は目に見えています。
プラモデルのように全ての部品が予め出揃っていて、それらを役割分担して組み立てるのであれば問題はでないはずです。
ですが、アプリ担当とインフラ担当とでは、それらの部品を一から組み立てるという仕事をします。
胴体(アプリ)と足(インフラ)の部品を作るのには、それぞれの設計方針を共有しておかなければ、機能が不足する事態に陥ったり、オーバースペックなものを用意する羽目になります。
足を作るインフラ側は、上にのせる胴体の大きさなどを考慮して足のパーツを作らないとそれを支える事はできません。
また、胴体側も「両肩にはミサイルだ!」とか「お腹の部分にはレーザービームがでる巨大な砲門つけると格好いいよね」とかではそれを支える足は幾らあっても足りません。
二足歩行のつもりが何時しか、キャタピラ式になってたなんて事にもなるわけです。
最近主流となっているアプリ開発担当、インフラ構築担当と言うような役割の分け方では、組織としての行き詰まりだけでなく、そのエンジニアのキャリアにも影響が出てきてしまいます。
良くあるのが、私は開発が役割だと思っています、ですからそのためのインフラは予め整えておいてくださいと言うエンジニア。
一からシステムを作る時に、サーバーやネットワークの知識が無いため、またそれをやるべきとは思っていないために、待ちの姿勢になるだけでなく、それらのインフラをうまく使えるアプリが構築できないと言う事態に陥ります。
いくらチープ革命が進んでいるとはいえ、サーバーのリソースをばんばん使うようなアプリではシステムが複雑化する要因になりますし、インフラ側への負担も増える結果となります。
良くあるWeb/DBシステムで、複雑なSQLをばしばしDBに投げるといつかDBは破綻します。
じゃあDBのパフォーマンスを改善してよといいますが、DBのパフォーマンスの多くはアプリ側に引っ張られますので改善したところで、そのような考えでアプリを構築していたらすぐに次のボトルネックが発生するわけです。
逆もまたしかりで、私はインフラだけの面倒を見ますというのも困った事態になります。
インフラ担当者に多いのが、それは組織のポリシーとして認めていないという事を盾に、インフラの機能を拡張する事を阻むという考えです。
その上に乗っかるものがあってのインフラですから、そのアプリ側の機能や目的を把握した上で最適な方法を提示して欲しいと思うことがしばしばあります。
何れにせよこれらは、最初に触れたように組織の体系に大きく左右される事になる問題です。
優秀なエンジニアを育てたければ、専門特化する事だけでなく広く浅くとも幅広い知識を共有できる組織と、エンジニア自体が様々な分野に興味を持たせられる環境を作る事が大事なのではと感じます。