NoCodeというワードをご存知ですか?
日本でも2020年に入りこのワードの注目度が高まっています。
NoCodeの登場によって世界は、そしてエンジニアの将来はどのように変化するのでしょうか?
NoCodeとは
コードを書かない
NoCodeとは、その名の通り「コードを書かない(でアプリなどを作る)」という意味の言葉です。
そのようなサービスを指して使われることも多いかもしれません。
2020年に入りNoCodeというワードは急上昇しています。
※「trends.google.co.jpで接続が拒否されました。」と表示される場合は、サードパティ―クッキーを有効にしてみてください。
NoCodeサービスの何が凄いかと言うと、プログラミング言語を知らなくても、アプリケーションやウェブサイトなどを作成できるということです。
すなわち、誰でも開発者になれる時代の到来です。
有名なツールとしては、比較的高度なことまでできるBubbleや、タスク自動化のZapierなどが挙げられます。
実はGAFAMも子会社を買収したり、何らかの形でNoCode領域に参入済みです。
(Facebookはちょっと分からなかったですが。)
例えばGoogleは、今年の1月にAppSheetというノーコードのアプリ開発プラットフォームを買収しています。
さらに最近、Tablesというノーコードのプロジェクト管理ツールのベータ版を公開しました。
残念ながら日本ではまだ試すことができないですが、カンバン方式のタスク管理が可能とのことで、少し気になっています。
この通り、使えないと言われてしまいます。
GoogleのNoCodeへの力の入れ具合は凄まじいですね。
このように、今後もNoCode領域の拡大は確実だと言えそうです。
全く新しいサービスな訳では無い
ここまでNoCodeが2020年のブームで、とても新しい新鮮なサービスであるかように話をしてきましたが、そういう訳ではありません。
例えばこのブログはWordPressを使用しています。
このWordPressも、NoCodeツールの1種です。
用意されているテンプレートを利用して、また用意されている拡張機能を活用しつつ、プログラミングを一切せずにサイトやブログの作成が可能です。
WordPressの登場により、サイト制作の敷居は下がりました。
もちろん中身を弄れば、さらに深くカスタマイズすることも可能です。
では、なぜ今になって「NoCode」という形でこのようなサービスが注目されているのでしょうか?
それはNoCodeでできる範囲が広がったからだと考えられます。
これまでプログラミングなしでできることと言えば、WordPressをはじめとしたサイト制作程度でした。
それが最近では、アプリの制作やタスクの自動化など、様々なことが実務レベルで可能になってきています。
これまでプログラミング言語の習得からスタートしていたことが、プログラミングなしに可能になり、注目されてNoCodeというワードもできたのではないでしょうか。
NoCodeのメリット
シンプルな物であれば、コードを書くよりも速い
基本的に、用意されているパーツをパズルのように組合せていくことで、アプリの作成ができます。
なのでシンプルな物であれば、コードを書くよりも速いことがあります。
これは、基本的にメイン部分の処理の作成のみでアプリなどの制作が可能になるためです。
共通となる基礎部分やセキュリティ対策のための部分などは既に仕組みが作られており、最小限の記述(というより設定)のみで済みます。
今年コロナで世界が大きく変わりましたが、この変化にNoCodeでシステムを作成していち早く対応した企業や自治体などもあります。
今後もどのような時代の変化が起こるかは分かりません。
スピーディーに開発できる点は、NoCodeのメリットです。
直感的な操作で、視覚的にも分かりやすい
NoCodeの開発には、専用のソフトウェアを利用することが多いと思います。
そして一般的にパーツの組合せで作成します。
例えば、ボタンとそれをクリックした時の遷移先が線で繋がったり、レイアウトを見ながらドラッグで配置を決めたりできますよね。
直感的な操作で、視覚的にも分かりやすい開発を行うことが可能です。
適切なコメントを記述していなければ、将来の自分さえも理解できないソースコードが出来上がってしまうことがありますが、NoCodeではそのリスクが低減しそうです。
開発者が増える
NoCodeでアプリなどの開発を行えるようになったことで、これまでプログラミングができずに諦めていた人たちが、アイデアを形にできるようになります。
これにより、市場により良いアプリが登場する可能性が高まります。
新たなツールが考案され、生活(というと少し大げさかもしれませんが)がより快適になるかもしれません。
例えば、市区町村レベルでテイクアウトをまとめたサイトみたいなものがあったような気がします。
その市の市民にとってはありがたいツールですが、その他の人にとっては需要はありません。
このようなニッチな需要に応えやすい点でも、NoCodeは優れています。
NoCodeのデメリット
中の仕組みを理解できない
NoCodeには、どうしても中の仕組みがブラックボックスになりやすいというデメリットがあります。
知る必要が無い、知らなくても作れてしまうからです。
そのことが裏目に出てしまい、自身の技術面での成長が抑制される結果となってしまう恐れがあります。
特にセキュリティ関連の知識が乏しいことは、大きな問題です。
NoCodeに限らず、ライブラリの利用などでも同様のことが言えますが、例えばユーザー入力を受け付けるこのパーツ(関数)は裏側で何を行っているのか、など知らなければ脆弱性に気付くこともできません。
知らず知らずの間に脆弱性を生みやすいというNoCodeの危険性には注意しておく必要がありそうです。
と言っても、逆にその辺りがしっかりと対策されている信頼性の高いサービスであれば、むしろ自作関数を使用するよりも優れているということもあり得ます。
さらに、理解したうえで適切に利用すれば、先ほども言ったように、セキュリティ部分を気にせずメインのアルゴリズムなどの作成のみに集中できると捉えることもできます。
その意味ではメリットかもしれませんが、やはり判断ができるためにも、コア部分に関する学習は独立して必須になります。
そのサービスごとに特有な操作などの学習は必要
NoCodeだとソースコードを書かないため開発が簡単だと感じられているかもしれませんが、そんなことはありません。
ソースコード記述の代替となる、そのサービス(ソフトウェア)特有の操作を学ぶ必要があります。
つまり、それなりの学習コストは覚悟しておく必要があります。
できることがプラットフォームに依存する
やはりNoCodeには限界があります。
そのプラットフォーム上で提供されていること以上のことはできません。
分かりやすく言えば、パーツの組み合わせで作成ができると言いましたが、裏を返すとパーツが用意されていなければ作成できません。
サービスによってパーツの品揃え?は違うので、目的にあわせてサービスを使い分けるなんてことをしていると、学習コストも比例して増加することになります。
それならばオールマイティなNoCodeサービスを作ればよいと思われるかもしれませんが、パーツやできることを増やしすぎると、今度は初心者が取っつきにくくなってしまいます。
上部のメニューやメイン領域のビューがたくさんあるソフトウェアって、初めはちょっと抵抗感を感じてしまいますよね。
NoCode開発のソフトウェアを使いこなすことが、プログラミング習得よりも難しくなってしまっては元も子もありません。
サービスが終了したら、終わり
制作物は、そのサービスに完全に依存することになります。
「利用料上げます」とか「サービス終了します」とか言われると、困ってしまいますよね。
でも逆らうことはできません。
このリスクを減らすためには、ある程度の規模の信頼できるサービス選びが大切になります。
エンジニアの仕事は無くなるのか
無くなることはない
エンジニアの方の場合、NoCodeが普及すると、ライバルが増えて仕事が奪われるのではないかと不安になられるかもしれません。
しかしそのような心配は必要ないと考えています。
ノーコードはまだ黎明期です。
ノーコードツールもノーコードで作るようになって・・・と全てがノーコードに置き換わることはないと予想します。
すなわち、従来通りプログラミング言語を用いた仕事の需要は今後も継続していきます。
ただし、エンジニアの定義が少し変化する可能性はあるかもしれません。
エンジニアと言えば、バリバリにコード書ける人、黒い画面で1日中カタカタしている人、といったイメージかもしれません。
しかし今後は、「エンジニアです。コードは書けません。」というNoCode専門のエンジニアが表れるかもしれません。
冗談ではありませんよ。
なおこの表現は、こちらの記事のタイトルから引用させていただきました。
2030年 「エンジニアです。コードは書けません。」|__shinji__|note
こちらの記事、タイトルにも惹かれますが、中身もとても有益です。
ぜひ見てみて下さいね。
高いスキルが求められるようになる
エンジニアの定義とあわせて、求められるスキルにも変化が考えられます。
現在はエンジニア不足と言われており、売り手市場です。
しかし、NoCodeサービスやプログラミング的思考の教育導入などにより、人材が増えると将来的にはどうなるでしょうか?
レベルの低いエンジニアは必要なくなります。
そもそもプログラミング言語は世界共通の言語、すなわちライバルは世界全体です。
敵は常に増え続けていると考え、自身のスキルを高めていくことが重要になります。
また、特定の言語への精通も大切ですが、それだけではいけません。
プログラミング言語を習得しなくても開発が行えるようになってきているわけですから、プログラミング言語をマスターしているだけのエンジニアでは価値がありません。
- クリエイティブな発想
- 中身(仕組み)にまで詳しいからこそ作成できる信頼性やパフォーマンスの高いアプリ
- 高いスキルや知識を生かしたツールの発明
このような能力が求められます。
クリエイティブなエンジニア
もう少し深掘りしましょう。
頭の中にある完成形のイメージをプログラムに落とし込むことが、NoCodeで誰でもできるようになる。
それはすなわち、ソースコードを書けるというスキルの価値が低下することを意味しています。
つまり要望通りのソフトウェアなどを制作できるだけのエンジニアの価値は低下します。
それでは、どうすれば良いのでしょうか?
1つの答えとして、アプリケーションを作品として捉えてみてはいかがでしょうか?
作曲したり絵画を描いたりするように、クリエイティブな発想で開発を行いましょう。
過去にないアイデアや新しい仕組みは、そのままあなたの希少価値となります。
また顧客の要望から、その裏側にある本当の目的やより良いゴールを提案できるエンジニアも価値が高いと言えます。
- ネイティブアプリよりもウェブアプリで実現する方が適しているのではないか
- こうした方がUXが高まるのではないか
などと言った提案をできるようなエンジニアが理想的です。
NoCodeを学習すべきか
重要度は高くはないと考える
(既に1つ以上のプログラミング言語を習得しているエンジニアが)ノーコードを学習すべきかと言われると、NOと答えます。
それは、ノーコードでは従来以上のものを作ることができないからです。
既に1つ以上のプログラミング言語を習得しているのであれば、それを深めた方が良いと考えられます。
と言っても専門分野に関係することですから、気分転換に一度触れてみるのは良さそうです。
NoCodeに触れておくメリット
(既に1つ以上のプログラミング言語を習得しているエンジニアが)ノーコードに触れておくメリットとして、今のレベルのノーコードで結局何ができるのか、ということを知れることが挙げられます。
従来のプログラミングと両方を知っていることで、部分的にノーコードを活用したり、適切な手段を選択することができるようになります。
ノーコード専門のエンジニアには、なせない業です。
新しいプログラミング言語を学んで使い分けることと本質的には変わりありませんが、選択肢を多く持ち、それらを上手く活用して効率化・最適化していく。
そのためにも、NoCodeに触れておいて損はないでしょう。
まとめ
数年前から考えると、今は小学生がスマホ持ってる?!みたいな世の中になりました。
しかしNoCodeの登場によって、そのうち小学生がアプリ開発?!みたいな時代になるかもしれません。
大袈裟ではなく、義務教育でプログラミング的思考が取り入れられたこともあり、興味を持つ小学生がいてもおかしくありません。
さらには一億総開発者社会になるかもしれません。(この言い方もう古いのかな??)
そのような将来の社会で、どのような形で頭1つ抜き出ることができるか。
これが重要になりそうです。