2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

はじめに

こんにちは!この記事では、Google Colaboratory(以下、Colab)を使って、ソフトウェア開発プロジェクトのガントチャートをSVG形式で作成する方法をご紹介します。

image.png

ソフトウェア開発プロジェクトの管理において、フェーズやタスクの可視化は非常に重要です。今回は、以下の特徴を持つガントチャートの作成方法をご紹介します:

  • SVG形式での出力(高品質な画像)
  • 日本語フォントの適切な表示
  • ソフトウェア開発フェーズに最適化されたデザイン
  • Google Colab上で簡単に実行可能

環境準備

まずは必要なライブラリのインストールと基本設定を行います。

# 必要なライブラリのインポート
!apt-get -y install fonts-noto-cjk
import matplotlib.pyplot as plt
from matplotlib import font_manager
import matplotlib.patches as mpatches
import pandas as pd

# 日本語フォントの設定
font_path = '/usr/share/fonts/opentype/noto/NotoSansCJK-Regular.ttc'
font_prop = font_manager.FontProperties(fname=font_path, size=14, weight='bold')

# カラーパレットの定義(ソフトウェア開発フェーズ用)
planning_color = '#a3d9a5'    # 企画フェーズ用
spec_color = '#87ceeb'       # 仕様フェーズ用
design_color = '#f4c542'     # 設計フェーズ用
dev_color = '#ff9999'       # 開発フェーズ用
test_color = '#dda0dd'      # テストフェーズ用

ガントチャートの基本構造

ソフトウェア開発プロジェクト向けのガントチャートは以下の要素で構成されています:

  1. タイムライン(X軸)
  2. 開発フェーズとタスク(Y軸)
  3. 進捗バー(フェーズごとに色分け)
  4. 凡例(各フェーズの説明)

実装コード

def create_software_gantt_chart(tasks, start_dates, end_dates, phases):
    """
    ソフトウェア開発プロジェクト用のガントチャートを作成する関数
    
    Parameters:
    -----------
    tasks : list
        タスク名のリスト
    start_dates : list
        開始日のリスト(datetime形式)
    end_dates : list
        終了日のリスト(datetime形式)
    phases : list
        開発フェーズのリスト
    """
    # フェーズごとの色を定義
    color_dict = {
        '企画': planning_color,
        '仕様': spec_color,
        '設計': design_color,
        '開発': dev_color,
        'テスト': test_color
    }
    
    # プロットの設定
    fig, ax = plt.subplots(figsize=(15, 8))
    ax.set_facecolor('#f7f7f7')
    fig.patch.set_facecolor('#f7f7f7')
    
    # Y軸の設定
    ax.set_ylim(-1, len(tasks))
    ax.set_yticks(range(len(tasks)))
    ax.set_yticklabels(tasks, fontproperties=font_prop)
    
    # X軸の設定(月表示)
    ax.grid(True, axis='x', linestyle='--', alpha=0.7)
    
    # ガントチャートの描画
    for i, (start, end, phase) in enumerate(zip(start_dates, end_dates, phases)):
        ax.barh(i, (end - start).days, left=start, 
                height=0.3, color=color_dict[phase], alpha=0.8)
    
    # 凡例の作成
    legend_elements = [mpatches.Patch(facecolor=color, label=phase)
                      for phase, color in color_dict.items()]
    ax.legend(handles=legend_elements, prop=font_prop)
    
    # タイトルの設定
    ax.set_title('ソフトウェア開発プロジェクト工程表', fontproperties=font_prop, pad=20)
    
    return fig

# 使用例(標準的なソフトウェア開発プロジェクトの場合)
tasks = [
    'プロジェクト計画策定',
    '要件定義',
    'システム設計',
    'データベース設計',
    'フロントエンド開発',
    'バックエンド開発',
    '単体テスト',
    '結合テスト',
    'ユーザーテスト'
]

start_dates = [
    pd.to_datetime('2024-04-01'),
    pd.to_datetime('2024-04-15'),
    pd.to_datetime('2024-05-01'),
    pd.to_datetime('2024-05-01'),
    pd.to_datetime('2024-05-15'),
    pd.to_datetime('2024-05-15'),
    pd.to_datetime('2024-06-15'),
    pd.to_datetime('2024-07-01'),
    pd.to_datetime('2024-07-15')
]

end_dates = [
    pd.to_datetime('2024-04-14'),
    pd.to_datetime('2024-04-30'),
    pd.to_datetime('2024-05-14'),
    pd.to_datetime('2024-05-14'),
    pd.to_datetime('2024-07-14'),
    pd.to_datetime('2024-07-14'),
    pd.to_datetime('2024-06-30'),
    pd.to_datetime('2024-07-14'),
    pd.to_datetime('2024-07-31')
]

phases = [
    '企画',
    '仕様',
    '設計',
    '設計',
    '開発',
    '開発',
    'テスト',
    'テスト',
    'テスト'
]

# ガントチャートの作成と保存
fig = create_software_gantt_chart(tasks, start_dates, end_dates, phases)
plt.savefig('software_gantt_2024.svg', format='svg', bbox_inches='tight', dpi=300)
plt.close()

出力したsvgの例
image.png

カスタマイズのポイント

1. フェーズごとの色調整

開発フェーズに応じて視認性の高い配色を設定しています。各フェーズが一目で分かるよう、コントラストの高い色を選択しています。

2. タスクの粒度

タスクの粒度は以下のように調整可能です:

  • 大きめ(フェーズレベル): 企画、設計、開発など
  • 中程度(機能レベル): ユーザー認証、データベース、APIなど
  • 詳細(タスクレベル): DB設計、API実装、単体テストなど

3. 期間の調整

figsizeパラメータを変更することで、長期プロジェクトや短期プロジェクトに対応できます。

出力結果の活用

生成されたSVGガントチャートは以下の場面で活用できます:

  • プロジェクト計画書への添付
  • チーム内での進捗共有
  • スプリントプランニングでの使用
  • 顧客向けプレゼンテーション

まとめ

Google Colabを使ったソフトウェア開発向けガントチャート作成の利点:

  1. プロジェクトの全体像を視覚的に把握可能
  2. フェーズごとの色分けで進捗状況が分かりやすい
  3. SVG形式で高品質な図が作成可能
  4. データの更新が容易

参考リンク

2
1
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
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?