近年、プログラミングの需要は増え勢いを増していますが、それ以上にノーコードというソースコードを打たなくでもアプリ開発ができるというソフトウェアやプラットフォームが普及してきました。
これにより一部の期待感とは別に、プログラマーという職業は今後不要になるのではないかと危機感を抱く人が出てきたのも紛れもない事実です。
今回は「ノーコード開発で将来プログラミングは不要?我々は何を学ぶべきなのか」をテーマに、今後のシステム業界がどうなるのか、プログラマーやエンジニアを目指す人は何を学ぶべきなのかについてまとめました。
ノーコードとは
ソースコードを書かないでもアプリ開発ができるという状況は昔から徐々に力をつけてきていましたが、近年はソフトウェアの進化によってその勢いは著しいものとなっています。
中でもAmazonの「Amazon Honeycode」が発表されたりと、大手企業の参入はIT業界に今以上の吹き込んできているのです。
AWSという独自のサービスを持っているAmazonからすれば、それを関連付けたノーコード開発ができるソフトウェアを提供するというのは予想できたことですが、いざ本格参入するとなればやはり注目は集まります。
今まで黒い画面に英数字の文字列を打ち込んでいたプログラマーというイメージは一新され、エクセルのような画面に値を入力したり、デザインをするかのようにオブジェクトを組み合わせたりして視覚的にアプリ開発ができるようになるため、これまでのプログラミングとは異なり「簡単そう」というイメージを多くの人が抱けるようになるかも知れません。
これは、現在技術職と呼ばれるプログラマーやシステムエンジニアからすれば、危機感を覚える方もいるというのは頷けます。知識を培ってきた人たちが、何の知識を持たない人たちに軽々と凌駕されてしまい、淘汰される側へと回ってしまうからです。
メリット
では、ノーコードは現在のプログラミングと比べてどういったメリットが有るのでしょうか?
それはやはり、開発工数の短縮です。
今までサイトづくりやアプリケーション開発で1ヶ月や半年とかかっていたものが、ものの1〜2週間で作れるようになるのです。
私がメインとしているPHPに関しても、完全ノーコードではありませんがWordPressというオープンソースのソフトウェアがあります。基本的にはノーコードで開発することはありませんが、お問い合わせフォームの導入や管理画面の実装など、管理画面でプラグインなどを組み合わせていけばノーコードで実装されている部分も少なくはありません。そして、それによって開発に要する時間は大幅に短縮されています。
Honeycodeも含めノーコード開発では、更にその上位互換と表現しても過言ではありません。それだけ、ソフトウェアは進化して、自由度の高い開発を可能にしています。
そして、アプリでは多く採用されるメッセージや投稿機能など一般的なものは、基本的にノーコードで実装することが想定されており、クオリティと自由度の高い開発が実現できるのです。
セキュリティやクオリティといった面だけを見ても、ノーコード開発では近年力を見せており、それこそが最大のメリットだという声もあります。
ユーザビリティの高いインターフェースはもちろん、そのバリエーションやデザイン変更の簡易化、ネットワークを介した情報のやり取りや保存、保管といった点に置いての標準で実装されたセキュリティ対策は、これまで集められた膨大なデータ量で計算された結果をもとに成り立っているからです。
インターネットの普及により、これまで以上にデータが資産になると言われ、計算機能が発達した現代、それが至る場所で実現されているということが証明されているのです。
スマートフォンアプリなどの開発においては、iPhoneやAndroidなどメジャーなデバイスはすべて網羅し、1つの開発で互換あるアプリができるというのも大きなメリットです。今まではリリースするプラットフォームによってそれぞれ適したコードを使った開発を行ったり、サイトづくりであればブラウザによって挙動が異なるというケースがありました。ですが、ノーコード開発ではそういった類似作業をなくすことを1つの目的としているため、汎用性の高いアプリを作り上げることができるのです。これも開発工数の短縮という点において大きなアドバンテージとなっています。
デメリット
技術が進化し続けても、メリットにはデメリットが隣り合わせとなります。ノーコード開発であれば、どれだけ自由度が高くなったとしても、やはり自由度はデメリットと言わざる終えません。
より広い視点で見れば、自由度の高さは年々高まり、気にならない程度へと変化を遂げていますが、細かなパラメータの設定やデータの受け渡しなど開発を進めていけば少なからずその壁に当たると言っても良いでしょう。例えば、イラストレーターの方であれば「手書きであればもっと簡単に繊細な表現をもたせることができる」といった悩みは少なからず1度は抱えたことがあるはずです。本質的にはそれと似ており、全体で見れば自由度の高さというメリットは目立つものの、ほんの些細なことが自由という不自由さを物語っていることがわかるのです。
また、ノーコード開発ではプログラムが全く動いているわけではありません。あくまでインターフェースを使って開発をしていますが、その後ろでは操作どおりに適したプログラムが生成され、組み合わさっているに過ぎません。
そのため、細かな自由度を追求するために「ノーコード」と「コーディング」を組み合わせるというのが主流かつ、切っても切り離せない関係になっています。複雑かつ幅広い知識は必要ないとしても、最低限のプログラミングの知識がなければ、それには対応することはできません。実は多くのノーコード開発では、プログラミングの知識があることを前提にしているものが多く、その見た目や便利さとは裏腹に、より専門的知識のある人だけが便利だと感じられるような玄人向けのソフトウェアだったりするのです。
私も以前アプリ開発の話を持ちかけられ、それがノーコードのソフトウェアを使った開発だったということがあります。一般にもリリースされているものですが、まだ一般的ではなく日本語化もされていないものでしたが、開発者から話を聞けば自由度の高さやメッセージ機能や管理機能などノーコードで十分にクオリティの高いアプリ開発ができるものだということはわかりました。ですが、Webhook、APIを使えばどうしても想定しているサービス以外はコーディングでデータの加工などをしなければいけないなど、自由度を追求するには知識が必要な部分が存在するということでした。
ですが、これはよりノーコード開発で自由度とその将来性を見据えるためには必要なことでもあります。ただ使いやすさやわかりやすさだけを追求するだけでは良いものはできず、それを扱う人間という操縦士のレベルも高くなければ、トータルで見れば進化とは言えないからです。
我々が学ぶべきこと
では今回の本題に移ります。
ノーコード開発のサービスが普及していけば、プログラミング学習は不要になるのでしょうか?
※ここでは、ノーコードのソフトウェアを作る人が必要とするプログラミングではなく、サイトやアプリ開発を仕事とする人が覚えるべきプログラミングだということで話を進めていきます
実はプログラミング学習は不要だとは言い切れません。ですが、必要な人と不要な人は今以上にカテゴライズされ、より学習レベルが求められることになると私は考えています。
現在サイト制作やアプリ開発でサービスをしている人や企業は、基本的にプログラミングは不要になる可能性は高いでしょう。それは、マイナス的な考え方ではなく、より効率をあげるためにはプログラミングの知識をつけるよりも、ノーコードのソフトウェアに関する知識をつけるだけで十分な仕事になるということです。
そして、より高度かつこれまでに実現しなかったような技術を使った開発をするためには、プログラミングのスキルが要求されるため、よりプログラミングを深く理解した人がプロジェクトに見合うだけの一定数必要になります。そのため、プログラミング学習をするのであれば、今まではOKだとされていた基準が一気に高くなるのです。
プログラミングを本格的に学ぶ
サイトもアプリも今以上に量産型となり、殆どの企業ではプログラマー以上に採用しているノーコードのソフトウェアを使える技術者が求められるようになります。今まで以上に案件数は増える分、開発にかかる時間は短くなるため、複雑なシステムを組み上げられるというよりも、効率よく量産できる人こそが重宝されるのです。
一方、銀行のシステムやセキュリティ重視のシステムであったり、より独自性の高いものを作るためには、プログラミングを本格的に学んでいなければ実現し得ないでしょう。
今まではプログラミングを身に着けようとしても、躓いてしまえば仕事には思ったように活かせないということが多かったはずですが、最低限の知識があればノーコード開発という方向へシフトすることができるため、潰しが利くようになったと言えばプログラミング学習の可能性は広がったと言えるでしょう。もしより理解を深めていくことができ、専門的なレベルまで到達できれば、より高度なアプリケーション開発へ携わったり、ノーコードを提供する側としても可能性が見い出せるため、より段階が明確になったという意味では、現実的かつ将来性の高い仕事に繋がるとも言えます。
技術力より発想力
もちろん段階が明確になればなるほど、ピラミッドの先端はより鋭利になり、下層から中層が飽和状態になります。そこで効率重視は間違いなく重宝されるのですが、それだけでは時間の経過とともに消耗戦となります。そうならないためにも、技術力以上に発想力が求められるでしょう。
ノーコードが一般的になれば、一般的な要求を満たすものは短期間でそこそこ高品質な物が出来上がります。だからこそ、意外性を突いたものや、それらを発想で応用した新しい感覚を生み出すようなサイトやアプリを武器にしなければ、勝ち抜いていくことができないでしょう。
一定レベルまで理解すれば、そこから更に高みを目指すべきか、それとも発想力やマーケティングなど、そこに付属するスキルを伸ばし、飽和した環境で突出するような知恵が求められるのは間違いありません。
実践力より理解力
今までのプログラミング、特に下層から中層では「動かすことができる」という実践的なスキルがより求められてきました。ですが、ノーコード開発では「基本的に動く」ということが当たり前となるでしょう。だからこそ「本当に理解しているかどうか」という点については今以上に注目されるでしょう。
これは、クライアント側の目線から見れば一目瞭然です。今までであれば、プログラミングなど一般的には高度な技術と考えられているものを提供できる人は少数派であり、できないクライアント側からすれば、動いていれば出来ていると判別してくれていました。ですが、より技術が一般化して今以上に量産型に移行すれば、動くというのは判断のたった1つに過ぎず、その理由付けや差別化される部分へと視点は向けられるのです。
現在でも、システムがもたらす利益や可能性という点においては追求されていますが、それ以上に我々開発者側の領域に入ってきて、判断ができるようになるということです。
ただ実践する力で満足するのではなく、自分が動かしているものを理論的に説明ができ、ほぼ100%の回答とその自信が今以上に必要なるのです。
まとめ
いかがだったでしょうか。
今回は「ノーコード開発で将来プログラミングは不要?我々は何を学ぶべきなのか」をテーマに、プログラミング学習の必要性やシステムエンジニアやプログラマーの今後についての考察をまとめました。
これからプログラミング学習を始めようとしている方や、現在システム関係の仕事についている人は、ぜひ参考にしてみてくださいね。