開発力をアップするには

アジャイルやらスクラムやら開発プロセスも進化していますが、エンジニアとして開発に関わっていくには、どういったスキルが今後は必要になってくるのか気になっています。つらつらと思いついたことをメモしておきます。

報酬を得るためには、何らかのビジネスに参加する必要がありますから、どういうビジネスに関わりたいのかを考える必要があるでしょう。スキルアップというと、どうしても人気のあるプログラミング言語の習得や、開発ツールの使い方を理解していることに目がいってしまいますが、これからはそう単純ではないような気がしています。

ビジネスは人と人との間に発生する交流を通じてお金が流れて成立します。一方、テクノロジーは交流をする際に必要なツールを実現するものとして利用されています。テクノロジーの進歩により、あるツールが普及して誰でも手に入れて使えることができるようになると、人のコミュニケーションにも大きな影響を与えて、世界が変わるということが、これまでも繰り返されています。

ここの変化にエンジニアとして関わる際に、従来だと実現方法にのみ注目をしていれば良かったのですが、いまはそれだけでは足りない気がしています。フルスタックエンジニア待望論がビジネスの世界では唱えられていますが、フルスタックエンジニアがいるとしても、それはエンジニアリングの世界でしか力を発揮でいませんから、それより一歩先の視点も必要なはずです。エンジニアリングが必要なのは、ビジネスが成立しているという前提条件があった上での話だからです。

そう考えると、既存ビジネスをターゲットとしたいのであれば、ターゲットとする既存ビジネスについての基礎知識は当然必要ですし、そこにあったテクノロジーを導入できる知見も必要です。そういった視点を持って開発ができるエンジニアというのが求められているのでしょう。つまり、あるビジネスをしている人に対して、ビジネスを駆動するシステムを提供できる開発者が求められているのです。

そういうことを考えると、大きな会社であれば自社に情報システム部門を持ち、そこが自社のビジネスに役に立つシステムの開発をするのが良いということになるのですが、それができる会社はなかなかありません。既存の大きな会社というのはコストセンターとしての情報システム部門を整備してきてしまったので、プロフィットセンターとしての情報システム部門にすぐに転換させることができないからです。インターネットサービスから始まった会社というのは、もともとが情報システム部門(開発部門というべきか)がプロフィットセンターとして存在しているので、そういった開発は難しくなく、必要に応じて必要なスキルを持った人材を募集することができるはずです。

ということで、大会社にいる場合は早目に自社の情報システム部門をプロフィットセンターへ転換させないといけませんから、そういうところで働いているエンジニアは、何をすれば会社のプロフィットセンターになれるのかを考えて、そこにあわせたスキルを身につけ、技術力の向上をしていくことになります。

中小企業の場合は、自社に情報システム部門を持つのは難しいでしょうから、自社製品の販売支援となるシステムを何らかの方法で入手する必要が出てきます。そのひとつの手段がアウトソーシングとなるでしょうから、中小企業を対象にシステム開発を請け負うことを仕事としているエンジニアは、そういった会社にとって役に立つものを、予算に応じて提供するということができるようになる必要があります。

こうして考えてみると、「開発力をアップするには」と漠然と考えているだけでは駄目で、いま自分が身につける必要がある開発力は何かをまず分析してから、その開発力をアップするにはどうすればいいかと考えるのが良さそうです。そうしないと、役に立たないスキルだけアップして、必要な開発力のアップにつながりません。

もちろん、基礎技術や基本技術といわれるものについては、応用範囲が高いですから、意味がありそうです。たとえば、アルゴリズムを勉強するとか、英語を勉強するとか、そういったスキルアップなら良いと思います。

「Photoshopを使いこなせるようにショートカットを全部覚える」とかは、Photoshopで仕事が成立するようになったところで必要になるのであって、すぐにやらなくてもいいだろうと思います。Photoshopが好きで趣味で覚える分にはもちろん構わないと思います。

全体的にあまりうまく表現ができずにまとまりませんが、自分の予想では、これからの時代ではプログラミングは読み書きそろばんの位置づけになるはずなので、それだけで報酬を得るというのは難しくなっていくだろうと考えています。そこに対して付加価値をつけるには、「あるビジネスに役立つシステム開発ができること」といったものが必要になるのだと考えています。もちろん、「他の人よりも高品質のプログラミングができる」という付加価値でもいいのでしょう。いずれにせよ、何が付加価値になるのかを考えながら、開発力アップをしていきたいものです。

Amazonでちょっと検索をしてみたら気になった書籍がいくつかありました。技術の専門書だけでなく、こういう書籍も読んでみると良さそうです。

同じカテゴリの記事: General