Sunday, August 31, 2014

コーディングレス、そしてコーダー。

Fujitsu Software Interdevelop Designerに関する日経記事がきっかけで、という訳でもないのだけれど、コーディングという行為について、コードを書いたことがない素人が思うことを。

基幹業務を対象に、一定の日本語書式で作成された設計書からプログラムを自動生成するソフトウェアで、システム開発費の4割を占めるプログラミング費用が不要になるという日経記事は、様々な意味で反響があったようで、ざっと検索した限り、概ねネガティブな評価が多いようだ。テストデータの生成も可能といった点をポジティブに捉えたコメントも一部あるものの、「設計書作成が実質的にプログラミングと変わらない」、「この怪しいツールの後始末で大量のSEが泣かされる」といった酷評が総じて目立っている印象だ。まあでも、それ自体はどうでもいい。考えたいのは、このツールの実用性ではないからだ。そんなものは、1年もすれば歴史が証明することになるのだから。

俺が思うのは、それでも「コーディングレス」というのは1つの志向性であり続けるのかなということだ。イノベーションは、往々にして非効率や不便、あるいは素人からみた困難や分かりづらさが起点となって生まれる訳で、現在のシステム開発における「コーディング」という行為に、イノベーションの種がないとは思えない。一方で、コードがビジネスをある程度まで規定するようになっている昨今、業務ニーズと戦略さえあれば、コーディングレスでアプリケーションを作成できる世界というのは、ITの理想郷として、ずっと存在するのかなという気がする。その実現が、数年後なのか、十数年後なのか、あるいは数十年後なのかは分からないけれど。

でも、ここでもう1つの観点が頭をもたげてくる。
日経のヘッドラインは、プログラマーという職種の今後にどこか消耗戦の雰囲気を想起させたけれど、どちらかというと、プログラマーの重要性は今後むしろ高まっていくのではないだろうか。いや、こう書くとやや誤解を招くかもしれない。より正確には、ハイスキルなごく一部のプログラマーの存在感が、(この世界における)他の職種を圧倒していくのかなというのが、なんとなく感じていることだ。

コーディングレスといっても、バックエンドでコードを自動生成する訳で、誰かがコードを書いているという事実は変わらない。コードを自動生成するためのコードを、より高い次元で、より生産的かつ効率的な方式で、より美しく、より汎用的に書ける人間がどうしても必要になってくる。宇宙の果てを考えると、果ての先が分からなくなるのと同じように、コーディングレスの世界を考えていくと、バックエンドに不可知の領域が横たわっているのは当然で、あまりにこの志向性が強くなりすぎると、最終的にはバックエンドを司る人間が、かなりのパワーを持つことになるような気がしないでもない。

そういえば先日、ある業界イベントで"Infrastructure as a Code"という考え方について、40分ほどの講演を聴いてきた。オープンソースの構成管理ツールであるShefを活用して、システム基盤をソフトウェア的に管理するというものだ。Shefでは、Recipeと呼ばれる基盤の構成情報をRubyプログラムで記述して、サーバーに自動実行させるのだけれど、プログラムに管理させるということは、プログラムの品質が管理品質に直結するということだ。まあ、俺自身はエンジニアでもないので、そこに求められるプログラムのレベルもよく分からないけれど、Shefに限らず、ソフトウェアで諸々の挙動が制御されていく世界では、機能的に(そしておそらくは、それ自体としても)美しいコードを書ける本物の職人が、極めて重要になっていくはずだ。

Fujitsuの取り組みがどう転ぶかは、静かに見守っていればいい。
でも、コーダーは大切にした方がいい。少なくとも、世界を握るかもしれない特別なコーダーと、その卵のことは。