LinearとDevinを連携させて自動でタスクをこなしてもらう為のtips
こんにちは。株式会社 Sally エンジニアの @piesukeです。
私たちは、マーダーミステリーを遊べることが出来るアプリ「ウズ」と、マーダーミステリーを制作してウズ上で遊べることが出来るアプリ「ウズスタジオ」を開発しています。
最近良かったマーダーミステリーは「ぼくから◾️◾️へ、さよならを。」です。
弊社はタスク管理ツールとしてLinearを使用しています。4月からLinearとDevinのインテグレーション機能がリリースされ、Linear上のissueを読み取ってDevinがPRまで作ってくれるようになりました。今回は有効活用を行う為のtipsや使ってみて良かった所を紹介します。
設定方法やイメージはこちらを見れば分かるので割愛します。
対象読者
LinearとDevinを導入している方、もしくは導入しようと思っている方
前提
本記事は主にWebフロントエンドで使用する時を想定しています。
tips① タイトル、Descriptionを詳細に記述する
Devinに効果的にタスクを実行してもらうためには、Linear issueのタイトルやDescriptionを丁寧に記述することが重要です。詳細に書けば書くほど、Devinが意図を正確に汲み取ってくれるようになります。
具体的には以下の内容を含めることをおすすめします:
-
どんな問題が発生しているか/どんな実装を行いたいか(スクリーンショットも有効)
- 例:「文字数が〇〇文字以上を超えたらデザイン崩れが発生する」
- 例:「ボタンに古いコンポーネントが使われたままなので、新しいコンポーネントに変更したい」
-
どんな方針で実装すれば良いか
- 例:「文字数制限を30文字に設定し、超過時は『...』で省略表示する」
- 例:「Button.tsxを削除し、components/common/Button.tsxに置き換える」
-
制約があれば制約を明記する
- 例:「既存のCSS変数(--primary-color)を使用し、新しい色は追加しない」
- 例:「components/common/配下のコンポーネントのみ使用可能」
これらの情報を含めることで、Devinがより的確な修正を行ってくれるようになります。
しかし、簡単なタスクだとDevinがかなり精度高くやってくれるので、逆に書かない方が時短になるという場合もあります。制約がある場合(例:特定のライブラリを使う必要がある、デザインシステムを守る必要がある等)は積極的にDescriptionを書くようにしましょう。
tips② ラベルを適切につけ、Devinのknowledgeにその旨を追加する
弊社はモノレポを採用しているのですが、初期はDevinが各サービスの違いを分かってくれず、別のフォルダを修正することがありました。
モノレポで管理しているフォルダ単位ごとにラベルをつけて、Devinのknowledgeに、ラベルがついている名前のフォルダを参照してほしい旨を書くことでそのミスがなくなりました。
tips③ Devinが苦手なタスクを理解する
ドメイン知識が求められるタスクや、少し複雑なデザインのタスクは出来ない傾向が強いです。そのようなタスクの際は任せないか、任せる場合はtips①の方針の部分をより丁寧に書いてあげないと容易に意図と違う実装を始めるので注意が必要です。
良かった所
簡単なタスクをすぐに進められるようになった
弊社はスプリントを採用しているため、スプリントの初めにタスクを決めて進めています。そのため、ユーザーの方から報告を受けた軽微な修正や、開発中に気付いた細かなバグなどは、次のスプリントまで待つか、現在のスプリントの合間を縫って対応することになり、どうしても後回しになってしまうことがありました。
しかし、Devinを導入してからは、そうした簡単なタスクを即座にLinear上でissue化し、Devinに依頼することで迅速に修正されるようになりました。エンジニアの手を煩わせることなく、ユーザー体験の向上に繋がる小さな改善を継続的に行えるようになったのは大きなメリットです。
タスクを並列に進めることができるようになった
Devinは作業の各ステップで通知が来るので、それをポチポチと承認するだけでタスクを進めてくれます。そのため、Devinがタスクを処理している間に別のタスクに取り組むことができるようになりました。
従来は1つのタスクを完了してから次のタスクに移っていましたが、今では複数のタスクを並列で進行できるため、単純に生産性が倍増したと感じています。特に簡単なバグ修正やUI調整などはDevinに任せて、より複雑な機能開発や設計に集中できるようになったのは大きな変化です。
微妙な所
たまに意図とは違う実装をしてきて、それに対応していたら自分が実装するより多くの時間がかかってしまった...ということがあります。Devinができそうなタスクの種類を把握し、出来なさそうなタスクは振らないことが大事です。まさにジュニアエンジニアの扱いですね。
終わりに
LinearとDevinの連携は、まさにジュニアエンジニアを雇ったような感覚で、適切なタスクを振れば確実に処理してくれる頼もしいパートナーです。
特に、スプリント制を採用している開発チームにとっては、緊急性の低いタスクや軽微な修正を即座に処理できるようになることで、開発の流れが大きく改善されます。また、並列処理によって生産性が向上し、エンジニアはより創造的で複雑なタスクに集中できるようになります。
まだLinearとDevinの連携を試していない方は、ぜひ導入を検討してみてください。最初は簡単なタスクから始めて、Devinの得意・不得意を把握しながら活用範囲を広げていくのがおすすめです。
皆さんの開発体験向上の一助になれば幸いです。
Discussion