23
Redmine + GitLab マージベース開発プロセス 株式会社アピリッツ 島田慶樹

Redmine + gitlab: merge base development

  • Upload
    smdkk

  • View
    9.115

  • Download
    1

Embed Size (px)

DESCRIPTION

RedmineとGitLabを使ったソフトウェア開発プロセスの紹介

Citation preview

Page 1: Redmine + gitlab: merge base development

Redmine + GitLab マージベース開発プロセス

株式会社アピリッツ 島田慶樹

Page 2: Redmine + gitlab: merge base development

自己紹介2

• RailsでのWebシステム開発6年くらい

• Apache Cassandraの導入

• 現在はScala Playframawork

Page 3: Redmine + gitlab: merge base development

プロジェクト概要

• Webサービスの新規開発(SI案件)

• 開発メンバー 6名前後(Rails初心者含む)

• 設計からC/Oまで数ヶ月

3

Page 4: Redmine + gitlab: merge base development

ツールまわり4

Page 5: Redmine + gitlab: merge base development

Redmine5• お客様参画プロジェクト

• 課題管理(チケット)

• ドキュメンテーション(wiki)

• 開発者専用プロジェクト

• タスク管理(チケット)

• ドキュメンテーション(wiki)

Page 6: Redmine + gitlab: merge base development

GitLab6

• リポジトリホスティング

• gitアクセス権限管理

• マージリクエスト

• ブランチ管理

Page 7: Redmine + gitlab: merge base development

Jenkins7

• 開発ルールとしてRSpec必須化

• メインラインとマージリクエストの2プロジェクト

Page 8: Redmine + gitlab: merge base development

開発サイクル

1. 機能ごとにチケット起票

2. 開発者にアサイン

3. トピックブランチで開発

4. リポジトリにプッシュしてマージリクエスト

5. マージ担当者のピアレビュー、マージ

8

Page 9: Redmine + gitlab: merge base development

チケット駆動開発9

Page 10: Redmine + gitlab: merge base development

ブランチ戦略10

topic 1

develop

master

merge request!

release!

Page 11: Redmine + gitlab: merge base development

マージリクエスト11

Page 12: Redmine + gitlab: merge base development

マージリクエスト12

😐

reviewee

reviewer😐 😐

😐

😐😐

マジリク

Page 13: Redmine + gitlab: merge base development

マージリクエスト

メンバーの中から相手を1人選んでマージリクエストを投げる

• 関連する機能を作ってる人

• 内容について相談できる人

13

Page 14: Redmine + gitlab: merge base development

マジリクのルール14

業務で行う開発の場合、マージリクエストは

!

!

では済まされない

Page 15: Redmine + gitlab: merge base development

OSSとの違い15

Pull Requestコードオーナー

コントリビューター

LGTM!オミゴト!

Page 16: Redmine + gitlab: merge base development

マジリクのルール16

• マージリクエストは自分以外の開発者にアサインする

• マージリクエストを依頼するチケットを作成する

• チケットに、実装した機能を確認する手順を簡単に記述する

Page 17: Redmine + gitlab: merge base development

確認手順チケット17

Page 18: Redmine + gitlab: merge base development

マジリクのルール18• アサインされた開発者は下記の内容を確認し、問題がなければマージを実施する。問題があれば差し戻す

• テストがついているか、Jenkinsでそのテストがパスしているか

• 手順どおりに機能するか

• コードのフォーマットや内容に不備がないか

• メソッドの長さ、ネストの深さなど

Page 19: Redmine + gitlab: merge base development

評価

Page 20: Redmine + gitlab: merge base development

振り返り - keep20

• developブランチのコードを常に動作確認済みの状態に保つことができた

• マジリクを分担することにより、他のメンバーのノウハウを吸収できた

Page 21: Redmine + gitlab: merge base development

振り返り - problem

• 不具合対応や微調整の時期になると、マジリクの作成・実施が重くなってきた

• 一部のメンバーにマジリクの負担が集中した

21

Page 22: Redmine + gitlab: merge base development

振り返り - try22

• 開発のフェーズにあわせてマジリクの運用ルールを調節する

• 開発者用プロジェクトをRedmineからGitLabのissue, wikiに移行※お客様参画プロジェクトはそのまま

Page 23: Redmine + gitlab: merge base development

まとめ23

• GitLabによるマジリクベースの開発で結合テストを開発プロセスに織り込む

• RedmineとGitLabは機能がダブるので棲み分けに工夫が必要