この記事の章立て 概要 何が発表された? バイブコーディングの問題点とは何なのか? スペック駆動開発の仕組みはどうなっているのか? ステアリングファイルでチームの標準をどう保つのか? スペックからトランスポートのリリースまでの流れは? 新規開発と既存コードの変更はどう進めるのか? 料金と提供形態はどうなっているのか? 日本のユーザーはどのように始められるのか? 自分にはどう関係する? まとめ 概要
AWSブログによると、SAP ABAPの開発においてAIを使ったコーディングの課題を解決する仕組みが紹介されました。その名は「スペック駆動開発」です。SAP ABAPとは、SAPのシステムで使われるプログラミング言語を指します。
コードを作る前に仕様をしっかり文章にしておくのが特徴です。開発の目的や判断の理由をきちんと残せます。AI任せの早い開発で起きがちなトラブルを防ぎたいチームにとって、見逃せないアプローチとなっています。
何が発表された?
今回の発表は手法に関するものです。AIコーディングエージェントを使ってSAP ABAPのコードを作成・モダナイゼーションする際の手法です。モダナイゼーションとはシステムを最新化することを意味します。
既存のSAP ECCを運用している企業が移行する際、カスタムコードの見直しが急務となっています。SAP ECCとは古い世代の基幹システムのことです。企業は「RISE with SAP」などに移行しています。
しかし、その場しのぎのAI活用には問題がありました。ドキュメントが残らず、後からの修正が難しくなるという課題です。
これに対処するため、AWSはワークフローを公開しました。「AWS Coding Plugin for SAP ABAP」を活用したスペック駆動開発のワークフローです。このプラグインはKiro CLI上で動作します。Kiro CLIはAWSのエージェント型開発環境におけるコマンドラインインターフェースです。対象となる主な環境や要素は以下の通りだ。
SAP ECCおよびSAP S/4HANA環境におけるABAP開発
Kiro CLIとAWS Coding Plugin for SAP ABAPの組み合わせ
要件・設計・タスクを管理する3つのMarkdownファイル
あわせて読みたい AWS週刊アップデート:BedrockとTrainiumの最新情報 → バイブコーディングの問題点とは何なのか?
直感的なやり取りだけでAIにコードを書かせる手法があります。これは「バイブコーディング」と呼ばれることがあります。素早くコードが手に入る一方で、大きな弱点があります。複雑な要件や大規模なプログラムでは致命的な弱点となります。
AIにはコンプレックスがあります。コンテキストウィンドウには上限があるのです。コンテキストウィンドウとは一度に記憶できる情報の量のことを指します。長い会話を続けるうちに、最初のビジネスルールを忘れてしまうのです。
その結果、コンパイルは通るものの実際の業務では使い物にならないコードが生まれます。コンパイルとはコンピュータが読める形式に翻訳することを意味します。次の開発者がコードを引き継いだときにも問題が起きます。設計の根拠が残っていないため、プログラムを1行ずつ読み解く無駄な手間が発生することになります。
スペック駆動開発の仕組みはどうなっているのか?
スペック駆動開発は、ワークフローの中心に仕様を据える手法です。SDDとも呼ばれます。コードを生成する前に、要件やシステム設計を明確に定義します。実装上の判断についても同様です。
仕様は平易な言葉で書かれます。そのため、AIがコードを書前に人間がレビューして合意を取ることができます。
Birgitta Böckelerが提唱する3つのレベルに沿って運用されます。3つのレベルとは、スペックファースト、スペックアンカー、スペックアズ・ソースです。仕様が作業完了後も保持される点が特徴となっています。AWSのプラグインでは、仕組みが用意されています。要件・設計・タスクを記録する3つのMarkdownファイルを用いて、このワークフローをSAP開発に持ち込む仕組みです。
ステアリングファイルでチームの標準をどう保つのか?
どの開発チームにも共通の標準が存在します。命名規則やデータベースアクセスのルールといった標準です。これらを毎回AIに指示し直すのは非効率です。AWSのプラグインではファイルを置くことができます。接続されたSAPシステムごとに「ステアリングファイル」と呼ばれるMarkdownファイルを置くことが可能です。
一般的なステアリングファイルの例としては、以下のような標準があらかじめ定義される。
レポートの命名規則(Zで始まるモジュール別の形式)
出力方法(クラシックなリスト出力ではなくCL_SALV_TABLEのみを使用)
例外処理(CX_ROOTまたはそのサブクラスを使用)
データベースアクセス(Open SQLのみ、SELECT *は禁止)
テスト(ビジネスロジックの80%カバレッジ)
トランスポートの説明文の書式
スペックからトランスポートのリリースまでの流れは?
ABAP開発におけるプロセスは3つのフェーズに沿って進みます。これはAI-Driven Development Lifecycleのフェーズです。AI-DLCはAI駆動開発ライフサイクルを意味します。プラグインを利用した実際の流れは以下の通りだ。
Inception(開始): エージェントがステアリングファイルを読み込み、開発者と協力して要件や設計を定義する。承認される前にコードが書かれることはない。
Construction(構築): エージェントがABAPコードを書き、ABAP Test CockpitチェックやABAP Unitテストを実行して合格するまでループを繰り返す。ATCチェックとも呼ばれる。
Operations(運用): トランスポートを本番環境にインポートする。仕様はGitリポジトリにコミットし、変更の意図を保存する。
新規開発と既存コードの変更はどう進めるのか?
新規開発の場合はシンプルです。仕様を書いてからコードを生成します。一方、既存のABAPコードを変更する場合はアプローチが少し異なります。
まずエージェントに現在の処理内容を要約させます。それをスペックの土台にするのです。
その後、変更しない部分も含めて目指す最終状態の全体像を記述します。この手順を踏むことで、これまでドキュメント化されていなかった古いプログラムであっても対応可能です。変更を重ねるごとに最新の仕様書が備わっていくことになります。
料金と提供形態はどうなっているのか?
AWS公式ブログによると、AWS Coding Plugin for SAP ABAP自体は無料で利用できます。ただし動作には条件があります。Kiro CLIのサブスクリプションが必要となるのです。
無料枠から使い始めることが可能です。無料枠では50クレジットが提供されます。より多くの容量が必要な場合の有料プランも用意されています。有料プランとしては、月額20ドルのProプランから月額200ドルのPowerプランまで用意されています。
日本のユーザーはどのように始められるのか?
日本国内のユーザーも今日からすぐに試すことができます。開発者ドキュメントに沿ってセットアップを行えば問題ありません。導入にあたっての具体的な手順や注意点は以下の通りだ。
Eclipse ADT環境からサンドボックスのSAPシステムに接続する。Eclipse ADTとはABAP開発用のEclipseプラグインのことである。
期待される結果がわかりやすい、シンプルなレポートを最初の題材に選ぶ。
エージェントと一緒にスペックを書き、コード生成前に必ず人間が承認する。
完成したスペックをGitにコミットし、次回の変更時にも活用する。
自分にはどう関係する?
エンジニアなら
AIに丸投げして動くコードが量産されるのを防げます。中身がわからないコードが生まれるのを防ぐことが可能です。自分の意図した設計通りのプログラムを効率よく作れるようになります。
企画・マーケティングなら
直接コードを書かなくても開発プロセスに参加できます。AIと対話するための仕様の段階から参加することが可能です。要件の段階から関わることで、ビジネスの意図を正確にシステムに反映させやすくなります。
経営者・管理者なら
SAPのカスタムコードや古いシステムのモダナイゼーションを安全に進められます。カスタムコードや古いシステムは属人化しがちでした。明確なドキュメントと判断の記録を残しながら安全に移行を進められるようになります。
まとめ
AIコーディングを実務で安全に使いこなすためにはコードそのものを管理してはいけません。「仕様」を管理することが重要になります。AWSが提供するツールを活用してください。まずは小さなタスクからスペック駆動開発を試してみてほしいです。
次回の変更要求が来たときに驚くはずです。仕様が残っていることのありがたさを実感できるはずだからです。