はじめに
前回の記事ではKiroの基本的な機能を紹介しました。
今回の記事では1つのシステムの仕様を複数人で分担して開発する場合や、Kiroのトラフィック制限などによりKiroが動かない場合に一時的に手動実装などKiro以外の方法で実装が進んでしまった場合にどうなるかを試してみました。
【AWS】話題のKiroのルールファイル適用やアーキ図から実装など注目機能を試してみた【KIRO】
今回の記事で利用するシステムの説明
【主要タスク】
- 電卓アプリのディレクトリ構造を作成(models、views、controllers、tests、styles)
- 基本演算(加算、減算、乗算、除算)を実行するCalculatorEngineクラスを実装
- ゼロ除算、オーバーフロー、無効な入力のエラーハンドリングを実装
- 基本計算フローの実装
- 数値入力→演算子→数値入力→等号の基本フローを統合
- 小数点計算機能の実装
- クリア機能の実装
1つのシステムの仕様を複数人で分担して開発する場合
やること:SPECを分割する
Kiroのドキュメントにも記載がありますが、SPECは複数の仕様に分けて管理することが可能です。
SPECを分割することにより、それぞれで競合なく実装タスクを実施することができ、焦点を絞った仕様の管理ができます。
SPECを分割する方法
SPECファイルは手動でも分割できますが、Kiroとのチャットで分割方法の提案を受けながら、分割することができます
ここでは「このアプリケーションを複数人のチームで開発を行います。SPECを分割できますか?」とチャットに入力しました。
その結果、以下のような分割方法を提案してくれました
- フロントエンド UI担当 - UIコンポーネントとスタイリング
- ビジネスロジック担当 - 計算エンジンとデータモデル
- 統合・テスト担当 - コントローラーと全体統合
機能別の分割だと以下のような分割を提案してくれました
機能別分割案
- 基本計算機能 (Basic Calculation)
四則演算(+、-、×、÷)
数字入力処理
等号(=)による計算実行
基本的な計算ロジック - 入力制御機能 (Input Control)
小数点入力処理
バックスペース(削除)機能
クリア機能(C、AC)
入力検証とエラーハンドリング - UI・表示機能 (UI & Display)
電卓レイアウトの作成
表示画面の実装
ボタンデザインとスタイリング
レスポンシブデザイン - キーボード操作機能 (Keyboard Support)
キーボードイベント処理
キーマッピング
キーボードショートカット
アクセシビリティ対応 - 統合・テスト (Integration & Testing)
各機能の統合
エンドツーエンドテスト
ブラウザ互換性テスト
最終調整とデバッグ
今回は、より細かい分割になる機能別分割にしました
分割結果
分割した結果、分割されたフォルダごとにSPECの3つのファイルが生成されました
元のSPECは削除すべきかどうか
分割の結果、最初に作った全体の仕様が記載されたSPEC(キャプチャ画像内ではcalculator-app)が残っていますが、これは削除してよいものです
SPECの分割を行うと、要件や仕様まで分割されるので全体の要件や仕様を1つのファイルでまとめて俯瞰できる資料にもできるので、必要に応じて残すか削除するかを決めてください。
タスクをする上での誤操作を防止する観点でいえば、削除しておいた方が安心と言えます。
タスク実行
作業分担された自分の作業を実行する際には、自分の担当するフォルダ内のSPECを実行するようにKiroにチャットで依頼するか、タスクファイルの「Start task」ボタンを押してください。
今回はKiroのチャットで「calculator-ui-display のタスクを実施してください」と依頼しました
手動実装などの割り込みが発生した場合
やること:成果物をスキャンしてタスクリストの状態と同期する
kiroはタスクを実施するだけではなく、現在の実装内容をスキャンすることでタスクがどこまで進んでいるかを確認することが可能です。
そのため、例えばKiroではない別のツールや手動実装した内容を取り込んだ場合や、既存のシステムをKiroに取り込んでSPEC開発運用に切り替える際にも、プログラムなどの成果物とその仕様とタスクの進捗状態の同期をとることができます。
試してみた
ここでは、先ほどのSPECを分割した状態のプロジェクトに対して、外部で作成したUIのタスクの成果物を取り込んでみました。
UIタスクの「Update Task」を実行することで、現在のプロジェクトの成果物をスキャンしてどこまでタスクが進んでいる状態なのかを判定してタスクリストを更新してくれます。
<状態2:外部で開発したUIに関する成果物を取り込んだ状態>
<状態3:UIに関するSPECのtasks.mdの「Update Tasks」を実行>
「Update Tasks」を実行するとチャット欄で成果物のスキャンが行われている様子が確認できます
確認が進むにつれて、実装できていることが確認できたタスクには完了マークがつきます
完了していないタスクは完了マークがつかないです。
未完了タスクや続きのタスクを実施したい場合は、そのタスクの「Start tasks」を実行します
さいごに
最初にKiroを試した時には全体の要件と仕様、タスクリストが記載されたSPECファイルが生成されたので、これをどうやってチームで分担して開発を進めるか疑問でした。
Kiroのドキュメントを読んだり自分で試した結果、SPECの分割ができることや、Kiroの外で作成された成果物も取り込むことができることが分かったので、開発における様々な場面に対応できる良いツールだと再確認できました。
今後のKiroの機能アップデートにも期待しつつ、様々な使い方を検討し、検証して、その結果を発信していきたいです。