「Lychee Redmine」を用いたクレディセゾンの開発プロセスとは?チケットベースでのプロジェクト管理で実現する「バイモーダル戦略」について
近年、DX(デジタルトランスフォーメーション)の波が多くの企業で加速しています。その中でも、特に迅速な対応と柔軟性が求められるアジャイルなプロジェクト管理は、変化の激しい現代のビジネス環境において不可欠な要素となっています。
アジャイルウェアが提供する「Lychee Redmine」は、高機能かつ操作性に優れたプロジェクト管理ツールとして、これまでに業種・業界問わず7,000社以上の企業様に導入いただいています。
7月24日に行われた「Developers Summit 2024 Summer」では、2021年よりLychee Redmineを導入いただいているクレディセゾンのシステムエンジニア、長南翔太様が登壇し、Lychee Redmineのチケット管理を用いた開発プロセスについてお話されました。
今回は、その登壇内容の一部をご紹介いたします。
クレディセゾンが掲げる「バイモーダル戦略」
私は独立系SIerからキャリアをスタートし、2021年にクレディセゾンへ転職してからは基幹システムの開発に携わっています。近年、クレディセゾンでは「CSDX戦略」を掲げてDX化に取り組んでおり、Slackが主催するグローバルアワードで「国別優秀 Digital HQ 賞」を受賞し、さらに2年連続で「DX銘柄」に選定されるなど、クレディセゾンは積極的にDX推進に取り組んでいます。
ビジネス環境の変化や技術の進歩、顧客ニーズの多様化・高度化により、開発者が置かれている状況も変化しており、各社がさまざまなDXに取り組んでいます。そのような中、クレディセゾンでは『バイモーダル戦略』を掲げています。
デジタルシフトするためにアジャイル開発を導入しようとしても現場ではうまく対応できなかったり、推進する上での問題があったりと、実現には多くのハードルがあります。
そのため、クレディセゾンではアジャイル開発を適用する範囲を限定し、柔軟に軸足を移しながら、ウォーターフォール型開発とアジャイル開発を共存させていることを重視しています。
図に示したように、バイモーダル戦略では「モード1(安定性重視)」と「モード2(俊敏性重視)」のバランスを意識しています。従来のITとの関わり方を維持するモード1と、アジャイルに開発を進めるモード2を合わせ、伴走型開発を実現しています。
クレディセゾンが取り組むチケット管理の2つの工夫
伴走型開発のプロジェクトを運営するにあたり、多数の部署やITベンダーとの調整、メールやExcelによるプロジェクト管理の煩雑さ、そして従来のモード1から脱却できないといった多くの課題を克服する必要がありました。
クレディセゾンではこれらの課題を解決するために以下の2点を意識してプロジェクト管理を行っています。
① チケットベースでプロジェクトを管理し、関係各所とのタスクを明確化する
② 各メンバーがチケットをタスキングすることで自律的な開発スタイルを維持する
クレディセゾンでは、コミュニケーションツールとしてSlackを導入しており、開発環境としてはIntelliJ IDEA、github、AWS、そしてLychee Redmineを使用しています。
クレディセゾンでのチケット管理の実例
クレディセゾンでのチケット管理は非常にシンプルで、以下の流れでユーザ部門とのやりとりを行っています。
① Lychee Redmineでチケットを起票
② Slackでメンション
③ チケットの確認/記載対応
④ Slackでメンション
⑤ クローズ
タスクや質問のチケットをLychee Redmineで作成し、Slackのオープンチャンネルで対象者にメンションを送ることで、メールでの見落としを防ぎます。
その後、チケットの内容を確認し、対応が完了した時点でチケットを起票した人にSlackで返信するというサイクルを回すようにしています。
次に、システム部門のプロジェクト管理におけるチケット管理についてご紹介します。
① リード層がベースのチケットを起票
② メンバーが各自作業タスクを具体化して自身で子チケットを起票、チケットを分割
③ チケット毎に開発、タイミング毎にプルリクエストを上げる
④ プルリクエストがマージされると、チケットもクローズ
基本的には画面単位やモジュール単位など、大きな単位でリード層が簡単にチケットを作成します。その後、各メンバーが作業単位に細かくチケットを分割し、詳細を記載してから対応を進めていきます。
この形式にすることで、与えられたタスクだけを各メンバーが行うのではなく、自分でタスクを決めて機能確認などを自発的に行ってもらえるようにしています。
また、チケット番号とGitブランチの番号を紐付け、チケット毎に開発してプルリクエストを上げ、マージしていく流れを取り入れています。
チケット管理で意識しているのは、「スモールブランチ」という考え方です。例えば、画面単位など大きな単位でプルリクエストを上げると内容確認に時間がかかってしまいます。
さらに、アジャイル開発を心がけているため、週に1回程度でDevOps環境にリリースし、ユーザー部門が対象画面を確認出来るように、スモールブランチでコントロールすることが重要です。そのため、各メンバーにチケットを分割してもらうようにしています。
また、ユーザ部門とシステム部門で関心事が異なるため、プロジェクトを分けて、完全に別物として管理しています。
ロードマップを作成する際は、短いサイクルで設定するようにしています。基幹運用システムの開発には長い期間を要しますが、1年間のロードマップを作成すると短いサイクルで成果を出すのが難しくなってしまうため、できるだけ短いサイクルでロードマップを作成し、短期的に消化する範囲を明確化することが重要です。
現場は20名ほどの体制を組んでおり、そのうちテックリードは5名程度です。基本的には、各チームのリード層がロードマップを作成し、メンバーのレベル感に合わせてコントロールできるように、相互認識を図りながら密に確認することを意識しています。
チケット管理の運用は「シンプル」がカギ
チケット管理で最も重要なのは、「複雑にせず、シンプルに運用すること」です。
チケット管理が難しくなると、ユーザ部門がメールやExcelの運用に戻ってしまい、チケット管理から離れてしまう原因になります。そのためチケットの編集は、図のようにトラッカーと題名、チケット内容の編集説明だけに絞るなど、できるだけシンプルな仕組みで運用できるように心がけています。
必要に応じて、システム部門が期日のコントロールを全面的に担い、返信時も、チケット内容やステータス、担当者の切り替えの3箇所のみを編集すれば済むように設定しています。
定例会などの定期的なイベントに関しても、「チケットの雛形」を用意し、あらかじめ相手の部門に渡すことで、イベント日に確認したいことや質問事項を記載してもらい、打ち合わせを効率的に進めています。このようにすることで、認識齟齬を解消し、打ち合わせ時までに回答を事前に準備できるようになります。
ツール連携で効率アップ
Lychee RedmineはSlackと連携可能で、特定チャンネルにチケット内容が投稿されるように設定できます。トラッカーやプロジェクト名、編集のアクションなどを確認できるため、Slackを追っているだけでチケットが編集されたかどうかがわかります。
また、Githubとの連携については、git-flowと呼ばれるGitブランチ管理を採用しており、メインブランチからサブブランチを切り、機能やリリースなどの各種ブランチをチケットと紐づけています。これにより、タスクの幅を縮め、プロジェクト進捗の認識をしやすくする効果が期待できます。
IntelliJ IDEAとの連携では、APIアクセスキーを設定すると、自分が立てたRedmineの対象タスクの一覧が表示されるようになります。図にあるデフォルトタスクを設定することで、タスクごとのソース変更やチェンジリストでソースコードを見ながらタスクを切り出して作業することも可能です。
工数管理を行っている人には、ガントチャート機能もおすすめです。
開始日や期日、担当者、ステータスなどの編集も管理画面上から簡単にでき、ロードマップ毎にPDF出力をして、進捗状況の報告も可能です。他にも、チケットの着手状況や完了具合もCSVでサマリーレポートとして出力できるため、プロジェクトの最新の状況を把握しやすくなります。
また、バーンダウンチャートでチケットの完了状況がわかるのも利点です。
チケット管理でコミュニケーションを強化し、バイモーダル戦略の実現へ
最後に、本セッションのまとめに入りたいと思います。
まず、チケット管理を利用することでユーザ部門の「当事者意識」を高め、チーム内外のコミュニケーションを迅速にし、主体的にプロジェクトへ参画してもらうことを意識しています。Lychee Redmineでの運用に慣れてもらい、ツールをベースに部門間のやりとりを進めていく文化を醸成することが大切です。
さらに、Excelで報告資料をまとめなくても、Lychee RedmineのCSV出力でサマリーレポートを作成することが出来るため、管理業務コストの軽減や、チーム内外のコミュニケーション速度の向上にもつながっています。
このように、クレディセゾンでは、Lychee Redmineのチケット管理を活用することで、ウォーターフォール型開発とアジャイル開発を共存させるバイモーダル戦略を実現しています。
リモートワークなど多様な働き方が進むなかで、今後はよりエンジニア一人ひとりの成果を可視化したいと考えています。明確な目標値を設定することで、改善に取り組みやすくなるため、開発チームのパフォーマンスを定量的に測定することも有効かもしれません。目的は関連部署にわかりやすく状況を説明することであり、現在、Lychee Redmineを活用した効果的な手法を模索中です。
また、人材の稼働管理やベンダーマネジメントにもLychee Redmineを活用できる可能性を考えています。
以上、クレディセゾンにおける、プロジェクト管理ツール「Lychee Redmine」を用いた開発プロセス事例についてお話させていただきました。