細かいことの組み合わせで日々の開発を快適にする

こんにちは、iOSエンジニアの池田です。

この記事は Enigmo Advent Calendar 2023 の 18 日目の記事です。 この記事では担当のプロジェクトにおいて日々の開発を快適にするために実施している細々したことについて紹介します。

私はBUYMAiOSアプリ開発を担当しています。 iOSアプリ開発に限らずプロジェクトを進める中では、コアタスク(ここではiOSアプリの開発作業と定義)とノンコアタスク(コアタスク以外の作業)が発生します。

開発の効率を上げるため、開発者の開発の快適性を上げるためにノンコアタスクは極力削っていきたいものです。 ここではノンコアタスクの中でもチケット管理、Pull Requestの管理に関わる部分について触れていければと思います。

現在のプロジェクト環境


現在の担当プロジェクト内では、チケット管理にJIRA、開発用のプラットフォームにはGitHubを利用しているので、それらに関わる内容について触れていきます。

また、コミュニケーションツールとしてSlackを利用しているため、こちらとの連携も少し触れます。

JIRA


自動化

JIRAのチケット管理では、各チケットの開始日や終了日、担当者、チケットの作業状況など様々な情報の日々の更新が必要になってきます。

一つ一つの作業は作業時間も短く単純作業ではあるのですが、数が多くなると作業時間ももちろん累積されますし、何にも考えずにできるわけではないため、じわじわ地味に体力を削られます。

そういった作業を減らし、少しでも快適性を上げるためにはJIRAの「自動化」が有効です。

以下は私が担当するプロジェクトで設定している「自動化」のルール一覧です。

様々設定されていますが、この中でも「プルリクエストがマージされる → 課題を完了にする」が結構気に入っています。

Pull Request のコードレビューを受けた後自分でマージする運用をしている場合、このルールが設定されていないと、以下のような手順が必要になります。

  1. ブラウザでGitHubを開く
  2. GitHubの画面上でPull Requestの一覧を開く
  3. 該当のPull Requestを開く
  4. Pull Requestをマージする
  5. ブラウザでJIRAを開く
  6. JIRAのボード等でチケットを完了にトランジションさせる

これらの手順の中で、4.から 5.では別サービスへの切り替えが必要で、6.の作業ではドラッグ&ドロップかオプションメニューからの選択が必要だったりで、キーボードからマウスへの操作の切り替えも余分に必要になります。

4.で作業に満足して 5.以降忘れることもあり、JIRAのカンバン管理者から完了/未完了の問い合わせが来たとしたらコミュニケーションコストもかかります。

これだけでも意外と積み重ねるとコストになるので、設定することによる快適度は上がっている感じがします。

Gitブランチ作成

もう一つJIRAの機能で細かいけどよく使っている機能がチケットのブランチ作成機能です。

以下チケットの画面キャプチャです。

チケットの「開発 > ブランチを作成 > GITで新しいブランチを作成してチェックアウト」の欄で、チケットIDが入ったブランチ名を自動生成してくれます。

また、入力欄の右側のボタンでクリップボードにコピーできるため、CLIでブランチ作成の際にコピー&ペーストでブランチを作成することができます。

こちらを利用することでブランチ名を考える手間や、CLIで入力する手間を省くことができます。

名前を考えるのって決めの問題なのですが、意外と考えるコストがかかる作業だと思っているので個人的にはすごく助かっています。

GitHub


PULL_REQUEST_TEMPLATE.md

Pull Request を作成して開発されている場合、設定しているリポジトリが多いかと思います。

本プロジェクトでは、以下のようなトピックをフォーマット化して記載するようになっており、記載時の手間を少し減らしています。

  • 関連チケット
  • Pull Request でやったこと
  • 懸念点・注意点
  • 相談事項

また、JIRAとGitHubが連携されるようになっているため、チケットのURLを記載するとJIRAのチケットにGitHubのPull Requestが連動するようになっています。

Slack


SlackとJIRA、SlackとGitHubも連携されており、チケットやPull Requestの条件に応じた更新があったタイミングで通知が来るようになっています。

JIRAの通知

JIRAの通知設定は以下のようになっており、コメントやステータスの更新等通知が来るように設定されています。

GitHubの通知

GitHubの通知設定は以下のようになっており、コメントの見落としが少なくなるようにcomments:'channel'の設定をしているところが個別に設定した部分だったかと思います。

まとめ


チケット管理、Pull Requestの管理に関わる部分についてノンコアタスクを削減するため細々やっていることをご紹介しました。

プロジェクトの環境によって合う、合わない部分があったりしますが、見て頂いた方の何かのご参考になれば幸いです。

日々の変化している状況や、気づいたちょっとした不要な手間など、アンテナを高くしつつさらなる改善、日々の開発の快適度を上げていければと思います。

株式会社エニグモ すべての求人一覧

hrmos.co