「コードを書かない時間」に忙殺されるソフトウェアエンジニア
一般的なソフトウェア開発のライフサイクルは、プロダクトディスカバリーや要件定義から始まり、設計、実装、テスト、デプロイ、そしてフィードバックといった流れで構成されている。その一方で、多くの開発現場において、エンジニアは実装作業だけでなく、ドキュメントの所在確認やプロダクトマネージャーとの要件調整といった作業に忙殺されている現実がある。古川氏は、特に大規模な既存コードベースの言語移行や、要件が曖昧なままタスクが降りてくる状況といった、技術的には可能だが心理的・時間的負担が大きい作業の存在を指摘する。
これらの課題に対し、アトラシアンが提案する答えがコーディングAI「Rovo Dev」だ。これまで同社は「Confluence」によるナレッジマネジメントや「Jira」によるプロジェクト管理といった、開発の「周辺」を支えるツールを提供してきた。Rovo Devの登場により、開発工程そのものについてもAIで支援することが可能となる。
本セッションでは「Todoアプリの改修」という例を通して、Rovo Devを使った2つのデモンストレーションが披露された。
「難しくないが地道で大変」「感情的な対立を生みかねない」タスクをAIにアウトソース
まず、古川氏はJavaScriptで書かれたログインコンポーネントのコードをTypeScriptへ変換する様子を紹介した。まずはJiraのチケットに記載された要件を確認。今回のデモンストレーションでは以下のような要件が記載された。
- 指定された.jsファイルをTypeScriptのソースコードに変換し、それに伴う型定義を変更する
- ビルドする際に必要なツールチェーンの設定をする
- ユーザーがログインボタンを押した際に、入力内容を含むログを出力する
- ログにはログイン試行の成功/失敗も含める
これらを踏まえて、Rovo Devに「指定されたJiraのチケットの内容を実装し、プルリクエストを作成して」と指示すれば、記載された要件を満たした処理が自動で行われる。もちろん、修正履歴もログとして残され、コードの動作確認とその結果も記録される。
このようなソースコードの変換やログ出力の追加といった「技術的には難しくないが、地道で大変な作業」こそ、AIが真価を発揮する領域であり、たとえ数百ものファイルが存在したとしても一気に対応可能だ。
さらに、古川氏はAIによるコードレビューも実施。「Bitbucket」と連携したAIエージェントによって、プルリクエストに上がってきたコードをレビューできる。リポジトリ内のコードや一般的なLLMが持つ汎用的な知識だけでなく、組織およびプロジェクトが独自に定めたルールのほか、JiraやConfluenceのデータも参照し、アトラシアンの製品群と密接に連携。精度の高いコード生成やレビューが実現する。例えば、単に「ログを追加して」という指示に対しても、プロジェクトの標準ライブラリや出力形式を理解した上でコードを書き換えることができる。
デモンストレーションでは「ユーザーが入力したパスワードの一部がログに出力されてしまっている」というセキュリティリスクの指摘や、未使用のインターフェースなど、不要なコードをAIによってチェックする様子が披露された。もちろん、この指摘を踏まえてAIにコードを修正させる指示も可能だ。
コードレビューでは、仮にレビュアーが「このコードはひどい」と感じたとしても、人間が直接指摘すれば感情的な対立を生むリスクがある。しかし、「AIがガイドラインに沿って指摘している」という形を取ることで、レビューの客観性が担保され、エンジニアは心の平穏を保ちながら技術的な議論に集中できる。

