Approach / つくり方
塗るのは 確かめたものだけ
CodeCiaoはAIエージェントを使って開発しています。コードを速く書けるようになった分、確かめる作業に時間を使います。
Line & Fill
線と塗り
線は設計塗りは確かめた事実
このサイトの文字と図形には、線と塗りの2つの状態があります。線はこれからつくるものの設計を表します。塗りは動くことを確かめたものを表します。設計しただけのものと、書いただけのコードは線のままです。確かめる工程を1つ通るたびに塗りが増え、人が確かめた時点で全体を塗ります。
Flow
5つの工程
-
01 / 05 設計
線を引く 設計書を基準にする
実装の前に設計書を読み、不明点を質問し、テストの計画を書きます。実装の途中で仕様が変わったら設計書も直します。
具体的には
- 設計書はMarkdownで書き、実装とは別に管理します
- 実装の変更と設計書の変更を、同時に出します
- 判断の理由を記録に残します
-
02 / 05 実装とテスト
書く AIエージェントが実装する
実装はAIエージェントが担当します。書いたAIエージェントが、先に決めたテストを通すところまでを実装とします。AIに任せる範囲と、人に確認を取る条件も先に決めておきます。
具体的には
- AIへの依頼は、数字と検証できる完了条件で書きます
- 大きな作業は工程ごとに分け、成果物をファイルで受け渡します
-
03 / 05 別のAI
確かめる 別のAIが検証する
書いたAIとは会話を共有しない別のAIが、変更の内容を判定します。この手順は人の注意力に頼らず、仕組みとして担保しています。
具体的には
- 書く役と評価する役を分けます
- 評価役は、コードを書いた経緯を知らない状態で評価します
-
04 / 05 自動のチェック
止める 自動のチェックが止める
一度起きた失敗は、ルールとテストに変えます。同じ失敗が起きると、次からは自動のチェックが変更を止めます。
具体的には
- 仕様とのずれ、データの分離、SQLの書き方を独自のチェックで検査します
- 失敗したテストと実行していないテストを、合格として扱いません
-
05 / 05 人の確認
決める 人が決める
次の5つは人が決めます。
- 金額
- 納品物の最終確認
- アーキテクチャの大きな変更
- セキュリティ
- 人に関わる判断
AI
AIに任せること 任せないこと
AIに完全性を求めない
-
数える作業はスクリプトに任せる
決まった手順で動くスクリプトが、全件の抽出・件数の集計・帳票の出力を担当します。AIには判断と文章の作成を任せます。
-
3段階で確かめる
スクリプトが全件と件数を、検証役のAIが内容を、担当者が業務への影響を確かめます。
-
確信度を分けて根拠を示す
AIが出した結果は、どこまで確かなのかを分けて示し、そう判断した理由を記録します。分からないものは「分からない」と書きます。
Judgment
判断の基準
できていないことも書く
CodeCiaoはAIの品質を実際より良く見せません。まだ保証できていない点と、原因が分かっていない点は、そのまま文書に残します。試行版の開発段階から、本番移行の計画と切り戻し手順を用意します。
長く保つほうを選ぶ
CodeCiaoは機能を足す前に、その機能が本当に必要かを確かめます。ご要望をそのまま通せない場合でも、「次の段階で対応する」「運用で対応する」といった代替案を提示します。技術は流行しているかどうかではなく、長く使い続けられるかどうかで選びます。使われないシステムをつくっても、顧客の役に立たないからです。
Hand over
渡す
つくったものは説明できる形で渡す
-
01 Design doc
設計書
Markdownで書いた設計書を、仕様の基準にします。
-
02 Runbook
手順書と引き継ぎの資料
ほかの人が同じ作業を続けられるように書きます。
-
03 Video
解説動画
システムの仕組みと決定の経緯を、動画で説明します。新しく入るメンバーと顧客の両方に見せます。
-
04 Training
研修
実務と同じ形式の課題で進めます。AIは自由に使えます。ただし、提出したコードを自分ですべて説明できることを条件にしています。
Contact
まずは Ciaoから
この進め方を自社の開発に取り入れたい方も、相談してください。