クラウドビジネス参入記(3): クラウド時代に必要なエンジニア像

By |10月 1, 2013|CI, DevOps, |


クラウドビジネス参入記(2): Salesforce案件と既存SI案件との違いの続きです。

前回の内容を要約すると「クラウドがシステム開発のオーバーヘッドを解消するのに開発人員や開発体制がオーバーヘッドになってしまっては意味がない」ということです。

では、クラウド時代に必要な開発人員や体制とはどういったものか?

それは、以下の3点であると考えます。

  • 「時代の変化」と「要求の変化」に追従できること
  • 「完全な利用側」に陥らないこと
  • どんな役割にもなれること
「時代の変化」と「要求の変化」に追従できること

前回のSalesforce案件のように、これまで常識とされたボトルネック自体が無くなっていくようなパラダイムシフトは至るところで起きています。

たとえば、2005年に開発されたGitは、Githubの大きな貢献によりシステム開発におけるソースコードのバージョン管理に留まらず、ウェブページ作成やルール策定をも民主化しつつあります

そして同じく、2005年辺りから提唱されているリソース指向アーキテクチャは、JavaScript MVCフレームワークによってサーバ/クライアント間の疎結合が一般化し、業務系システムは今すぐ脱Strutsを!という動きになってます。

更には、システムやプロダクトの反復開発が当たり前になる中で、CIDevOpsの考え方を支えるためのビルドツールやプロビジョニングツール、CIサーバなどの周辺技術も進歩しています。

クラウドについても「所有から利用」や「エコシステム」という側面だけを見るのではなく、サービスの「グローバル化」や「寡占化」という側面に着目すると、インテグレーションのグローバル化という可能性も見えてきます。

いずれにしても、クラウドサービスやオープンソースソフトウェアを利用した効率的な反復開発手法を追求し、常に自身のスキルや道具を磨き続けなければ時代の変化にも要求の変化にも対応できなくなると思います。

「完全な利用側」に陥らないこと

これは、自身のスキルや道具を磨き続ける上で非常に重要な観点です。

SalesforceにしろAWSにしろ、クラウドはアプリケーションエンジニアから面倒な下層を隠蔽し、利用側のエンジニアは上層からインターフェイスを通して利用するスキルがあれば充分になりました。

だからと言って、決して下層を知らなくて良いということではないと思います。むしろオープンIaaS/PaaSを自分で動かし下層の仕組みを知るべきですし、更に言えばクラウドが誕生した歴史や原理も知るべきだと思います。

これは分業における職域にも同じことが言えます。自身の担当職域に特化し過ぎて他分野に疎くなってはいけません。どんな役割や分野でも対応可能な知識とスキルを鍛錬しておくべきだと思います。

なぜなら、昨今は様々な分野が複合したイノベーションが発生しているからです。レイヤーや職域に限定しない広い視野を持つことでイノベーションに対する理解力も想像力も向上するはずです。

どんな役割にもなれること

今後、Salesforceのように知識さえあれば顧客自身でインテグレーションできるサービスが充実すれば、顧客とインテグレータの関係は現在よりも対等な関係になると思います。

また、クラウドによるプロジェクト管理が浸透することで、プロジェクトがどういう状態にあるか、顧客も含めたプロジェクトメンバー全員がタイムリーに知ることができるようになるでしょう。

もしかしたらプロジェクト管理や要件定義と言った、これまでSEとかコンサルタントと呼ばれた人達が行ってきた業務もエンジニアが兼務する時代になるかもしれません。

顧客対応と実装で役割を分けることが大きなオーバーヘッドになってしまうほど効率化されていくならば、あながち有り得ない話でもないと思います。

「どんな役割にもなれるが敢えて効率化のために分業する」そんなエンジニアがクラウド時代のエンジニアだと思います。そうやって培われた本当の力が未来を創造します。

我が国は古く勘定系システムという先端のエコシステムを持ちながらAmazon Web Serviceのようなイノベーションを生むことができませんでした。その責任は国でも企業でもなくエンジニアにあると思います。

次回はクラウドブローカになるための弊社の動きについてご紹介します。