Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Proposal of Projects Improvement with GitHub

Inoue-KK
September 13, 2022

Proposal of Projects Improvement with GitHub

とあるプロジェクトでのGitHub導入を想定した、個人的な提案資料です。

Inoue-KK

September 13, 2022
Tweet

Other Decks in Technology

Transcript

  1. 目次 • 課題と改善案の概観 • 課題1: バージョン管理 • 課題2: 手作業による比較・マージ •

    課題3: バグ・タスク管理 • バージョン管理システム「GitHub(ギットハブ)」紹介 • セキュリティ及び安全性 • 検証スケジュール(案) • まとめ
  2. 課題と改善案の概観 本資料では下記の課題とその改善案を提案する。 なお全ての課題はバージョン管理システム「GitHub(ギットハブ)」によって改善可能と想定さ れ、次ページ以降でその詳細と改善可能性・想定検証内容を紹介する。 1. バージョン管理 [現在の状況] バージョン名フォルダをファイルサーバで管理 [課題] 容易に書き換え・削除のリスクあり、検知・追跡・復旧が困難

    [改善案] バージョン管理システムによるバージョン管理を導入 2. 手作業による比較・マージ [現在の状況] 部分修正等の差分を手動でマージ [課題] マージ作業に多くの工数が必要、マージ作業にノウハウが必要となり属人的、マージ後にも手 動での動作検証が必要 [改善案] バージョン管理システムによるパッチ提出・レビュー支援と半自動マージを導入 3. バグ・タスク管理 [現在の状況] ソースコードをファイルサーバで、バグやタスクをエクセルシートで管理 [課題] バグ・タスクの管理状況、ドキュメントの変更状況、ソースコードの改修状況がそれぞれ独立 しており一致しない [改善案] バージョン管理システムの課題管理機能とソースコード管理機能による一元管理
  3. 課題1: バージョン管理 現状 フォルダ名にバージョン番号を入れて ファイルサーバ上で管理 課題 • 書き込み権限があればバージョンの 変更・削除ができてしまう •

    万が一意図せず変更・削除された際、 検知や追跡、復旧が困難 改善案 • GitHubの「リリース」機能と「タ グ」機能により、バージョンが変更 されないよう固定できる見込み • 後述の「監査ログ」により操作履歴 を追跡できる見込み [対象機能] • リポジトリのリリースを管理する https://docs.github.com/ja/repositories/relea sing-projects-on-github/managing-releases- in-a-repository • リポジトリのリリースとタグを表示する https://docs.github.com/ja/repositories/relea sing-projects-on-github/viewing-your- repositorys-releases-and-tags ├ project-a │ ├ │ │ ◦◦ツール_ソース ◦◦ツール_ver1.0.0 ◦◦ツール_ver1.0.1 ◦◦ツール_ver1.0.2
  4. 課題2: 手作業による比較・マージ 現状 以下の流れで変更作業を行っている 1. 対象ソースコードを複製して開発者に渡す 2. 開発者が対象ソースコードを変更 3. 開発者が変更後のソースコード一式をファイ

    ルサーバの指定フォルダに配置 4. マージ担当者が変更内容をマージツールで確 認しながらマージ 5. マージ担当者がマージ結果を検証 6. マージ担当者がマージされたソースコード一 式をファイルサーバの指定の場所に配置 課題 • 作業に時間を要する • 人為的ミスが生じやすい • マージ作業が複雑 • マージ作業の分担が困難 改善案 • GitHubの「プルリクエスト」機能により、 ソースコードの変更箇所が視認性高くレビュー でき、対象ファイルのみを安全にマージできる 見込み • 経過をプロジェクトメンバー間で共有できるた め、分担や再修正も効率的に行える可能性が高 い [対象機能] • Pull requestsについて https://docs.github.com/ja/pull- requests/collaborating-with-pull- requests/proposing-changes-to-your-work-with- pull-requests/about-pull-requests • プルリクエストのレビューについて https://docs.github.com/ja/pull- requests/collaborating-with-pull- requests/reviewing-changes-in-pull- requests/about-pull-request-reviews
  5. 課題3: バグ・タスク管理 現状 ソースコードやドキュメントはファイル サーバ、課題やバグ等はエクセルシート でそれぞれ管理している 課題 課題・バグ等の資料からソースコードや ドキュメントの変更が追跡しにくいため、 課題やバグ修正が完了しているかの確認

    作業が発生 改善案 GitHubの「イシュー」機能や「マイルストー ン」機能により、課題・バグの管理と、開発進 捗の把握・共有が効率良くプロジェクト内で共 有できる見込み [対象機能] • Issueについて https://docs.github.com/ja/issues/tracki ng-your-work-with-issues/about-issues • タスクリストについて https://docs.github.com/ja/issues/tracki ng-your-work-with-issues/about-task- lists • マイルストーンの進捗状況を表示する https://docs.github.com/ja/issues/using -labels-and-milestones-to-track- work/viewing-your-milestones-progress
  6. バージョン管理システム「GitHub(ギットハブ)」紹介 GitHub(ギットハブ)とは? Microsoft社傘下のGitHub社により提供され ているバージョン管理サービス。 日本に限らず世界中の名だたる企業がソフ トウェア開発のために活用している。 導入実績 • 株式会社 日立製作所

    https://github.co.jp/customer-stories/hitachi https://github.com/Hitachi • 富士通株式会社 https://github.co.jp/customer-stories/fujitsu https://github.com/fujitsu • KDDI株式会社 https://www.macnica.co.jp/business/dx/manufacturers/github/case _kddi.html https://github.com/KDDI-tech • 凸版印刷株式会社 https://github.co.jp/customer-stories/toppan • GMOフィナンシャルホールディングス株式会社 https://github.co.jp/customer-stories/gmo • Google https://github.com/google • Apple https://github.com/apple • Meta (Facebook) https://github.com/facebook • Amazon https://github.com/amzn • Microsoft https://github.com/microsoft
  7. セキュリティ及び安全性 以下の機能でセキュリティを強化可能 • 2要素認証 (2FA) • 監査ログ • シングルサインオン (SSO)

    • LDAPによる社内アカウントとの連携と一元管理 • IPアドレスによる接続元制限 • 自社ホスティングによる安心と安全基準の担保
  8. 検証スケジュール(案) 2022. 10 2022. 11 2022. 12 2023. 01~ バージョン管理

    機密情報を含まない サンプルプロジェク トを新規作成し、リ リースバージョン管 理の検証。 パッチ提出・レビュー支 援・半自動マージ サンプルプロジェク トにてパッチ提出と レビュー支援機能を 検証。 半自動マージによる 成果物が検証される ことを確認。 課題とソースコード の一元管理 (予定)次期フェーズ 検証 サンプルプロジェク トにて疑似的に発生 させたバグや機能追 加要望を管理し、 ソースコードと合わ せて一元管理可能か 検証。 顧客知的財産・個人 情報と関連の低いプ ロジェクトなどで導 入検証 複数名での使用、費 用感などを検証 など 全期間共通 隔週で進捗を報告 [成果物] デモンストレーションを兼ねてWebブラウザで閲覧可能なGitHub上のサンプルプロジェクトを提出。 (プロジェクト、アカウント等はセキュリティ担保のため、会社とは無関係かつ類推されないものを作成し使 用する)