これから身に付けておきたいスキルとは
―― 最後に、CodeZineの読者に向けて一言ずつお願いできますか。
西内 ► エンジニアには色々な立場、担当があると思いますが、分析を意識したデータマネジメント力はおそらく全員に必要になるのではないでしょうか。今までは何となく業務が回るようなデータであれば「なんじゃこりゃ?」と突っ込まれるようなテーブル設計であってもOKだったかもしれませんが、いずれそのデータを分析するという前提になると、ちゃんと分析に耐えられるデータにすることを意識していかなければなりません。それを意識するためには一度、自分で分析をすることをおすすめします。R言語なりSASなり、どんなツールを使ってもいいので、ちゃんとした分析を一度体験していただくと「分析に耐えられるデータ」がよくわかると思います。
―― 自力で分析したとして、その分析結果の活用法についてはいかがでしょうか。
西内 ► すごく難しいところですが、分析結果を使ってプレゼンし、誰かを説得する体験もするとよいと思います。上司を説得するとか、実際に手を動かしてもらう人を説得するとか。うまくいけばよし、またそれがうまくいかなかった経験も大きな価値になるんじゃないかなと。実際にデータをちゃんと管理して分析し、アクションにつながるようなコミュニケーションをとっていると、だんだん見えてきます。(例えば「ああいう人たちを巻き込むのはやめよう」(笑)みたいなことも)。そうすると、どんな対策をとればいいんじゃないか、というリーダーシップを発揮できるスペシャリストになれると思います。
また、分析結果を見て「これさえやれば儲かるじゃーん!」みたいなところがわかったり、逆に「なんで俺の会社はこれをやらないんだ?」「なんでこれをやってるんだ? 安売りしても売上は全然上がってないじゃん」いうことが見えてきたりします。目の前にデータがあるのなら、(社外に持ち出してはもちろんだめですが)自分で分析してみるとよいと思います。分析して真実を見てしまったために上司との関係が悪化して、社内に居づらくなるかもしれませんが(笑)。そうなったらそうなったで、転職のチャンスだと思ってください。
―― ありがとうございました。ではミックさんからもお願いします。
ミック ► システムのパフォーマンスに関する技術は、今後も必ず求められていくし、ますます重要になっていくと思います。パフォーマンスの設計や改善はシステムの上から下まで全部見ないとできませんので、システムの全体を見ることができるようになるとよいです。アプライアンス製品なども出てきていることもあって、ハードウェアからソフトウェア、アプリケーション、エンドユーザーまでの全部の観点を持って統合的に見ていく視点が必要になるのではないかな。パフォーマンスというのは、そのように統合的に見ていく1つの切り口になると思います。
私の場合はデータベースやSQLをスタート地点として、そこからシステム全体を見ていくようになったのですが、パフォーマンス問題の原因はデータベースだけに限りません。ハードウェアやOSのことも知らなくては、システムのパフォーマンス問題がどこで起きるか、どこに気をつけて設計すべきかがわからない。その点でも、パフォーマンスという観点はスキルの幅を広げるきっかけにもなるところだと思います。
―― システムの上から下までというと。最近「フルスタックエンジニア」という言葉が流行っていますね。クラウド上のシステム構築・運用ではいかがでしょうか。
ミック ► AWS(Amazon Web Services)をはじめとするクラウドの大きなメリットの1つは、ハードウェアやミドルウェアを見なくても一応サービスが使える点ですが、面白いことに、ハードウェアやミドルウェアを意識しなくて済むようになるのかというと、実はそんなことはありません。むしろ、クラウドを使っているときのほうが強く意識することになるんです。なぜかというと、クラウドでは「問題が起こったときに物理サーバーと同じレベルでは調べられない」「用意されたAPI経由でしか状況を調べられない」というように、さまざまな制限があるからです。クラウドを本格的に利用する場合には、むしろハードウェアやミドルウェアの知識が豊富に必要になるというのが、パフォーマンス問題を何度も見てきた結果、私が感じているところです。
―― 西内さん、ミックさん、貴重なお話をありがとうございました。
