「コードを書かない時間」に忙殺されるソフトウェアエンジニア
一般的なソフトウェア開発のライフサイクルは、プロダクトディスカバリーや要件定義から始まり、設計、実装、テスト、デプロイ、そしてフィードバックといった流れで構成されている。その一方で、多くの開発現場において、エンジニアは実装作業だけでなく、ドキュメントの所在確認やプロダクトマネージャーとの要件調整といった作業に忙殺されている現実がある。古川氏は、特に大規模な既存コードベースの言語移行や、要件が曖昧なままタスクが降りてくる状況といった、技術的には可能だが心理的・時間的負担が大きい作業の存在を指摘する。
これらの課題に対し、アトラシアンが提案する答えがコーディング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がガイドラインに沿って指摘している」という形を取ることで、レビューの客観性が担保され、エンジニアは心の平穏を保ちながら技術的な議論に集中できる。
AIチームメイトとコラボレーション!「曖昧な要件」を具体的にリライト
続いてのデモンストレーションでは、Jiraに記載された「曖昧な要件」をAIによって改善する機能が紹介された。例として提示されたのは以下のような要件だ。
- Todoアプリのユーザーがタスクを「Doing」から「Done(完了)」にした際、うれしくなるような演出を表示してほしい
- アニメーションや画像など、派手で楽しい感じに
何となく想像はできるものの、Rovo Devで実装を指示することを踏まえると、もう少し具体的な内容のほうが望ましい。古川氏はJiraと連携したRovoのAIアシスタントに「わかりにくいので、もっと具体的な要件を書くように」と指示。すると、曖昧な要件が整理された形で表示された。さらに古川氏は出力されたコードを改修することを見越して、「ビジュアル素材を差し替えやすくして」と要件に追記。この内容をもとに、「指定されたJiraのチケットの内容を実装して、コミットはまだしないで」とRovo Dev上で指示すると、先ほどと同じようにコードが生成された。
実装された内容を動作させてみると、要件の通り「Done」にタスクを移動することで、紙吹雪やクラッカーのイラストを使った派手な演出が追加された。
ここで古川氏はさらに「エンジニアのクリエイティビティ」を発揮する例として、同氏の写真を使った「景気のよい演出」に改修するように追加で指示。先ほどの「素材を差し替えやすくする」という要件の追記がここで活きてくる。
そして、改修された内容で再度実行すると、写真が回転しながら大きく表示されるより華やかな演出に変わった。
人間とAI、それぞれの特性を活かした開発プロセスの変革
今回のデモンストレーションを通して古川氏が訴えたのは、AIを「チームメイト」にして、開発者の創造性を発揮することの重要性だ。AIは人間が一生をかけても習得できないであろう「広範な知識」を持ち、ソースコードなどを短時間で「大量にアウトプット」できる点が強みである。加えて、「何度でもやり直しできる忍耐強さ」があり、人間が相手では心理的抵抗が生じるような、度重なるリテイクや細かい仕様変更も、AIであれば躊躇なく依頼できる。「こうしたAIの特性は、これまでの仕事のプロセスを変革する可能性を秘めている」と古川氏は話す。1つ目のデモンストレーションはその特性を十分に発揮したものだ。
一方、人間の開発者は言語化しにくい「暗黙知」を持ち、「創造的な設計・実装」に取り組もうとする姿勢や「新たなチャレンジ」に向き合う熱意もある。2つ目のデモンストレーションで示されたように、AIにすべてを任せるのではなく両者の特性を踏まえ、人間とAIが対話を重ねてコラボレーションする。この点が、これからの開発プロセスの鍵となる。
ソフトウェア開発のライフサイクル全体を支援するアトラシアン製品
今回のデモンストレーションではRovo Devによって、コーディングとその前後の工程をAIがサポートする模様が披露されたが、アトラシアン製品にはソフトウェア開発のライフサイクル全体を支援する機能がそろっている。例えばデプロイではクラウドの設定をレビューすることも可能なほか、運用においては過去のナレッジをConfluenceにまとめておき、AIに参照させることもできる。
古川氏は最後に「とにかくAIを活用すればよいというわけではなく、ソフトウェア開発者がいるからこそ、うまくAIが使えている状況が理想」と述べ、改めて人間とAIのコラボレーションの重要性について触れ、セッションを締めくくった。
アトラシアンからのお知らせ
本セッションでご紹介したRovo Devにご興味を持たれた方は、ぜひ公式サイトをご覧ください。

