ノーコードでプログラマーが不要にはなりません。限界があることをエンジニアが解説します。
こんにちは!
現役Webエンジニアの今井(@ima_maru)です。
プログラマーやエンジニアを目指す方や既にそういった職種として働いている方なら、一度は「ノーコード開発がプログラマーやエンジニアの需要を奪ってしまうのではないか」という不安を抱いたことがあるのではないでしょうか。
今回はそんなノーコード開発のプログラマー不要説について、実際のところどうなのかについて解説していきます。
ノーコードとは?
ノーコードとは、コードを書く作業を必要としない開発手法です。
従来ではコーディングやプログラミングを用いて開発を行っていた「Webアプリ」「Webサイト」「スマホアプリ」「業務システム」などを、コードなしで開発ができるという点が魅力で注目されている理由の1つでしょう。
ノーコードでプログラマー・エンジニアは不要になるの?
ノーコード開発でプログラミングせずにシステムやアプリが開発可能なのであれば、プログラムを書く「プログラマー」は今後必要なくなってしまうのでしょうか?
また、非ITエンジニアでも開発ができるということも謳われているため「エンジニア」も必要ない気がしてしまいます。
そんなプログラマー・エンジニア不要説について詳しく見ていきましょう。
【結論】プログラマーやエンジニアは必要!
結論から言いますと、プログラマーやエンジニアは必要です。
その理由は大きく分けて二つあります。
- ノーコード開発には限界があるから
- ノーコードツールを開発するのはプログラマーやエンジニアだから
それぞれ簡単に説明します。
理由①:ノーコード開発には限界があるから
まず第一の理由としてノーコード開発の限界が挙げられます。
現在のノーコード開発にはまだまだ限界があり、できないことや課題が多く存在しています。
そのため、そのような課題がクリアされない限りプログラミングによる開発やプログラマーの需要がなくなることはないでしょう。
具体的に言えば、プログラミングに比べて自由度が低い点やアプリケーションの実行速度が劣ってしまう点などです。
自由度低いというのは、「こういうことやりたい」というのが実現できない場合が多いということです。
このような課題はノーコードツールの構造上の問題であり、すぐに解決できるようなものではないと予想できます。
理由②:ノーコードツールを開発するのはプログラマーやエンジニアだから
また、大前提として「ノーコードツールを開発するのはプログラマーやエンジニアだから」ということも挙げられます。
ノーコード開発はノーコードツールを使って開発を行うことでコードを書かずに開発できるわけですが、そのノーコードツールの開発はプログラマーやエンジニアが担当します。
基本的にノーコードツールはどれもプログラミングを用いて開発されたアプリケーションです。
裏では何十何百ものプログラマーやエンジニアがいて、ノーコードツールが便利で多機能になるように日々開発が行われています。
そういった点からも、今後一切プログラマーやエンジニアが必要なくなるというのは否定できますね。
今後のプログラマーやエンジニアが必要とされる場面
プログラマーやエンジニアは必要といったものの、ノーコード開発で代用できてプログラマーやエンジニアが必要ない場面が多いのも事実です。
ここからは、「じゃあ今後どういった場面でプログラマーやエンジニアが活躍するの?」ということについて解説していきます。
複雑な機能要件を持ったアプリケーション開発
独自のアルゴリズムを用いた機能や複雑な計算処理を必要とする機能など、複雑な機能要件をもったアプリケーションの開発にはプログラマーやエンジニアが必要でしょう。
というのも、現状ノーコードツールではそういった機能を開発するには限界がありますし、今後できるようになるとも思えないからです。
「ノーコードツールも進化するから独自のアルゴリズムだって実装できるようになるんじゃないの?」と思う方もいるかと思いますが、そのような機能全てをノーコードツール上でカバーするのはコストが高すぎますし、立派な機能ならノーコードツールに組み込まず自前のサービスとしてリリースするほうが普通だとも言えます。
そのような理由から、ノーコードツールはあくまで汎用的な機能のみを高品質で提供するというスタイルになるのが妥当でしょう。
実行速度を求めるシステム開発
実行速度を求めるシステム開発にもプログラマーやエンジニアが必要でしょう。
実行速度を求めるには「コードの最適化」が必須です。
ノーコードツールはコードを書かないだけであって、結果的にノーコードツールが生成したコードを実行しているわけですから、そのコードが最適化されていなければ高い実行速度を出すことはできません。
現状、ノーコードツールは多くの制限があり吐き出されるコードの最適化が十分ではないため、プログラミングを用いた開発に比べると実行速度が劣ってしまうと言われています。
大規模システム開発
大規模システム開発には必ずと言っていいほどプログラマーやエンジニアが必要になるでしょう。
大規模なシステム開発は前述したような複雑な機能要件を持つ場合や実行速度を求める場合が多いです。
またそれに加え、大人数のチーム開発になります。
現状のノーコードツールではチーム開発に適しているともいえないため、そのようなことをすべて含めれば明らかにノーコード開発するべきではないと言えます。
OSやデバイスドライバなどのハードウェア制御系のシステム開発
コンピューターを動作させるOS、マウスやキーボードなどのデバイスを管理するデバイスドライバなどをはじめとして、ハードウェアを制御するためのプログラムを開発するためにプログラマーやエンジニアが必要でしょう。
ここら辺はノーコード開発の苦手な部分です。
パソコンの話だけではなく、家電製品やネットワーク機の組み込み機器全般にも言えることです。
ノーコードツール自体の開発
前述したように、ノーコード開発に用いるノーコードツール自体の開発にもプログラマーやエンジニアが活躍するでしょう。
アプリ開発を汎用的にサポートするようなノーコードツール「Bubble」「Adalo」「Glide」もありますが、ECサイト構築に焦点を絞った「Shopify」「BASE」や業務システム開発に焦点を絞った「kintone」「Salesforce」など、特定の分野に絞り機能を充実させているノーコードツールも少なくありません。
後者のような特化型のノーコードツールが今後増えていくのであれば、それに伴いノーコードツールを開発するプログラマーやエンジニアの需要が上がることになるでしょう。
ローコード開発
ノーコード開発とプログラミングのいいとこどりをした開発手法にローコード開発があります。
ローコード開発では、ノーコード開発の苦手とする部分をコーディングやプログラミングで補うという手法をとるため、プログラマーやエンジニアのほうが有利に開発を進めることができます。(非ITエンジニアでも簡単にできる程度の少量のコードを書く場合が多いですが)
そのため、ローコード開発を行うことができるプログラマーやエンジニアも需要があるでしょう。
【余談】むしろプログラマーやエンジニアにノーコードをおすすめしたい。
Webエンジニアとして、プログラミングを用いたWeb開発とノーコードツール「Bubble」を用いたノーコード開発を経験した身からすると、是非ともプログラマーやエンジニアの方にノーコードをおすすめしたいと感じます。
その理由としては、ノーコード開発にもプログラマーやエンジニアとして培ったスキルが大いに活きるからです。
大いに活きるというよりも、そのスキルがないと良いアプリやシステムが作れないと感じました。
例えば、データベース設計のスキルがあったからこそきれいにデータを取り扱える場面もありましたし、アプリ開発のノウハウがあったからこそ賢く機能を実装できる場面もありました。
やはり、ノーコードツールはどこまで行ってもツールに過ぎません。
システム開発を楽にしてくれるツールなのです。
そのため、設計や実装方法などツールだけではカバーしきれない部分が出てくるのは当然で、そういったところにエンジニアリングの能力・スキルが活きてくるのではないでしょうか。