[[GitLab]]

* 目次 [#ab473b73]
#contents

* なぜガントチャートが必要なのか? [#lc1f65c1]
それは、人員の過不足を予見するために必要だと思う。

エクセルでできるのは、タスク分割までにして、それ以降の分析はスケジュール用のツールをつかったほうが効率が良い

** excelのセルからガントチャートの構文を生成 [#r1dd6249]
エクセルのせるから文字列を生成するような形式で、ガントチャートの構文を生成するというやりかたも既存のやり方にほぼ近い形式でガントチャートを利用できるのでかもしれない。

* なぜ、紙で書いたものでなくマークダウンなのか? [#m51aa365]
マークダウンは、デザインには力をつかわないので、本質的なことに焦点をあてやすい。

デザインは、力をいれてないわりには、まあまあというのがメリットだ。

本質的なことにかかることに修正をいれやすいのだ

* なぜマークダウン形式のガントチャートがいいのか? [#adec57f1]
- テキストファイルであることのメリットは、Gitをはじめとする、テキストファイル用のエコシステムがたくさんあること。


* 趣旨 [#z049d0df]
GitLabはPlantUmlで管理できるので、ガントチャートで進捗率を確認したり、

そのタイミングでその日の作業報告をマージリクエストのコメントにかく運用もできることを示すことを記事にしてみた。

* メリット [#f75e4b09]
このやり方以外では、プロジェクトリーダを中心としたミーティングを開催し、それぞれの担当者から報告をうけるようになるのが通例である。

関係のないタスクの担当者の報告を聞く羽目になり生産性に改善の余地を感じることになる。

* 前提 [#ibf51e51]

GitLabでPlantumlと連携させていることが前提の記事となっている。
連携させる記事は別途書いている。

* プロジェクト管理について [#fcbe6941]

** 現場で使えそうな、時間の月とか週とか日とかのスコープについて [#kda36891]
プロジェクト管理で開発の現場でつかえそうなのは、以下の2つでいいと思う
- 週単位のスコープと
- 日単位のスコープ

理由は、月単位のスケジュールはリスケになる確率が高いし、月単位のスケジュール管理gあ必要な大規模なプロジェクトなプロジェクトには、専任のプロジェクトを管理する人がいるだろうから、自分には月やクォータ単位のスコープは不要と判断した。

** GitLabのスケジュール管理について [#o2d71cbf]
Issueなどをタイムラインで管理するのは、GitLabのPremiumで有料だけれども、

PlantUmlをインストールして、手書きでチマチマやる分には無料である。

*** projectLibreで表現できていた、親タスクはどうするの? [#xe375d16]

projectLibre

https://www.projectlibre.com/

からGitLabでのガントチャートへの移行を考えたときに、

いままでできていた親チャートの表現どうしようかと思い、いろいろ思考錯誤してみた結果、以下の考え方で大丈夫な感じだ。


- 親タスクは
 -- 親タスク --

という形で、タイトルを入れれる区切り線で代替するのがよい



** 記述粒度はWeekとDayの2種類 [#f83a00cb]
週単位のスコープでは、抱えている案件全体の列挙と、予測される必要な人員を書いていき、不足している人員が何人なのか割り出すことができ、採用計画へとつなげることができる。

** 自分の見解 [#m345d0a5]
plantUmlでのガントチャートの表記を勉強してみた結果、PlantUMLのガントチャートは、無料ながらも実践投入できるであろうという次の見解に至った。

- PlantUMLのガントチャート機能で人をアサインしてみると作業が超過しているかどうかの確認ができるようになっている。
- ガントチャートのひな形を用意しておけば、学習コストはかなり抑えられる。

- 進捗報告をgitのブランチにプッシュするだけになるので、夕会などをひらいて進捗報告会を開かなくても、進捗の管理ができるようになる。

* プロジェクト管理のひな形 [#b3ac239b]

このひな形からさらに各プロジェクトごとのひな形を作ることをお勧めします。

** 週単位のスコープのガントチャートのひな形 [#u381abf8]
 
以下のサンプルは、タスクを省略形式をつかっていますが、実際につかってみると省略形式なしでいいかと思います。


 @startgantt
 
 language ja
 ' プロジェクトのスケール
 projectscale weekly
 ' プロジェクトの開始日
 Project starts the 2022-11-01
 
 ' 進捗の%によって色が変わるスタイル指定
 <style>
 ganttDiagram {
   task {
     BackGroundColor GreenYellow
     LineColor Green 
     unstarted {
       BackGroundColor Fuchsia 
       LineColor FireBrick
     }
   }
 }
 </style>
 
 ' 本日に色を塗る
 today is colored in #AAF
 
 -- タスクのまとまりの名前 --
 ' タスク名と量の定義
 [起業マインドトレーニング] as [TASK_1-1] lasts 4 weeks
 [売るものを決める]        as [TASK_1-2] lasts 4 weeks
 [マーケティング力を鍛える] as [TASK_1-3] lasts 8 weeks
 [販売力と信用力を鍛える]  as  [TASK_1-4] lasts 8 weeks
 
 ' タスク間の関連
 [TASK_1-1] -> [TASK_1-2]  
 [TASK_1-2] -> [TASK_1-3]  
 [TASK_1-3] -> [TASK_1-4] 
 
 ' ゴール
 [会社を作る] as [TASK_1] happens at [TASK_1-4]'s end
 
 ' 進捗%
 [TASK_1-1] is 0% completed
 [TASK_1-2] is 0% completed
 [TASK_1-3] is 0% completed
 [TASK_1-4] is 0% completed
 
 @endgantt

** デイリーのスコープのひな形 [#l4820d05]
 @startgantt
 language ja
 
 ' 土日休み
 saturday are closed
 sunday are closed
 
 ' 祝日を指定
 2022-11-03 is closed
 2022-11-23 is closed
 
 ' 個人の休暇
 {Aさん} is off on 2022-11-22 to  2022-11-23
 
 ' プロジェクトの開始日を指定
 Project starts the 2022-11-01
 
 ' 担当者名をタスク名の隣に表示させない指定
 hide ressources names
 
 ' 進捗の%によって色が変わるスタイル指定
 <style>
 ganttDiagram {
   task {
     BackGroundColor GreenYellow
     LineColor Green 
     unstarted {
       BackGroundColor Fuchsia 
       LineColor FireBrick
     }
   }
 }
 </style>
 
 ' 本日に色を塗る
 today is colored in #AAF
 
 ' タスク名と量(人日)の定義 %を使う場合は0より大きくするひつようがある.例 {Aさん:95%} {Bさん:5%}
 [やりたいことを見つける]    as [TASK_1-1-1] on {Aさん} lasts 3 days
 note bottom
   memo1
 end note  
 [25点の「知」を手に入れる]  as [TASK_1-1-2] on {Aさん} lasts 7 days
 [25点の「人」を手に入れる]  as [TASK_1-1-3] on {Aさん:50%} {Bさん:50%} lasts 7 days
 [25点の「金」を手に入れる]  as [TASK_1-1-4] on {Aさん} lasts 7 days
 
 ' タスク間の関連
 [TASK_1-1-1] -> [TASK_1-1-2]
 [TASK_1-1-2] -> [TASK_1-1-3]
 [TASK_1-1-3] -> [TASK_1-1-4]
 
 ' ゴール
 [起業マインドトレーニング完了] as [TASK_1-1] happens at [TASK_1-1-4]'s end
 
 ' 進捗%
 [TASK_1-1-1] is 0% completed
 [TASK_1-1-2] is 0% completed
 [TASK_1-1-3] is 0% completed
 [TASK_1-1-4] is 0% completed
 
 @endgantt


* 想定する運用について [#p001bb6e]

ガントチャートのツールを使っているユーザは、複数人での運用をしているという前提で運用を考えてみる。

** スケジュールを立てるとき [#uc1e867d]
- ひな形をもとに作成した進捗率0%のテキストファイルをmainブランチにマージする
-- スコープは週単位ものと、日単位のものを用意する


** 報告者 [#u76e346d]
- 朝会のかわりに、本日やることを書いたマージリクエストを飛ばす
- デイリーのスコープの進捗率を「定時」の1時間前に更新する。
- スケジュール上のメモを
- 夕会の報告がわりに、マージリクエストのコメントを更新する
- 以上の報告を30分以内に報告を終える
- 共有事項はIssueとして記入する

** 報告を受ける側 [#pb2602d2]
- マージリクエストのコメントを読む
- マージする
- 毎週金曜日は週単位のスコープのガントチャートの進捗率を更新する。

* 実際に運用してみた感想 [#lff23217]
このやり方はエクセルを使ったプロジェクトの管理

すでにエクセルを使って、プロジェクトのタスクを分割した運用をしている人は多い。

しかしそのやり方だと、以下のデメリットがある

** エクセルを使ったプロジェクト管理のデメリット [#je8d83cf]
- 人のアサインをした場合に、同じ人が重複しているかどうかという観点での確認が困難
- タスクに土日の概念を入れにくい

つまり、プロジェクト管理ツールを使えないエクセルだけしかつかえない人をプロジェクトリーダとかにしてはならない。

** plantumlでは、人のアサインの重複確認ができる [#ua0aa07b]
ガントチャートに人をアサインすると、下のほうに100とか出てくる1人日の意味だ

plantumlのガントチャートでは人をアサインすると、下のほうに1日ごとのマス目がでてきて、担当者が左下にきて、枠には100と表示される。100の意味は1人日を意味している
それは1人日の意味だ

** メモ機能が便利 [#r79402c9]
タスクの下にメモを追加することができるが、実際につかってみると、これはタスクのヒアリングに使える。ヒアリングした結果を取り急ぎここに書いておける。

つまり、メンバー間の認識の齟齬をその場でチェックして、即座にガントチャートに反映させることができるのである。
トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS