ChatGPTとローコード開発ツールの組み合わせは挑戦の価値あり
2022年11月末の公開からわずか1週間で100万人、2ヶ月で1億人のアクティブユーザー数を達成したChatGPT。これほどの短期間で爆発的にユーザーを獲得したサービスは、かつてありませんでした。人気の一方で、リスクや注意点も知られるようになっています。
プログラミングでも、優秀な補佐役として機能することに現場からは驚きの声が上がっています。上質な回答を得るための「呪文使い」としてのプロンプトエンジニアリングは、適切な様式に沿った入力によって出力を得る、まさにプログラミング。ということは、ローコード・ノーコード開発との組み合わせはベストなのでは?むしろ、ChatGPTそのものが、ノーコードツールなのでは!?
ソフトウェア開発にChatGPTを使うメリット
ITエンジニアたちの間では、ChatGPTが実現している、日常私たちが使う自然な文章でプログラミングコードが生成できるText-to-Codeの優秀さが注目されています。そればかりか、コードのミスを指摘したり、より効率的な書き方に調整してくれたりと、ペアプログラミングの頼れるパートナーとして活躍してくれます。ペアプログラミングとは、2人が1台のパソコンを共有し、共同でソフトウェアを開発する手法。指導役のナビゲーターと、実際にコードを書くドライバーがセットになって、エンジニア育成のOJTなどでも使われます。
また、質の高い回答を得るには、プロンプトと呼ばれる一定の質問様式を使うことが効果的だということも、広く知られるようになりました。例えば、これらを意識するとChatGPTが有効に機能します。
- 「プログラムコードを書いて」「修正して」と明確に指示する
- どのプログラミング言語についての質問か明確にす
- ChatGPTが果たすべき「役割」を明示するのも効果的
- 実現したいことをいくつかのステップに分けて、簡潔に示す
- コーディング規約を最初に示すのも有効
具体的には、このようなプロンプトがよく使われます。
- 下記の仕様に従って、処理を実行するためのJavaScriptコード、HTMLコード、CSSコードを書いて。
- xxxライブラリを使って、ボタンを押すとxxxを表示するコードを作成せよ。
- Javaでxxx型のパラメーターを受け取り、xxxを返す関数を作成せよ。
- あなたはUI開発者です。ペット管理用のモバイルアプリのUIについて、今からする質問に答えてください。
- あなたは優秀なソフトウェアエンジニアです。以下のコードをレビューして、実装内容を説明してください。
- 以下のJavaScriptをリファクタリングして。
- 以下のJavaコードを、Rubyで書き直して。
- 下記のエラーが表示されました。どう修正すればいいですか?
- TypeScript言語で、xxxする関数名を5つ考えてください。
- 以下はAWSから来た英語のメールです。日本語で要点を5つ示して。
他者と効果的に共同作業しながら、論理的思考を養い、プログラミングスキルを高めていく相手―まさに、コパイロット(副操縦士)としての十分すぎる役割です。
▼GitHub Copilotを正式リリース。すべての開発者が利用できるようになりました。 – GitHubブログ
ChatGPTで出力されたコードが正しく機能するかは、実際に動作させて確認することが必須なのは当然です。ミスがあったり、不足している機能があれば訂正・編集も可能です。
自然文の生成では、ハルシネーション(幻覚)というリスクが指摘されています。これは、大規模言語モデル(LLM)が学習した、過去のデータに基づく数学的な確率の影響を受け、巧妙に誤情報を混ぜてしまうことです。その点、プログラムは、ミスがエラーとしてハッキリ示されるので、より安全で手間が少ないといえそうです。
コミュニケーション面で、ChatGPTの副次的なメリットも
効果的なコミュニケーションはどの分野でも重要なスキルですが、ChatGPTも例外ではありません。自分が相手(ChatGPT)に何を求めているのか、入力として与える情報から得たい結果は何か、守るべき条件とは何か。明確な言語化と指示は、相手が人であっても重要であることを再認識できます。また、プログラミングの概念についての洞察を深めることにもつながります。
それは確かに正論。しかし、プログラミングは得意だけれど、他者とのコミュニケーションがあまり得意ではない(多くの)エンジニアには、別のメリットもあります。効果的な情報共有や日常会話など、ある程度定型化されたやり取りを自動化することこそ、AIが得意な領域の一つ。メンバー個人の創造的な潜在能力を引き出したり、論理的思考力を養う時間が確保できれば、チームとしてはプラスの効果が期待できます。
実際の業務で使える部分は限定されるとはいえ、単調な作業やストレスフルな変更は、自分でやったり、相手に気を遣いながら頼むよりも圧倒的に楽なことが再認識できます。この点からも、組織で許可されたガイドラインの範囲内で、ChatGPTを使うことを検討してもいいでしょう。
ローコード開発+ChatGPTという組み合わせは最強では!?
ChatGPTがコードを書いてくれるのなら、ローとはいえ、一部でプログラムを書く必要があるローコード開発と組み合わせれば、かなり効果的なのでは?むしろ、ほぼノーコード化では!?
確かに、ローコードとChatGPTの組み合わせは、いくつかの点でソフトウェア開発を強化できます。
アジャイルとしての高い親和性
ローコードツールの中で、限定的にコーディングしなければならなかった部分を、ChatGPTがある程度代用できる可能性はあるでしょう。両者の組み合わせによって、より迅速で効率的な開発サイクルが実現できます。
ソフトウェア開発を民主化する同志
強力な2つの組み合わせは、エンジニアを楽にするだけでなく、自然言語での会話を通じて、非エンジニアにソフトウェア開発を開放します。これは、慢性的に不足するIT人材の確保、さらにはDX人材の育成という点で、現役エンジニアにも大きなメリットがあります。
再認識するローコードの有効性
実務で使える現場レベルのアプリケーションを柔軟に開発し、自分の手元で内製化・カスタマイズするのは、ChatGPTでは実現できません。ローコード開発基盤の圧倒的な威力を再認識できます。
ローコードツールとChatGPTを組み合わせることで、システムによる業務管理と組織効率の向上や、ヒューマンエラーや属人性の排除はさらに強化されます。このソリューションが実現する革新的な開発プロセスの最適化は、実際に多くの現場で試されています。いろいろな人気のローコード・ノーコード開発プラットフォームで、ChatGPTとAPIで連携するサードパーティーの機能拡張がリリースされていますが、これらはさらに拡充していくことでしょう。
▼Search Forge: assets – OutSystems
https://www.outsystems.com/forge/list?q=ChatGPT
ローコード開発サービスにChatGPTを使う注意点
ただし、ローコード開発プラットフォームでChatGPTを組み合わせて使う時の制限や、潜在的な注意点を知ることも重要です。
ChatGPTはローコードの直接的な代替ではない
そもそも、両者は機能や目的、使われる範囲が全く違います。ChatGPTは、自然言語を処理してテキスト出力を生成する言語モデルです。その一部が、プログラミングにも使われることがわかっているに過ぎません(それでも、現役エンジニアを驚愕させるほどのレベル!)。一方、ローコードプラットフォームは、最初からソフトウェア開発に特化しています。グラフィカルなインターフェースと最小限のコーディングで、エンタープライズレベルのソフトウェア開発を実現するサービスです。ChatGPTとローコードプラットフォームは互いに補完し合うことができますが、ChatGPTはローコードツールを置き換える存在ではありません。
機能や柔軟性は減敵的なChatGPT
ChatGPTは、従来のコーディングに比べて機能や柔軟性が限られています。複雑なアプリケーションを構築したい、開発者やデータサイエンティストにとっては大きな制限となります。ただし、API連携する膨大なプラグインが増え続けています。
的確に指示するコーディングスキルの必要性
ChatGPTにコードレビューはできても、それを理解できるかは人の問題。つまり、どのような指示を出せば作業を自動化できるかは、一定のコーディングスキルが必須です。同様に、ローコード開発ツールを使いこなすには、コードの知識が完全に不要というわけにはいきません。
ChatGPTとローコード開発プラットフォームを組み合わせは、ソフトウェア開発のための強力なツールになります。ChatGPTは、対話形式でコードを生成することでコーディング支援を提供し、生産性を向上させます。一方、ローコードプラットフォームは、ソフトウェア開発の効率化を実現します。共に、非エンジニアが使えるツールとしても非常に魅力的です。
ただし、今回説明したメリットやデメリット、制限、注意点などは、当然「今のところは」という条件付きです。ChatGPTが進化し続ければ、さらにローコードツールを強力に補強したり、ある部分では逆に脅かす可能性すらあるでしょう。一方のローコードツールにしても、マーケットニーズの高まりと拡がりにも後押しされ、AI機能がさらに充実していくことは間違いありません。エンジニアとしては、実際に複数のサービスを使いながら、引き続きこの両者の動向に注目しておく必要がありそうです。
理人様 見ず知らずの者に温かいアドバイスをありがとうございます。 生物学の中だけ…
Soさん、ご質問ありがとうございます。 博士課程で必要な生物学の知識は、基本的に…
貴重な情報をありがとうございます。 私は現在データエンジニアをしており、修士課程…
四葉さん、コメントいただきありがとうございます。にんじんです。 僕がこの会社この…
面白い話をありがとうございます。私自身は法学部ですが哲学にも興味があります。 ふ…