AIコーディング
先月、2年ぶりにパリへ出張しました。
異世界系アニメを彷彿させる石造りの街並みは、非日常そのもので、まるで転生してしまったかのようでした。
思わず、冒険者ギルドを探してしまいました(笑)
今はもう、スマホのおかげで海外旅行が劇的に快適になりましたね。
パリの入り組んだ路地も、レストランで渡されるメニューにも、頭を抱えることなく旅の醍醐味を満喫できるようになったのは、便利なスマホアプリのおかげです。
それはそれとして、物価が高すぎる!^^;
今回は、目を見張るばかりに進化を遂げているAIによるコーディングをテーマにしました。
皆さまも、AIを活用して劇的に、開発効率を上げていると推察いたしますが、ローコードツールであるdbSheetでのAI活用は、ちょっと事情が違いますよね。
そのへんのところに触れてみたいと思います。
AIコーディングのメリットとデメリット
まずは、一般的に語られているAIコーディングのメリットとデメリットのオサライです。
<メリット>
① 開発スピードの大幅な向上
AIは、定型的な処理(作成、読み出し、更新、削除、UIの雛型生成など)を即時にコード化できます。
人手で書くよりも圧倒的に速く、プロトタイプを短期間で作成できます。
② バグや構文ミスの削減
AIは、文法的に正しいコードを自動生成するため、ケアレスミス(カッコ漏れ、変数名のタイポなど)を減らせます。また、テストコードの自動生成にも活用でき、品質の底上げが期待できます。
③ 技術的な調査コストの削減
新しいライブラリやフレームワークを使う際、AIに「このAPIの実装例を示して」と聞けば即座にサンプルを提示してくれます。ドキュメントをすべて読むより効率的です。
④ コード標準化・ドキュメント化の促進
AIに「社内標準に合わせてコメントを整形」「命名規則を統一」といった指示を出せるため、開発メンバー間のコード品質を一定に保ちやすくなります。また、仕様書やAPIドキュメントの自動生成も可能です。
⑤ 非エンジニアも試作に参加できる
業務部門の担当者が自然言語で「こんな入力画面を作りたい」と伝えると、AIがコードやUIを提案できます。
要件定義の早期可視化に役立ち、開発部門との認識ずれを減らします。(dbSheetの特長にも通じます)
<デメリット>
① コード品質の一貫性が保証されない
AIが出力するコードは文法的には正しくても、最適設計であるとは限りません。
チーム全体で設計思想を共有していないと、保守性の低いコードが混在するリスクがあります。
② セキュリティリスクの増加
AIは一般的なコード例を学習していますが、業務固有のセキュリティ要件(入力検証、認証、権限管理など)を十分に考慮しない場合があります。そのまま本番運用すると脆弱性を残す危険があります。
③ 正しい要件を伝えないと誤ったコードを生成
AIは自然言語の指示に基づいて動くため、要件が曖昧だと「それっぽいが間違った処理」を生成します。
結果として、後で修正コストが増大する可能性があります。
④ 開発者のスキル低下リスク
AIに頼りすぎると、設計力やデバッグ力などの基礎スキルが育ちにくくなります。
中長期的には、自力で問題を解決できない開発者が増える懸念があります。
⑤ 機密情報の取り扱いリスク
クラウド型AI(例:ChatGPTやCopilotなど)に社内コードや顧客データを入力すると、情報漏洩リスクが発生します。オンプレ環境や社内制限モデルの導入が必要になる場合があります。
dbSheet開発への適用
dbSheetは、ローコードツールとして認知されていますが、実はその開発においても、AIコーディングを部分的に活用する余地があります。
「ローコードなのに、なぜコーディングが必要なのか?」と思われるかもしれません。
その答えは、dbSheetが単なるフォーム生成ツールではなく、Excelの柔軟性とデータベースの堅牢性を融合させたプラットフォームである点にあります。
dbSheetで構築されたシステムは、Excelをベースに稼働するため、VBA(マクロ)を制限なく組み込むことが可能です。
また、メジャーなデータベース上で動作するため、ストアドプロシージャも利用できます。
これらのVBAやストアドプロシージャは、多くの場合、特定のデータ処理やビジネスロジックを実行するための「単発的なプログラム」となります。
AIコーディングの文脈では、この「単発的」な性質が大きな利点となります。つまり、AIへの指示(プロンプト)が比較的シンプルになり、後述するように、ゴールの設定から機能の指示までを短時間で行いやすくなるのです。
ERPフロントエンド
企業の情報システムにおいて、基幹システム(ERP)へのデータ連携は常に重要なテーマです。
特に、各種サービスから出力される請求明細を、そのまま会計データとして取り込むことはできず、間に「変換」という作業が必要になります。
会社貸与のスマートフォン通信料金を、端末使用者に応じて部署別通信費として振替伝票を起票するプロセスを例に、dbSheet開発への適用を考えてみましょう。
全体の流れはシンプルです。
① 請求明細の読み込み: 通信会社のサイトから請求明細ファイルをダウンロードし、dbSheetに読み込みます。
② 仕訳データへの変換: 請求明細データを加工し、ERP取り込み様式(仕訳データ)へ変換します。
③ ERP連携: ERPデータ取込用ファイルを出力、またはAPI連携で基幹システムへ送ります。
dbSheetはローコードツールですが、②の「変換プロセス」こそが、正確な会計処理を実現するための肝であり、ここにはプログラム処理が不可欠です。
例えば、このプログラムでは、次のような「人の目」に代わる厳格なチェックと加工を行います。
① フォーマットチェック: 前触れなくフォーマットを変える業者に対応するため、読み込んだファイルが正しいかを確認。
② マスタ照合と紐付け: 請求明細上の端末番号と、社内の使用者マスタを照合し、紐付け(誰の経費か)。
③ 固定値の付与: 読み込んだ項目の値に応じて、通信費の勘定科目コードなどの固定値をセット。
④ 金額の整合性チェック: 請求金額合計が個々の明細の合計と一致するかを確認し、データの正確性を担保。
⑤ 個別処理(按分): 複数部署に所属する使用者の場合、費用を部署ごとに按分する等の特別な処理。
CSV入力タスクでシートに展開した後、これらの複雑な処理を行う手段として、VBA(マクロ)が一般的に用いられます。また、取り込んだ請求明細データをいったんワークテーブルに取り込み、ストアドプロシージャで処理することも可能です。
数百件程度の明細であればマクロで十分に実用的な処理速度が出ますが、数千件を超える大規模な処理では、処理速度が速いストアドプロシージャを利用する方が賢明な判断となるでしょう。
ここで重要なのは、dbSheet上でマクロを使うメリットです。
それは、これらのVBAを、いわゆる「野良マクロ」ではなく、「管理できるシステムの一部」として扱える点にあります。
属人化しがちなデータ加工ロジックをシステム内で一元管理できることは、保守性と内製化を進める上で計り知れない価値があります。
このように、dbSheetは、Excelの柔軟性を保ちながら、ERPの厳格なデータ要件を満たすフロントエンドとして、経理・情報システム部門の業務効率化に大きく貢献できるのです。
AI時代のシステム開発論
最近、AIコーディングの話題は尽きませんが、そのメリットの裏側で、しばしば指摘されるリスクがあります。
それは、デメリットとして挙げた「正しい要件を伝えないと誤ったコードを生成する」という点です。
これは、システム開発の成否を分ける要件定義の重要性を、改めて浮き彫りにしていると言えるでしょう。
これは、コーディングに限らず、上司が部下に仕事を依頼する時と全く同じ構図です。
AIは、人間のように上司の意向を察して「忖度」したり、「阿吽の呼吸」で意図を汲み取ったりはしてくれません。しかし、その反面、どんな指示に対しても不貞腐れることなく、就業時間外であっても精一杯の答えを返してくれる、究極の「有能な部下」であることは間違いありません^^;
この高性能なAIを最大限に活用するためには、我々人間が要件の伝え方を洗練させることが肝心です。
筆者が単発のVBAプログラムやストアドプロシージャの開発にAIを活用する際に意識している手順は、以下の通りです。
①ゴールを明確に示す
まず、「〇〇〇するVBAプログラムを作ってください」といった最終的な目標(開発のゴール)を明確に伝えます。
②背景と目的を共有する
次に、そのプログラムが必要な背景や目的を伝えます。AIに全体の文脈を理解させることで、目的から逸脱したコードが生成されるリスクを減らします。
③基本機能を絞って指示する
必要とする基本機能をいくつかに絞り込み、具体的な指示として伝えます。
④逐次アップデートを行う
いったん基本機能が完成したら、欲張らずに、追加する機能を1つずつ伝えてアップデートを重ねていきます。
人間が集中すべき「設計」の領域
コーディング自体はAIに任せられる時代が到来しましたが、将来の保守性、パフォーマンス、そしてシステム全体の整合性を考慮したシステム設計やアーキテクチャの判断は、当面、人の知恵が優位でしょう。
私たちITコンサルタントやエンジニアは、単純なコード書きから解放され、むしろこの「設計」のパートや、お客様の業務に深く入り込んだ真の要件定義といった、人にしかできない付加価値の高い領域に集中すべきだと考えられます。
いずれにしても、数日かかっていた開発が数時間で終わってしまうという事実を目の当たりにして、この先、人間の仕事はどうなってしまうのだろうかという漠然とした不安がよぎる今日この頃です。
この変化をチャンスと捉え、AIとの新しい共存の道を模索していくことが、デジタルトランスフォーメーション(DX)の時代を生き抜く鍵となりそうですね。

皆さん本日もお疲れ様でした!
おやすみなさい(挙手)
ディスカッション
コメント一覧
まだ、コメントがありません