LoginSignup
7
6

この記事はJira, Confluenceを用いてタスク管理をし,さらにGitでのプルリクエスト,マージの連携まで記す.
また,初めて共同開発する人に向けてどのようにプロジェクトの進捗状況を管理,共有したり,タスクの分担の方法の一例を紹介しよう.

gitの基本的な使い方は以下の記事から
https://qiita.com/tarakokko3233/items/ad7e1a1a14d3e2f10da3

プロジェクト管理において以下の動作を自動で行ってくれると便利ではないだろうか.
1.ブランチ作成後,タスクのステータスを進行中(in progress)にする
2.プルリクエスト(PR)作成後,タスクのステータスをPR済(PullRequest)にする
3.マージ後,タスクのステータスを完了(complete)/マージ済(merged)する
4.PRクローズ後,タスクのステータスをクローズ済(closed)にする
このサイクルをする際にチームメンバーが都度ステータスを変更することは非常に非効率である...し,ちゃんと変更してくれるか不安だろう.

連携後のイメージ

gitでタスク番号に応じたリモートブランチが作成されると以下のようになる
スクリーンショット 2024-05-31 10.14.19.png

gitでPRが作成されると以下のようになる
スクリーンショット 2024-05-31 10.28.52.png

このようにタスクのステータスが更新が自動で更新されるようにすることが本記事の目標である.

そもそもどのようにプロジェクト管理するべきか

プロジェクト管理といってもやったことない人はあまりしっくりこないだろう.まず,プロジェクトに求められる3要素は以下の通りである.
スクリーンショット 2024-06-01 10.38.21.png
Quality Assurance品質保証
Cost費用
Deliverry納期

PMBOKによるとプロジェクトマネジメントを以下の10の知識エリアに分類できるようだ.

PMBOK(Project Management Body of Knowledge)
プロジェクトマネジメントのベストプラクティス,標準,ガイドラインを提供するための文書

スクリーンショット 2024-06-01 10.41.41.png

またソフトウェア開発手法に1つであるウォーターフォールモデルにおけるSLCPは以下のように多くの工程が連なっている

ウォーターフォールモデル
その名の通り「滝」のようにソフトウェア開発の工程が一方向へと段階的に進行する特徴を持っている開発手法.

SLCP(Software Life Cycle Process)
ソフトウェアアプリケーションの企画,作成,テスト,デプロイメントを包括的に管理する方法論

スクリーンショット 2024-06-01 10.47.21.png

個人開発では上記のことはあまり気にしないと思うが,共同開発で下記のこととなるとどうだろうか.例えば,ハッカソンで以下のようにプロダクトを開発するとしよう.Unityでプレイヤーの位置座標を常にAndroidで表示するシステムを開発するとする.APIはJavaで開発するとしよう.どのように開発すると良いだろうか.
スクリーンショット 2024-06-03 16.20.58.png

初めて共同開発をした際はプロジェクトの進捗状況の管理やタスクを分担する作業は大変だろう.
以下にどのようにタスクを分割すべきかを記す.

1.大まかなタスクに分ける

それぞれの開発プラットフォームごとで大まかなタスクに分割してみる.環境構築から各機能の開発まで大きく分けると良い.
スクリーンショット 2024-06-03 17.22.05.png

2.タスクの細分化

先ほど大まかに分けたタスクに対して各開発プラットフォームごとに小さいタスクに細分化する.また,各プラットフォームごとにプロジェクト名をつける.

UnityではDEVUNITYとする.

スクリーンショット 2024-06-03 18.30.09.png

3.タスク番号をふる

細分化したタスクに対してタスク番号を振っていく.これにより各タスクごとに番号で識別できるのでチームメンバー内でタスク名称や内容を共有できる.
スクリーンショット 2024-06-03 18.32.44.png

4.タスク単位でブランチを作成

細分化したタスク単位でブランチを作成し,ブランチ名はfeature/<タスク番号>とする.このブランチでタスクの作業をする.
スクリーンショット 2024-06-03 18.49.10.png

基本的にはgitではこのように管理をすると良い.

各種ツールの説明

gitのみではタスクを管理することは難しい.git管理,プロジェクトの進捗状況の管理,タスクの概要(仕様)や分担には以下のツールを使うとよい.

以下の3つのツールは全てAtlassian社製品であり,ソフトウェア間の連携に優れている.

Sourcetree

スクリーンショット 2024-06-03 19.10.18.png

Gitクライアントソフトウェアの一つ.Gitリポジトリの視覚的な管理や操作を行うためのGUIツールとして機能し,ブランチの作成,マージ,コミットの管理などが視覚的に行える.Gitの操作に不慣れな人でも使いやすいインターフェースを提供している.

Jira

スクリーンショット 2024-06-03 19.09.52.png

プロジェクト管理やタスク追跡のためのツール.チケット(課題)の作成,担当者の割り当て,進捗管理などを行うことができ,プロジェクトの進捗状況を可視化し,チーム内のコラボレーションを促進する.また,アジャイル開発のためのスクラム・カンバンボードの機能も備えているため,開発チームの効率的な作業に役立つ.

今まで説明してきたタスクのことをJiraではチケット(課題)という.

Confluence

スクリーンショット 2024-06-03 19.09.18.png
チーム内の情報共有やコラボレーションのためのwikiツール.ドキュメントの作成,編集,共有を行うことができ,ページの階層構造や検索機能により,情報を整理して必要な情報にアクセスしやすくなる.また,画像,表,添付ファイルなどを使ってコンテンツを作成できるため,チームメンバー間の知識共有に効果的である.

実際に使ってみる

Sourcetreeのセットアップ,Jiraでのプロジェクトの作成方法,ConfluenceでのWiki作成は次の見出しで説明する.この見出しではセットアップ済みだと仮定する.

もしAtlassianアカウントを持っていないのであれば作成すること
https://www.atlassian.com

アクセスするためのURLはプロジェクトマネージャーに聞くこと.自分で作成するには次の見出しで

はじめにConfluenceのプロジェクト全体のページにアクセスする.

ConfluenceのURLはエンドポイントが/wikiとなっている.
https://projectName.atlassian.net/wiki/spaces/KEY

projectNameは管理者が決めた名前
KEYはプロジェクトごとに識別するためのキーで管理者によって設定される

スクリーンショット 2024-06-03 19.20.41.png

私用のプロジェクトの写真を使う

Confluenceではショートカットという欄に各種リンクを貼ることができる.例えば全体プロジェクトのJiraのリンクやGitのリモートリポジトリのリンクを貼るなど様々なサイトにアクセスできるようにすると便利である.

また,コンテンツという欄には様々なWikiページを作成できる.例えばプロジェクトの仕様や,ReadMeの下書き,プロジェクト管理の概要,仕様した技術やソースコードの説明などを文字だけではなく画像や図表を使って文書化することができる.

このようにConfluenceはチームメンバー間の知識共有に便利なツールとなる.

次にJiraのプロジェクトページにアクセスする.

JiraのURLはエンドポイントが/jiraとなっている.
https://projectName.atlassian.net/jira/core/projects/KEY

projectNameは管理者が決めた名前
KEYはプロジェクトごとに識別するためのキーで管理者によって設定される

スクリーンショット 2024-06-03 20.12.13.png

このようにタスク(チケット)ごとに未着手,進行中,PR済,マージ済のようにタスクの進行ステータスを分けることができる.

好きなようにステータスの名前はつけられる

またプロジェクトの要約を一目で確認することもできる.
スクリーンショット 2024-06-03 20.15.40.png

各タスクの優先度,担当者,期限,Confluenceのページを添付することも可能である.さらにタスク(チケット,課題)ごとに子課題を振ることができたり,他の課題をリンクさせることも可能だ.課題に関してチームメンバーがコメントを残すことも可能である.
スクリーンショット 2024-06-03 20.17.13.png

冒頭でも述べた通り,このチケットのステータスをgit操作(git branch, pullrequest, merge, close)をトリガーとして変更させることも可能である.本記事では最後の見出しで紹介する.

JiraとConfluenceを連携させるにはJiraの左上にある以下のアイコンをクリックしてConfluenceプロジェクトを選択することで可能となる.
スクリーンショット 2024-06-03 20.24.12.png

またJiraの各々のアカウントページでは全てのプロジェクトにおける自分の担当チケットを確認することも可能だ.

スクリーンショット 2024-06-03 20.26.44.png

次にSourceTreeでGit管理をする.

Gitリポジトリはリモートで作成済みであると仮定する.

gitの基本がわからない方はこちらの記事を見ること
https://qiita.com/tarakokko3233/items/ad7e1a1a14d3e2f10da3 

Sourcetreeをインストールしていない人は以下からインストールすること.
https://www.sourcetreeapp.com

Sourcetreeを開いたらローカルとリモートの欄があるのでリモートを選択したら,ログインしているGitリポジトリの一覧が出てくる.

githubへのログイン方法はSourcetreeの設定からアカウントを選択して,githubなどでログインをするとリモート欄にリモートリポジトリが出てくる.

スクリーンショット 2024-06-04 16.21.42.png

リモート欄にあるリモートリポジトリの右側についているクローンを押すとクローンできる.
スクリーンショット 2024-06-04 16.35.52.png

チェックアウトの仕方は,
スクリーンショット 2024-06-04 17.10.21.png

ローカルブランチを作成するには,上部のブランチボタンから作成することができる.Jiraではこのローカルブランチをプッシュすることでタスクステータスを未着手から進行中に自動で変えることができる設定がある.
スクリーンショット 2024-06-04 17.16.52.png

git add, git commitの仕方は以下の通りである.
68747470733a2f2f71696974612d696d6167652d73746f72652e73332e61702d6e6f727468656173742d312e616d617a6f6e6177732e636f6d2f302f333735373434322f32623236383634352d306663392d363439322d383033642d3062343064666333376238652e706e67.jpg

git pushの仕方は以下の通りである.
スクリーンショット 2024-06-04 17.23.53.png

PRとマージはgithub上で行う.JiraではこのPR作成やマージ時にタスクステータスを進行中からPR済PR済からマージ済に自動で変えることができる設定がある.

Jiraの設定方法

Jiraでプロジェクトを作成するには,プロジェクトを押してプロジェクトを作成を押す.
スクリーンショット 2024-06-04 17.33.18.png

プロジェクトのテンプレートを目的に合わせて作成する.
スクリーンショット 2024-06-04 17.36.20.png

プロジェクト名とキーの設定とメンバーの設定ができる.

キーはJiraのエンドポイントにつくプロジェクトを一意に識別するためのコード.英語大文字で管理する.

スクリーンショット 2024-06-04 17.36.55.png

作成したプロジェクトページのショートカットボタンを押して,ConfluenceのリンクやGitHubのリポジトリのリンクを貼っても良い.
スクリーンショット 2024-06-04 17.49.19.png

Confluenceの設定方法

スペースを押してスペースを作成を押す.
スクリーンショット 2024-06-04 17.43.00.png

スペースのテンプレートを目的に合わせて作成する.
スクリーンショット 2024-06-04 17.44.04.png

プロジェクト名とキーの設定ができる.キーはJiraと同じにすると良い.
スクリーンショット 2024-06-04 17.44.28.png

この後+作成ボタンからページを追加できる.
また+作成ボタンでページした,コンテンツにページが追加されていく.
ショートカット欄には各種リンクを貼ることができる.+ボタンを押してJiraやGithubのリポジトリのリンクを貼っても良い.
スクリーンショット 2024-06-04 17.46.55.png

gitとJiraを連携する

Jiraのアプリを押して,アプリの管理を押す.
スクリーンショット 2024-06-04 17.52.16.png

Configureを押してgithubアカウントでログインする.
スクリーンショット 2024-06-04 17.54.28.png

プロジェクト設定を押して,自動化を押す.
スクリーンショット 2024-06-04 17.58.03.png

スクリーンショット 2024-06-04 17.59.19.png

テンプレートを押して,GitのPRやマージをするとタスクステータスが変わるようにするものがあるので値を任意の形に変えて自動化を作成する.
スクリーンショット 2024-06-04 17.59.59.png

例えばブランチを作成すると未着手から進行中に変える方法のルールは以下の通りに作成する.
スクリーンショット 2024-06-05 10.01.13.png

これでgit Jira confluenceが連携された.
このようにすればgitの使い方から,タスク管理まで一元管理することができる.

Unity,Java,Androidで別々のJiraプロジェクト,Confluenceの1つのスペース,Gitの1つのリポジトリで管理すれば良いだろう.あくまで一例として考えてほしい.

スクリーンショット 2024-06-04 18.05.43.png

7
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
6