メインコンテンツまでスキップ

GitHub実践ワークショップ開発ガイド

🎯 概要

このドキュメントは、GitHub実践ワークショップを開発する際の要件定義書です。 同様のワークショップを作成する際の参考資料としてご活用ください。

📋 目次

  1. プロジェクト概要
  2. 要件定義
  3. ワークショップ構成
  4. 開発プロセス
  5. チケット管理
  6. 成果物一覧
  7. ワークショップ作成のヒント

プロジェクト概要

ミッション

GitHub/Gitの基本操作を実践的に学ぶワークショップのWikiサイトを構築する

ターゲット

  • 中高生
  • プログラミング初心者
  • Git/GitHub未経験者

期間

  • 基礎編: 6回(各1-2時間)
  • 応用編: 3回(各1.5-2時間)

要件定義

機能要件

1. 環境非依存性

  • 要件: VSCodeインストール不要
  • 解決策: github.dev(ブラウザ版VSCode)の活用
  • メリット: 全OS対応、Chromebookでも動作

2. 段階的学習

  • Day 1: GitHubアカウント作成、初リポジトリ、GitHub Pages
  • Day 2: マークダウン、ファイル管理、コミット
  • Day 3: プロフィールREADME作成
  • Day 4: github.dev活用
  • Day 5: ブランチとプルリクエスト
  • Day 6: GitHub Classroom体験

3. 実践重視

  • すぐに成果が見える(GitHub Pagesで即公開)
  • 手を動かしながら学ぶ
  • 実用的なサンプルコード

非機能要件

1. アクセシビリティ

  • 日本語対応
  • スクリーンショット付き手順書
  • トラブルシューティングガイド

2. 拡張性

  • 応用編の追加が容易
  • GAS連携などの発展的内容

3. 保守性

  • ドキュメントベースの構成
  • Markdownで記述
  • バージョン管理可能

ワークショップ構成

基礎編カリキュラム

Day 1: GitHubデビュー(ブラウザのみ)
目標: GitHubアカウント作成とウェブサイト公開
成果物: GitHub Pagesで公開されたサイト

Day 2: GitHub基本操作(ブラウザのみ)
目標: マークダウンとファイル管理の習得
成果物: README.mdとコミット履歴

Day 3: プロフィールREADMEで自己表現
目標: 特別なリポジトリでプロフィール作成
成果物: カスタマイズされたプロフィール

Day 4: github.devで本格開発
目標: ブラウザ版VSCodeの活用
成果物: 複数ファイルのプロジェクト

Day 5: ブランチとプルリクエスト
目標: チーム開発の基礎を学ぶ
成果物: PRの作成とマージ経験

Day 6: GitHub Classroom(生徒体験)
目標: 課題提出フローの理解
成果物: 自動採点された課題

応用編カリキュラム

Advanced 1: Google Apps Script入門
目標: GASとGitHubの連携
成果物: claspで管理されたGASプロジェクト

Advanced 2: GitHub Classroom講師体験
目標: 課題配布と自動採点の設定
成果物: 動作するClassroom環境

Advanced 3: GitHub活用テクニック
目標: Actions、Wiki、プロジェクトボード
成果物: 自動化されたワークフロー

開発プロセス

1. チケット駆動開発

全19チケットに分割して管理

2. フェーズ分割

Phase 1: 基礎構築(優先度: 高)
Phase 2: Day別コンテンツ作成(優先度: 高)
Phase 3: 応用編コンテンツ(優先度: 中)
Phase 4: 補助資料(優先度: 中-低)
Phase 5: デプロイと公開(優先度: 高)
Phase 6: GAS関連コンテンツ(優先度: 中)

3. スプリント管理

  • スプリント1: TICKET-001〜005
  • スプリント2: TICKET-006〜011, TICKET-017
  • スプリント3: TICKET-012〜016, TICKET-018〜019

チケット管理

チケットテンプレート

#### TICKET-XXX: タイトル
- **担当**: 開発者
- **見積時間**: X時間
- **実績時間**: X時間(完了後記入)
- **完了日**: YYYY-MM-DD(完了後記入)
- **タスク**:
- [ ] サブタスク1
- [ ] サブタスク2
- **成果物**: path/to/file

進捗管理のポイント

  1. 各チケットは独立して作業可能に設計
  2. 優先度を明確に設定
  3. 実績時間を記録して改善に活用

成果物一覧

ドキュメント構造

docs/
├── intro.md # トップページ
├── basics/ # 基礎編
│ ├── day1.md〜day6.md
├── advanced/ # 応用編
│ ├── day1.md〜day3.md
│ ├── gas-intro.md
│ └── security/
├── resources/ # リソース
│ ├── troubleshooting.md
│ ├── glossary.md
│ └── templates.md
└── samples/ # サンプルコード
├── day1/〜day6/
├── basic-web/
└── gas-samples/

主要コンテンツ

  1. 基礎編: 6日分の段階的学習コンテンツ
  2. 応用編: 3つの発展的トピック
  3. 補助資料: トラブルシューティング、用語集
  4. サンプルコード: 各Day用の簡単なコード

ワークショップ作成のヒント

1. 対象者の明確化

  • 年齢層、技術レベルを具体的に設定
  • ペルソナを作成して一貫性を保つ

2. 環境構築の簡素化

  • インストール不要な方法を優先
  • ブラウザベースのツールを活用
  • 失敗しにくい環境を提供

3. 成功体験の設計

  • 各回で目に見える成果物を作る
  • 小さな達成感を積み重ねる
  • 即座にフィードバックが得られる仕組み

4. エラー対策

  • よくあるエラーを事前に想定
  • トラブルシューティングガイドを充実
  • エラーメッセージの解説を含める

5. 発展性の確保

  • 基礎編の後に応用編を用意
  • 実務で使える内容を含める
  • 継続学習のモチベーション維持

6. ドキュメント設計

  • Markdownで統一
  • スクリーンショットを多用
  • チェックリストで確認しやすく

7. サンプルコードの原則

  • 極力シンプルに
  • コメントを日本語で
  • 動作確認済みのコードのみ

8. 運営のコツ

  • 完璧を求めない
  • エラーは学習のチャンス
  • アウトプット重視
  • 質問しやすい雰囲気作り

参考情報

採用した技術選定

  • github.dev: OS依存問題の解決
  • GitHub Pages: 即座に公開できる達成感
  • GitHub Classroom: 実践的な課題管理
  • Google Apps Script: 実用的な自動化

工夫したポイント

  1. 8桁認証コード問題: 事前に注意喚起
  2. 日本語対応: コミットメッセージも日本語OK
  3. キャッシュ問題: Ctrl+F5での解決方法明記
  4. プライバシー配慮: 個人情報保護の注意点

まとめ

このワークショップ開発を通じて得られた知見:

  1. 段階的学習の重要性: 小さなステップで確実に
  2. 環境構築の壁を低く: ブラウザだけで完結
  3. 実践重視: 理論より手を動かす
  4. エラー対応: 事前の想定と丁寧な説明
  5. モチベーション維持: 即座に見える成果

これらの要素を組み合わせることで、初心者にも優しく、 実践的なGitHub/Gitワークショップを作成できます。


作成日: 2025-01-06
最終更新: 2025-01-06
バージョン: 1.0.0