🎢

NEの開発フローと利用ツール

2023/06/03に公開

こんにちは。SRE・インフラエンジアのくすのき(@na_it_o)です。

この記事ではNEでの2023/06現在の開発フローと使用ツールについて紹介します。

フロー

NEではチーム、PJにより柔軟にプラクティスを選択しカスタムされたフローで実施されています。
開発チームではスクラムの手法を取り入れ、1週間のスプリントを回していたり、インフラチームではPJ支援や突発的な障害・メンテナンスの割り込みを個々人でタスク化して対応していたり、各々パフォーマンスを最大化できるフローを考え適用しています。

チームやPJでペアプロや経験のない振り返り手法など新しい取り組みを実施して、効果的であったものについては月1回のエンジニアミートアップで共有し、迅速に横展開できるような工夫もしています。

重要なプロダクトについては内部統制のフローが規定されています。
タスクが権限者に承認されていること、変更について自分以外の検証がなされていることなどを守る必要があります。
適切な検証のもとリリースされるように保つことが最重要で、過去、このフローがデプロイ頻度を下げるボトルネックになっていることもありました。
2020年頃から、クラウド化の進行とともに大きく見直され、コードレビューも権限者に限られていたものを開発者なら誰でもレビューできるようにするなど、開発者が安心してリリースできる範囲でルールを緩和・改善し、今ではデプロイ回数も大幅に増加しました。

開発フローの見直しのタイミングで、利用するツール、サービスも刷新されました。
生産性が向上した背景にはこのツールの刷新もあります。

次に、開発フローを回す中で利用しているツールを紹介していきます。

ツール

ネクストエンジンの開発フローは以下のサービスを使って回しています。

Asana

Issueを管理しています。
プロダクト、PJごとに、タスクの起案、タスク実施の承認、進捗の共有を行っています。

ツール刷新のタイミングでRedmineから移行しました。
Redmineでは難しかったカンバンボードでの管理やモダンなUIにより、タスク管理のフラストレーションがなくなり、ツールを"統制のための証跡管理ツール"ではなく"開発のためのコミュニケーションツール"として活用できるようになりました。

タスクのステータス変化に応じてSlackやWebhookでの通知などルールを作成できます。
これにより、タスクの完了をチームのSlackチャンネルでいち早く共有したり、内部統制上のルールに則った運用がされているかのチェックを実施しています。

GitHub、GitHub Actions

ソースコード、パイプラインを管理しています。

BitBucket、CircleCIから移行しました。
業務外でも使い慣れたUI、コードレビューに関わる機能の充実などがあり、GitHubを選択しました。
GitHub Appsでのサードパーティ連携の豊富さや知見の探しやすさも魅力的です。
NEでもRenovateアプリを導入して継続的アップデートを実施するなどしています。

GitHubを利用することで、GitHub Actionsのクレジットも付いてくるため、コストの観点からCircleCIから切り替えました。
個人的にはCircleCIでは複雑な書き方をしていたファイルパスによるフィルタリングが簡潔に書けるようになったり、細かい点でも嬉しいことがありました。

Slack

普段のコミュニケーション、通知の受信などあらゆるシーンで利用しています。

他のチャットツールから移行しました。
プライベートなやりとりを抑制し、コミュニケーションがオープンになることを狙いとしています。連携先が多く、進捗の共有やお知らせの通知も容易です。
関係者間の情報共有がスムーズになり、変更された情報へも素早くアクセスできるようになりました。

特に障害対応時のコミュニケーション、フローは大幅に変わりました。
Slack botを作成し、障害時にチャンネルやチケットを作成するなど、インシデント対応の初動を自動化しています。
関係者を集めやすくなり、サポート担当への連携もスムーズになりました。
障害の記録はKibelaに記事を残し、ポストモーテムを実施しています。

その他

ツールの刷新の流れで新たにKibela、Miroを導入しました。
ナレッジの共有やディスカッションに利用しています。

Kibelaの導入により、これまではチケットに残された作業の記録から読み解くしかなかったナレッジが明文化されるようになりました。これにより、タスク遂行時の参考情報が素早く手に入りやすくなりました。

Miroの導入により、チームビルディングやふりかえりなど、フレキシブルで創造性の高い議論がリモート環境でも実施できるようになりました。チームのコラボレーションが加速し、フローの改善もしやすくなりました。

おわりに

NEの開発フローとツールについて紹介しました。

まだまだ発展途上で、日々より良い開発者体験を目指して精進しています。
皆様のおすすめのプラクティスやツールがあればぜひ教えてください。

NE株式会社の開発ブログ

Discussion