新人のプログラマへ - なぜ私たちは最新技術を追い続けるのか

4月は多くの会社で新人プログラマの入社があり、組織に活気が生まれます。残念ながら当社はこの時期の入社組には恵まれないのですが、私がお付き合いのある会社で新人を紹介される機会も多く、また教育講師としてお声がけいただくこともあって、毎年、新鮮な気持ちになります。

そこで私は機会があれば「初心を忘れず、常に勉強を続けてほしい」というコメントを伝えるのですが、実際のところ、この言葉は本心です。私自身 50 歳にならんとしていますが今でも新しい技術動向の調査には労を惜しみません。若い頃はいろいろなものに手を出して吸収しようとしていましたが、これだけ多様化したITに囲まれる時代になると、何を取捨選択するか、というポリシーをもつことが必要になりました。この機会に、私は何を重視して学ぶ技術を選択しているのか、を記してみます。

環境の変化に敏感になること

少し前の話になりますが、とある大手ユーザ企業から(当社を含む複数の超高速開発ツールベンダーに)声がかかりました。曰く、現行システムは確かに問題なく稼働しているのだが、その運用コストが非常に高いと感じており、また変更要望に対する改修の時間もかかりすぎる。そこでシステムを刷新することにした。目的は運用コストの削減と、改修を迅速に行える仕組みをつくること。しかし現行システムを提供している大手SIerに相談しても色よい返事がなく、困っていたところに「超高速開発ツール」の存在を知った。ついては、皆さんならいくらで開発・運用ができるのかを見積もってほしい… という相談でした。

そのシステムの詳細は割愛しますが、この話のポイントはユーザー企業がこれまでの「安定動作指向」から「DevOps指向」に変わってきたことです。重要なのは初期開発コストではなく運用コストであり、かつ環境変化を前提に改修にかかる時間を短縮させること、可能なら自分たちで改修できる環境を手に入れること(いわゆる「市民プログラマ」になること)を求めています。このように従来の業務アプリケーション開発分野もユーザー企業のニーズが変化しています。

しかし大手SIerはそのニーズに応えることができていません。例えていえば、これまでは一頭の巨大なマンモスを仕留めるために、多くの人が関わって(時間と手間をかけて)狩りをする体制を構築してきたのですが、肝心のマンモスの頭数が急激に減ってきています。これが環境の変化です。そうであればウサギのような小動物を得るために狩りの仕組みそのものを変え、少人数のチームでたくさんの小動物を確保するようにしなければなりません。しかしマンモスにこだわるがゆえに(そして探せばまだ見つかることもあるため)なかなか変化できない状態にある、といえます。

この例えでいうと、私はこの環境の変化、つまりユーザーのニーズを第一に捉えています。そのニーズを実現するためにITがあり、そしてITそのものもニーズにあわせて要素技術が変わっていきます。ハードウェアが自社オンプレミスサーバからクラウドに変わっていることも、開発体制がウォーターフォールからアジャイルへ変わっていることも、そして汎用的な業務アプリケーション開発が個別作り込みからパッケージやツールの組み合わせに変わっていることも、すべて環境の変化が後押ししています。その流れに気づかないままですと自分自身のエンジニアとしての価値が失われ、ひいては所属する自社の存在意義を失いかねません。冒頭にあった「常に勉強を続けてほしい」というメッセージの真意は、環境の変化を恐れず、むしろ率先して変化する側に立ってほしいということでもあります。

私が注目しているトレンド

現在は AI, IoT, RPA といった技術が注目されていますが、ジャスミンソフトとしてはこれらを追いかけていません。私たちはSIerではないため、これらの要素技術の組み合わせをソリューションとしてユーザー企業に直接、提供する機会をもたないためです。

私が注目しているのは一貫して、個別作り込みが必要な業務アプリケーションをいかに超高速開発で実現するか、にあります。このテーマは実際、いまだに解決されていないのです。大手SIerは一時期、このテーマにオフショア開発で臨もうとしましたが、それがうまくいったとは考えていません。このテーマは業務仕様の定式化と自動開発が解だと確信していますが、まだ発展途上です。

さらに現在は、このテーマに「クラウド、ただしオートスケールすること」「マイクロサービスアーキテクチャによる部分入れ替えの実現」「SoEとの連携のためのREST API/MQの提供」という新たなサブテーマが加わっています。これらを俯瞰的にみて、解決する仕組みを提供することは難易度が高いですが避けてとおることができないものです。

ITはものすごいスピードで社会システムを変えつづけていますが、その開発現場もまた、大きく様変わりしています。新人のプログラマが最初に何を学ぶにせよ(私はJavaを教えますが)その後も常に環境の変化に敏感になり、ユーザー企業のニーズを満たせるような新しい技術を貪欲に取り込んでいくことを願っています。それが個人の成長と自身の収入の増加、そして社会への貢献という一石三鳥につながると信じています。お互い、がんばって精進していきましょう。