トレタ開発者ブログ

飲食店向け予約/顧客台帳サービス「トレタ」、モバイルオーダー「トレタO/X」などを運営するトレタの開発メンバーによるブログです。

開発部でAIハッカソンを始めました

こんにちは、トレタでVPoEをしている北川です。

先日、開発部で初めての「AIハッカソン」を開催しました。テーマは「AIで業務をアップデートする」。発起人である私が、なぜこのハッカソンを始めたのか、当日どんな雰囲気だったのか、これからどうしていきたいのか、 当日の様子を振り返りながら書き残しておきたいと思います。

なぜAIハッカソンを始めたのか

普段から考えていたのは、「開発部のメンバーには、もっと積極的にAIを使ってほしい」という素朴な思いでした。

トレタでは日々の業務の中でAIを使う場面が確実に増えています。コードを書くとき、ドキュメントをまとめるとき、調査をするとき。ただ、その使いこなしには個人差があります。

すでにヘビーユーズしているメンバーもいます。彼らに話を聞くと、「コーディングはほとんどAIに生成させて、自分はレビューに回るほうが多い」という声がよく出てきます。「こんなこともAIで出来てしまう?」と尋ねてみると、「おそらく可能だと思う」という答えが返ってきます。ただ、そこまで踏み込んで試すには業務時間中の隙間では足りない、というのが正直なところのようでした。それなら、まとまった時間を確保してやってみようと考えました。

一方で、まだあまりAIを業務で使えていないメンバーもいます。彼らにとっては、まずは触ってみる時間と、他のメンバーがどんなふうに使っているかを目の前で見られる時間が必要だと感じていました。

この両者を同じ場に集めたら何が起きるだろうか。そんな思いで、業務時間内に丸一日を確保し、AIに集中する場をつくることにしました。発表のクオリティではなく、「他の人がどう使っているか」を見て、聞いて、自分の業務に持ち帰ってもらうこと。それによってAIの活用がチームに根づき、より積極的に使われていく状態をつくる、それを目的としました。

ハッカソンのルールも、できる限り間口を広くとりました。

  • AIを必ず使うこと(ツール・API・モデルは問わない)
  • 個人参加でもチーム参加でもよい
  • 動くもの(プロダクト)の完成は不要
  • アイデア・提案・プロトタイプ・フローの設計でも歓迎

「動くものは作らなくていい」とすることで、参加のハードルを下げました。目に見える成果物が残らなくても、自分が試してみたかったことを試し、それを言語化できれば、十分に意味があると思っています。

当日の様子

オフィスに集まって朝から取り組み、地方在住の一部メンバーはMeetでオンライン参加。普段の仕事の形そのままで、特別な準備は何もしませんでした。

午前のアイスブレイクから始まり、ランチを挟んで午後はひたすらハック。中間チェックの時間を一度入れて、困っている人がいれば共有、というゆるやかな進め方にしました。

夕方からは発表タイム。短い枠で、取り組んだことを話してもらいました。

印象に残った発表

ここからは、特に印象に残った発表をいくつか紹介します。

問い合わせ調査の自動化

サポートからJiraやNotionに不具合疑いの調査依頼が起票され、Sentryなどでログやエラーを調査し、原因の仮説を立てて不具合を修正する。普段の業務で何度も繰り返している、それなりに時間のかかる作業です。

実際にあった調査依頼をモデルケースとして、その内容をAIに渡し人が行うのと同じようにSentryのエラーログやアプリケーションログを確認できる状態を整え、原因まで辿り着いて修正案を出せるようにしていく、そんなアプローチでした。

結果としては、最終的に人と同じ修正案まで辿り着くことができました。今回はNotionに修正案を作成する段階までにとどめましたが、Pull Requestの作成まで踏み込むことも十分に可能だと思われます。

この仕組みはハッカソンの後すぐにでも実業務で使える精度になっており、調査の効率とスピードが格段に上がりそうな感触がありました。次回以降のハッカソンでは、この仕組みを複数のプロジェクトに横展開できるよう、さらに深掘りする回ができないかと考えています。

Playwrightによるブラウザ操作自動化

定期的に繰り返し行っている経費精算の作業を、AIにPlaywrightのコードを書かせてで自動化する、という内容です。

Claude CodeのComputer Useでも同様のことは行えそうですが、決まりきった操作内容であれば、Playwrightで実行するほうが確実で実行速度も速いです。

実はこの発表、エンジニアではなくPMによるものでした。AIが当たり前にコードを書けるようになって、エンジニアでなくてもコーディングを使って自分の業務を改善できるようになってきています。「PMが自分でツールを書く」のは、AIによってできることが広がった象徴的な事例だと思います。

AIによるテストデータの生成

こちらもPMによる発表でした。テストデータの作成・管理にかかっていた負担を、AIを使って大きく減らすという内容です。

複数のパターンの掛け合わせのようなテストデータを作るのは、AIにとって得意分野です。今後新しく条件が増え、掛け合わせのパターンが増えていっても、簡単に対応できることに大きな価値を生んでいます。

その他の発表

紹介しきれませんが、他にも以下のような発表がありました。

  • 過去の全コードレビューを取り込んだレビュースキルの開発
  • AIを使ったE2Eテストの作成
  • Dify を用いたRAGによる店探しツール
  • コードレビュー並列化スキルの開発

それぞれが「自分の業務をどう変えたいか」という起点から出ていて、AIの使い方も多様でした。

やってみてわかったこと

一日終えて、いくつか気づいたことがあります。

それなりのものができる

率直なところ、数時間でもそれなりのアウトプットが出るものだな、と感じました。「動くもの(プロダクト)の完成は不要」というルールは、結果として杞憂でした。

ひと昔前なら、新しいツールや機能を試して試行錯誤しただけで終わってしまうような場面で、それなりの成果物を全員がつくれたというのは、AIならではだと感じました。

全員が一通りAIを使う機会を設けたことで、全体の基礎レベルも一段上がった気がします。「どこで詰まったか」「どういうプロンプトを書いたか」が共有され、知識レベルが揃っていくことで、相互の情報共有は今後さらに活発になっていくと思います。

人それぞれのアプローチ

人それぞれでアプローチの方法は多岐にわたり、それによってアウトプットの精度にも差が出てくることがよくわかりました。

調査依頼のスキルについては、「ソースコードやログなど必要な情報と使い方を教えればできるだろう」という漠然とした期待を持っていました。ただ、今回の発表で高い精度が出たのは、正解の原因がわかっている状態からスタートし、そこに辿り着くための方法を反復・改善するアプローチを取ったからこそだと思います。

ほかにも、プロンプトを工夫するという手段よりもコードを書かせるほうが揺れが少なく、冪等な処理には向いているということが、Playwrightによる自動化の発表からよくわかりました。

エンジニアでなくてもコーディングを使った成果が出せる

ハッカソン全体を通じて、PMから続けて技術的な発表が出てきたこと。これが、私にとって今回のハッカソンで一番印象的な出来事だったかもしれません。

簡易なスクリプトやツールが、コーディングスキルがなくてもすぐに作れてしまう、ここにAIの大きなインパクトを感じました。AIが書いてくれるからこそ、自分の業務改善を自分でできる。職種の壁が薄くなっていく手応えを、はっきりと感じた一日でした。

これからも続けていきます

このハッカソン、今後も定期的に開催していくつもりです。

「やってよかった」で終わらせず、続けていくことで、AI活用が文化として根づくスピードを上げていけると考えています。次回は調査依頼の自動化をさらに深掘りする回をチームでやれないかと、構想を練っているところです。

最後に

ハッカソンといえば最後は打ち上げ、ということでしっかり肉を食べて英気を養いました。

トレタでは一緒に働く仲間を募集しています。

sites.google.com

2025年 トレタ開発部振り返り

こんにちは、トレタでVPoEを務めている北川です。 この記事はトレタ Advent Calendar 2025の記事です。だいぶ遅刻してしまい、大晦日に執筆しています……。

年末ということもありますので、本記事ではトレタのプロダクト開発部における2025年の取り組みを振り返ってみようと思います。

開発 & リリース

215

リリースノートを見返してみたところ、今年のリリース回数は合計「215回」でした。 1年は約52週ですので、平均すると週に約4回の頻度でリリースを行っていた計算になります。

リリース内容は新機能の追加からバグ修正まで様々ですし、プロダクト自体も多岐にわたるため、この数字が一概に「多い」とは言えないかもしれません。 しかし、今期は開発指針として「大きな機能を一度に出すのではなく、小さくリリースを重ねる」ことを掲げていました。その点では、少しずつでも継続的にユーザーへ価値を提供し続けられた一年だったと感じています。

比較的規模の大きな開発に絞って振り返ると、プレスリリースを出した案件は「トレタ予約台帳」で6件、「モバイルオーダー・トレタO/X」で5件でした。今年は他社システムとの連携など、プロダクトの広がりを強化する開発が多かった印象です。

プレスリリース | 株式会社トレタ

チーム体制

今年は、開発組織の枠組みを変えることにトライした年でもありました。

マイクロサービスとサイロ化

これまでのトレタの開発文化では、組織図上は「フロントエンドチーム」「バックエンドチーム」といった職能別で構成されていました。しかし実態としては、「モバイルオーダー注文アプリチーム」「決済システムチーム」「POS連携チーム」といった具合に、プロダクトやマイクロサービスごとにチームが分かれて動いていました。

この体制での課題は、一つの機能追加を行う際に1チーム内で完結できず、複数チーム間での連携が必要になることでした。 リリース当初の規模が大きい開発では並列稼働も有効でしたが、比較的小さな機能追加を繰り返すフェーズに入ると、チーム間のコミュニケーションコストや、認識の齟齬による手戻りが無視できなくなってきました。 IF定義書などで対策しても、「値がない時はnullなのか空文字なのか」といった細かい部分でのミスは頻発します。また、各チームが「機能の一部の部品作り」に終始してしまい、全体を通しての振る舞いに対する意識が希薄になる、全体を見通す人に負荷が集中し考慮漏れが起きる、といった問題も発生していました。

目的別チームへの再編

そこで、チームを大きく3つの目的別に再編しました。

価値向上チーム / 体験向上チーム: いわゆるデリバリーチームです。「顧客価値」の提供を目的とし、1チーム内で開発を完結できるよう、プロダクトを横断して開発を行います。

基盤開発チーム: プラットフォームとしての共通部分を開発しつつ、デリバリーチームと連携します。

この体制により、開発ロードマップの項目を各チームに明確に振り分けられるようになり、各チームが仕様検討からリリースまで自走できるようになりました。エンジニアにとっては、よりフルスタックな動きが求められ、上流工程にも関わりやすくなりました。

マトリックス体制への着地

一方で、この体制にも副作用がありました。「プロダクトごとのオーナーシップ」が希薄になったことです。 SLO管理、エラー対応、ライブラリ更新などの保守業務を行うメンバーが明確でなくなり、なし崩し的に「以前担当していたメンバー」が対応せざるを得ない状況になってしまいました。

そのため最終的には、目的別チーム(横串)に加え、プロダクト別チーム(縦串)も改めて設定し、双方向に関わるマトリックスな所属形態に落ち着きました。 現在は、各プロダクトを担当するメンバーが整備やルール作りを行い、形式的にでもレビューに入ることで「プロダクトの秩序」を守る役割を担っています。 結果として、これまで特定のチームに属人化していた知見がオープンになりつつ、他のチームメンバーも手を入れやすいコーディングルールが整備されるという流れが生まれています。

出社回帰

昨年までは完全フルリモートでしたが、今年からは全社的に一部出社の方針となり、開発部では週1回の全体定例日を出社日としています。

出社の目的の一つはコミュニケーションの改善です。前述の通り、開発におけるコミュニケーションコストの削減は積年の課題でした。 フルリモート時代、全員カメラオフで行っていたオンラインミーティングに比べると、対面での打ち合わせは確実に空気感が良くなったと感じます。特に社内の技術発表会(テックトーク)では、以前より確実に発言が増え、活発な意見交換が行われるようになりました。

課題としては、週1回の出社日に予定を詰め込もうとするため、その日がミーティングで埋まりすぎてしまう点でしょうか。 個人的には「合宿」と称して、必要なメンバーで半日ほど会議室に籠もり、設計会を行う動きをたまに行なっています。ホワイトボードを囲んで集中して取り組む時間が、もっとオフィス内で頻繁に行われるようになると良いなと考えています。

AIブーム

開発現場におけるAI利用は、もはや「ブーム」という一過性のものではなく、不可逆な変化となっています。

この1年を振り返ると、ChatGPTが懐かしく感じるほど変化が激しい年でした。最近の社内ではClaude Codeの利用率が最も高く、エディタもCursorが流行していましたが、現在はAntigravityへ移行している場面もあります。 当初は会社制度としてChatGPTのアカウントを付与していましたが、ClaudeやCursorなどツールの入れ替わりが激しく、制度設計が追いつかないほどです。最近は「トークンがすぐ切れるのでClaudeのMaxプランが必須」という声も増えてきました。

社内ではメンバーの発案で「AIテックトーク」という情報交換会も始まりました。隔週30分の開催ですが、新しいモデルやサービスが次々と出てくるためネタが尽きることがありません。コーディングの現場から少し離れている私にとっては、キャッチアップの場として非常に重宝しています。

AIで生産性は上がったのか?

よく議論になる「AIでエンジニアの生産性は上がったのか」という問いに対しては、AIテックトーク内での反応を見る限り「そこまで劇的には上がっていない」というのが正直なところです。 テストコード生成やスペック駆動開発など様々なアプローチが試されていますが、多くの場面において「コーディングにかけていた時間が、AIへの指示や生成物の管理(マネジメント)の時間に置き換わっただけ」というのが、生産性が微増にとどまっている背景のようです。いかにAIを複数並列に動かしていくかが今後の課題になりそうです。

一方で、確実に便利になった場面もあります。 初見のコードを読む際の補助としては非常に有益で、先述した「プロダクトを横断して開発を行う」体制において、既存コードの理解を助ける強力なツールになっています。 また、実装前の高速なプロトタイピングも増えました。プロトタイピングと「Vibe Coding」は相性が良く、デザインやUXの検証・ブラッシュアップを早期に行えるため、手戻りが減り、結果として開発サイクルが早まるケースも出てきています。

さいごに

こうして1年を振り返ってみると、かなり前の出来事のように感じるくらい、密度の濃い開発を行ってきたなと感じます。 無事にこの1年を走り抜けることができたこと、まずはメンバー全員に感謝を伝えたいと思います。

来年はさらに忙しくなりそうで、今はその準備に追われる年の瀬です。 それでは皆様、良いお年を。そして2026年もトレタ開発部をよろしくお願いいたします。

開発マネージャーが取り組む仕様駆動開発の現在地

こんにちは、トレタでVPoEをしている北川です。

この記事はトレタアドベントカレンダー2025 1日目の記事です。

今年のテック業界のトピックといえば、やはりAIを避けて通ることはできませんので、この記事では開発マネージャーとしての自分の日々の業務の中でどのようにAIを活用しているかについて書いていきたいと思います。

開発マネージャーの日常とAI

VPoEという立場になってからプログラミングをする機会はだいぶ少なくなりましたので、今の開発業務の大半は要件定義や仕様作成です。

これまでドキュメント作成のサポートとしてChatGPT、Cursor、ClaudeCodeなど様々なAIツールを試してきましたが、最近特に力を入れて取り組んでいるのが「仕様駆動開発」という手法と、それを支援する「cc-sdd」というツールです。

仕様駆動開発とは

仕様駆動開発(Specification-Driven Development)は、要件定義、設計、タスク作成、実装というプロセスを順にAIが生成するものをレビューしながら進めていく開発手法です。

従来の開発では、要件定義から実装まで一気に進めてしまい、実装内容にある意味ガチャが発生していたものを、仕様駆動開発では各段階でマークダウンでのドキュメントを作り、人が都度レビューを行うことで意図した実装に近い内容を生成させていきます。

この手法が注目を集めるきっかけとなったのが、AWSが公開した「kiro」というツールです。

kiroとは

kiroは、AWSが開発した仕様駆動開発を支援するAIツールです。開発者が要件を入力すると、AIがそれを元に設計書やタスク分解を提案してくれます。

https://kiro.dev/

要件定義から設計、タスク分解、そして実装までのワークフローをAIと対話しながら進められる点が画期的で、このツールの登場により、仕様駆動開発というアプローチが広く認知されるようになりました。

cc-sddとは

https://github.com/gotalab/cc-sdd

cc-sddは、好きなAI Agentを使いながらkiroを模した開発ができるようになるオープンソースのツールです。kiroがAWS独自の環境で動作するのに対し、cc-sddは様々な開発環境に統合できる柔軟性があるのと、無料で使える利点があります。

私はClaude Codeを使っていますが、cc-sddをインストールすると/kiroコマンドが使えるようになります。基本的なワークフローは以下の通りです。

  • /kiro:spec-init で初期構築
  • /kiro:steering で事前情報のインプット
  • /kiro:spec-requirements で要件定義書作成
  • /kiro:spec-design で設計書作成

本来はこのあとにタスク作成と実装のステップがありますが、私は設計書作成までで利用しています。実装はそこで生成された仕様書を開発チームに渡して任せます。

仕様駆動開発をやってみてわかったこと

現在、1〜2ヶ月ほど仕様駆動開発を試していますが、まだまだベストプラクティスには全然至っておらず、いくつか課題が見えてきました。

既存プロジェクトへの適用が難しい

これは仕様駆動開発に限った話ではありませんが、既存プロダクトの現在の仕様などをAIにインプットさせるのが非常に難しいです。

1つのプロダクト、リポジトリ単位であればまだ範囲が狭められますが、私たちのサービスはマイクロサービスアーキテクチャを採用しており、複数のサービス間の関係性や依存関係をドキュメントとして網羅しているわけではありません。

さらに、長年運用してきたプロダクトには、コードには書かれていない暗黙知や背景情報が数多く存在します。「なぜこの実装になっているのか」という経緯や、「この部分は将来的にリファクタリングする予定」といった情報をすべてAIに伝えるのは現実的ではありません。

逆に言えば、まったく新しいプロダクトを作る際は、cc-sddの仕組みに沿っていくととてもスムーズに進められました。頭にある要件とおおざっぱな仕様を伝えればそこからきっちりとした要件定義書、仕様書を生成してくれます。

レビューコストが大きい

AIの生成物は真面目すぎるというか、時として必要以上に詳細な提案をしてきます。

特に非機能要件については、求めていないレベルの詳細まで提案してくることがあります。例えば、小規模な社内ツールの仕様を作っているのに、大規模システム並みの可用性やスケーラビリティの要件を提案してきたりします。

もちろん、自分では考慮し忘れていた部分を指摘してくれることもあるので助かる部分もありますが、とにかくレビューが大変です。不要な部分を削除する作業に時間を取られてしまうこともあります。

設計段階でも、インターフェース設計のコーディング例が含まれていたりするので、この辺はどういうアウトプットが必要か、という定義やフォーマットを事前に明示して渡してあげる必要があると感じています。

AIと要件定義していく価値

課題はありつつも、仕様駆動開発には確実な価値があると感じています。

視覚化による思考の整理

設計書に状態遷移図やシーケンス図などの図示(mermaid記法)をしてくれることで、頭の中にあった曖昧なイメージが整理しやすくなります。

例えば、「ユーザーがログインして、注文して、支払いをする」という要件を口頭で説明するだけでは、細かな分岐やエラーハンドリングが抜け落ちがちです。しかし、AIがシーケンス図に起こしてくれると、「あ、ここで在庫切れの場合の処理が抜けている」といった気づきが得られます。

この視覚化のプロセスは、思考の整理に大いに役立っています。

要件と仕様の往復での磨き込み

そこから設計方針を変えたい、要件を修正したい、となったときの要件定義への修正をAIがスピーディに行なってくれるのが地味に助かります。

網羅的にも行ってくれるので書いたドキュメントの修正はAIに任せて、本筋のどういう要件・仕様にすべきか、という部分に集中できます。

そうして仕様と要件の往復を繰り返して、より良い要件と仕様を作り上げていく工程が非常に有効だと感じていて、一度で完璧な仕様を作るのではなく、何度も往復しながら徐々に精度を上げていくアプローチが、AIとの協働では特に効果的に感じています。

AIとの付き合い方

今のAIは「入社したての、何も知らない中堅社員」と表現されるのを耳にします。この例えは的を射ていると思います。

人の場合はどうかとあらためて考えてみると、要件定義や仕様作成を大まかなオンボーディングをさせただけの入社したばかりの人に任せるか、というとおそらくしないでしょう。

現実の職場では、OJTとしてまず先輩が手本としての仕様までは作って、詳細のドキュメント作りを伴走しながら任せて少しずつ慣れてもらうという進め方をします。そして、その人は経験を積むことで徐々に成長し、いずれは独力で要件定義ができるようになっていきます。

とはいえ、AIは人と違って少しずつ慣れて上達することはありません。明日にはまた何も知らない状態になっているわけです。この特性を理解し、AIへの期待値はその辺に設定しておくのがよさそうです。

0→1の部分はまず自分がやる、大まかな方向性、コアとなる要件、譲れない制約条件などは自分の頭で考え、ある程度の形にします。そして、それを文書に起こしたり図にして他の人にわかりやすいように整形させるのがAIの役目です。

それを人よりも高速でやってもらうことで、要件と仕様の往復を何度も行い、精度を上げていく。この反復のスピードが、AIを使う最大のメリットだと感じています。

まとめ

仕様駆動開発を使った開発は、まだ完璧ではなくまだまだ課題もあります。

しかし、要件と仕様の往復がスムーズになり、視覚化による思考の整理ができるようになったことは、大きな価値があります。

重要なのは、AIに丸投げするのではなく、自分の思考を補助するパートナーとして使うこと。0→1は自分が考え、1→10をAIに高速で回してもらう。この距離感が、現時点では最も効果的だと感じています。

AI技術の進化は速いので、また新しい使い方が見つかるかもしれませんが、AIの知能が人を超えない限りは人との付き合い方の延長線上くらいに考えて、これからも試行錯誤を続けたいと思います。


明日のアドベントカレンダーもお楽しみに!

© Toreta, Inc.

Powered by Hatena Blog