はじめに
システム開発プロジェクトにおいて使用するツールの全体像について整理してみたかったので書いてみました。
もくじ
要約
現時点(2020年4月12日)において、Scrum型のプロジェクトを推進するにあたって、(個人的に)理想的なツール構成は下図の通りです。
なお、このツール構成のコンセプトは、以下の TIS さんの「チーム開発環境構築テンプレート」から多分に影響を受けています。
Fintan-contents/collaborage: チーム開発環境構築テンプレート
上記のツール構成の実現にあたっては、特に次のようなことを意識しています。
一方で、次のようなツールは、自前でホスティングできないものの、それ以上に生産性の向上に役立つと想定しています。
- SaaS 型の Knowledge Base ツール : esa
- SaaS 型の UML 作成ツール : draw.io
- SaaS 型の ホワイトボードツール : miro
- SaaS 型の チケット管理ツール : Jira Software ※miroとの連携が魅力
なお、各ツールの採用にあたり、SSOや、OAuthのような機構を実現しなければ、アカウント管理が非常に煩雑になります。今回の想定では、理想形として、プロジェクト単位で G Suite の契約をするなどすることが一番効率的であると判断しています。
Scrum について
ツール個別の話題の前に、Scrum について整理します。なお Scrum の概要については、2020年2月に IPA 情報処理推進機構から公開された『アジャイル領域へのスキル変革の指針 - アジャイル開発の進め方』で非常によくまとまっているのでオススメです。
Scrum の全体像
Scrum の基本的な開発の流れは下図のように表現されます。
Scrum を 概念モデル図 で表現してみる
Scrum を構成する要素を概念モデル図で表現すると下図のようになります。
Scrum Event
Scrum で実行されるイベントのイメージについてまとめます。
Sprint Planning
Sprint の開始時に、 Product Backlog から 今回の Sprint で扱う Sprint Backlog を選出します。プロダクトオーナによって順位付けされた Backlog Item は、開発チームによって詳細化され、タスク分割されます。通常、タスクは 2〜8時間単位で見積もられ、1つのタスクは1人に割り当てられます。
Sprint
Sprint 期間中は次のプロセスを通して作業を進めます。
- チームで協働して、【要求〜設計〜テスト】を繰り返す
- TDD(テスト駆動開発)で実装する。
Daily Scrum
毎日、決まった時間に決まった場所で、15分以内で、開発チームが全員の情報を共有します。メンバーは一人ずつ、以下の3つの要素を決まった順に共有します。
- 昨日やったこと
- 今日やること
- 障害になっていること
出典:What is a Jira Software board? | Jira Software Cloud | Atlassian Support https://support.atlassian.com/jira-software-cloud/docs/what-is-a-jira-software-board/
Sprint Review
Sprint Review では次のようなことを行います。
- sprint で実装した機能をデモする
- product backlog について協議する
Sprint Retrospective
Sprint Resrospective では、KPT法を使用した「ふりかえり」を通して、チーム学習やチーム改善の活動を行います。
ツールの全体構成
本章から、改めてツールについて見てゆきましょう。 「要約」で掲載した図を以下に再掲します。
ツールの種類
上図のツールを構成するそれそれの機能要素についてまとめます。
Type | Description |
---|---|
Knowlede Base | 効率的に情報を共有するためのプラットフォーム。Wikiなどがこれにあたる。Officeツールで作成した文書は、色々と制約や使いづらさがあるため、Webブラウザのみで利用できるようなツールを採用することで、利用しやすくなる。 |
UML | ビジネスやシステムを分析する際に作図するツール。 |
Office Tool | 「文書作成(Word)」、「表計算(Excel)」、「プレゼンテーション(PowerPoint)」などのツール。 |
File Storage | 情報資産を格納し、関係者間で共有する仕組み。(共有フォルダ、Google Drive、OneDrive) |
Account Management | アカウント管理を実現するツール。OAuthなどの仕組みを実現し、中心となるサービスアカウントにて管理出来るようにすることが望ましい。 |
Code Analyze | コードの静的/動的な解析を自動化し、かつ、見やすく表現するツール。 |
Version Control System | コードや文書の版管理を実現するツール。「共有フォルダ」を使用する場合、PDFやOfficeツールで作成した文書も git のような VCS の管理ツールの対象となるが、 Google Drive などのように、自前で版管理が可能なサービスを使用することで、作業効率の向上に繋がる。 |
Code Review | VCS と連携し、コード差分 や Issue の発行、コード管理フローを支援するツール。 |
Chat | コミュニケーションのハブとなるツール。リモート開発の場合は、すべてのコミュニケーションが Chat ツールを中心に実行されるようになると、情報の伝達漏れや、記録漏れの防止に繋がる。 |
Video Chat | オンライン会議を始め、雑多なコミュニケーションに活用する。利用者の物理デバイスが持つマイクやカメラ、ネットワーク環境に依存する部分があるため、ハードウェアの部分から意識して環境を整える必要がある。 |
ホワイトボード | チームが物理的に近い場所にいる場合は、実際のホワイトボードの活用が好ましいが、遠隔にいるメンバーとコミュニケーションする場合には、情報の伝達漏れや、やり取りの障害になることがあるため、オンラインで利用できるツールの利用が好ましい。 |
Package Repository Manager | Dockerコンテナや、Mavenのリポジトリなど、チーム内や組織内でのみ共有したいパッケージを管理するプラットフォーム。 |
CI | 継続的インテグレーションを実現するツール。システム開発の分野では比較的、一般的なため詳細は割愛。 |
Ticket Management | チケット管理を実現するツール。システム開発の分野では比較的、一般的なため詳細は割愛。 |
ツール群
採用する想定の各ツールについて下表にまとめます。
Tool | Description | Memo |
---|---|---|
esa | Webブラウザから利用できる「情報共有サービス」 | DocBase も良さそう。 |
PlantUML | PlantUML の記法に従ってコードを記載することで、UMLを作成できる。 esa や GitLab などと連携できる。 | GitLab 連携には、サーバホスティング型の PlantUMLサーバ必要。Dockerで簡単に構築出来る。 |
draw.io | PlantUML はシステムに近い部分のUML作成には向くが、ビジネスに近い部分の作図には向かない。 draw.io は Web ブラウザから利用できる作図ツールであり、様々なサービスのアイコンをすぐに利用できるため、無料ながら非常に強力な作図ツールである。Jira や Confluence と連携する機能を有する(らしい。) |
|
G Suite | 言わずもがな。 次のような用途で使用できる。 - アカウント管理 - ファイルストレージ - Officeツール - Video Chat |
機能で使用する場合、組織共通で使用しているツールと競合するため、導入は容易ではない場合が多々ありそう。 |
sonarqube | コード解析ツール。セットアップと連携に一手間掛かるが、非常に有用なコード解析ツール。 | だんだん、Web上でも認知度が上がってきたように思う。 |
GitLab | Git Hosting サービスの1つ。OSSのため自前サーバに構築できる。有料版もあるが、無料版でもかなりリッチな機能を有する。 コードレビュや Merge Requestを始め、コード管理のための十分な機能を有する。 |
GitHub が使えるなら そちらでも良い。 |
Rocket.Chat | Chatツール。 GitLabと同様に、OSSのため、自前のサーバに構築出来る。 |
|
miro | ホワイトボードツール。以前は Realtime Board という名前だった。 非常に強力なコラボレーション機能を有しており、複数人でリアルタム編集が出来るため、本物のホワイトボードより使いやすい部分も多くある。 |
この領域はこれ1択かもしれない。 |
Jira Software | Atlasian のチケット管理ツール。アジャイル向け機能など、ビジネスユースとして十分な機能を有する。 miro との連携機能が魅力。 |
色々使うと結構高い。 |
Sonotype Nexus | Package Repository Manager | この領域にあまり詳しくないが、OSSの割に非常にリッチな機能を有しており使いやすいらしい。 |
Jenkins | CIツール。 | 余裕があれば CircleCI などでも良い。 |
Scrum を支える プラクティス
以下の書籍で 『Scrum を支える プラクティス』として紹介されているものについて、採用予定のツールで作図したものを記載します。
インセプションデッキ
スクラムで使う「インセプションデッキ」のmarkdown形式版テンプレート - Qiita https://qiita.com/bremen/items/ed491246ed83630bc84d
リーンキャンバス
ユーザストーリー
ユーザーストーリーマッピング
miro は Atlasian の Jira と連携することができ、 miro の User Story を Jira の ticket へ変換することが出来るらしい。
プラニングポーカー
プランニングポーカーは Webアプリケーションとして個人制作されたようなサイトはありましたが、これといったツールは見つかりませんでした。

Agile スクラム プランニング ポーカーカード - 見積もり/サイジングに最適なカード
- メディア: おもちゃ&ホビー
スパイク
スパイクは「事前調査」という位置付けのため、これに関連するツールは記載しません。ただし、敢えて挙げるとすると、調査結果を共有する Knowledge Base 的なツールが活用できると思います。
タスクボード
Daily Scrum で掲載したものと同じですが、 Jira Software board を使用することによって実現できます。
バーンダウンチャート
引用:スプリントの進捗状況を監視する - アトラシアン製品ドキュメント https://ja.confluence.atlassian.com/jirasoftwareserver/monitoring-the-progress-of-a-sprint-938845440.html
パーキングロット
パーキングロットについては、スプリントレビュ時のネタの退避場所という位置付けであり、スプリントレビュの実施方法に依存してツールが変わってくるかと思います。 miro や esa などを活用することで、効果的なパーキングロットを作成できるのではないかと思います。
KPT
技術的負債の返済
技術的負債の返済に取り組むためには色々なアプローチがあると思いますが、例えば次のようなツールを活用することによって、コードの見える化やコードレビュの効率化を実現することが可能です。
- GitLab
- SonarQube
継続的インテグレーション
継続的インテーグレーションの実行にあたっては、色々なツールが想定できますが、例えば次のようなツールを活用することによって実現できます。
- Jenkins
コミュニケーション
『完全リモート』という前提に立つと、『チャットツール』と『ビデオ会議ツール』は欠かせません。両者は色々候補がありますが、例えば以下のようなツールがあります。
- チャットツール
- Rocket.Chat
- ビデオ会議ツール
- appear.in
- Google Meet
- Teams
先日までは、ビデオ会議ツールとして「Zoom」が一番の候補でしたが、セキュリティ問題が顕在化したため、敢えて候補には入れません。
その他の手段
リッチに SaaS を使用する
自前でサーバ構築してツールを導入するのが面倒な場合、お金を掛けることが出来るならば以下のような構成が楽だと思います。
可能な範囲で OSS を使う
一方、可能な限り OSS かつ、制御可能な内部サーバで実現したい場合は、以下のようなツール構成が良いかと思います。なお、Knowlede Base や UML の部分で OSS や クライアントツールの候補もありますが、作業効率などの面でそのままにしてあります。
参考
今回の記事を作成するにあたり、以下の資料を参考にしました。
Scrum
- アジャイル領域へのスキル変革の指針 - アジャイル開発の進め方
- スクラムの概要を1分で理解できるイラスト【2018版】 – Ryuzee.com
- いらすとやで理解するスクラム用語 - u-tanick’s blog
- 【伸】インターネットバンキング案件における大規模スクラムの適用 ~新米アジャイルコーチ南米奮闘記~
チーム開発
情報システム
- ITソリューション:シャープマーケティングジャパン
- 基幹系システム(基幹業務システム)とは - IT用語辞典 e-Words
- 基幹系システムと情報系システムの違い:株式会社 日立ソリューションズ・クリエイト
- 情報システムの分類 > 情報システム - 情報システム学会ISSJ
- Microsoft PowerPoint - オンライン用添付図100326
ツール
変更履歴
- 2020年4月13日 午前0時34分 新規作成
- 2020年4月13日 午前8時48分 Scrum の概念モデル図を更新 ※Relase の概念を追加