Markdownで、プロジェクト毎に作業ログを残そう!
# 目次
- 自己紹介
- ログの概要
- ログを残す意味
- ログを残すメリット
- 過去PJの振り返りが容易
- 複数案件掛け持ち時、状況の理解がし易い
- 作業報告や引き継ぎがスムーズ
- 1人で壁打ちができるので思考を整理しやすい
- ログ作成のポイント
- 5W1Hを意識して書く
- 最初は細かく書きすぎない
- ログ作成に便利なVSCodeの拡張機能
- Insert Date String
- Markdown Preview Enhanced
- まとめ
# 本文
## 自己紹介
こんにちは。
ITソリューション事業部のASPと申します。
アプリ開発6年目のエンジニアで、C#.netが得意分野です👍
過去に携わった開発案件の多くは、1~3人月位の小さな案件でしたが
顧客要望のヒアリング~納品まで、システム開発工程の上流~下流へ一通り関わって参りました。
また、運用保守フェーズで発生した顧客要望をまとめて、機能改修のプロジェクトを立ち上げた経験もございます。
今回は、私がプロジェクトに携わる際に活用している
Markdown作業ログのお話をさせていただきます。
「Markdownとは何ぞや?」って方は↓を参考にしてください。
https://qiita.com/h0iga3shi13/items/ff82ab230328f77a418a
## ログの概要
私は、新規プロジェクトが始まると`YYYYMMDD_案件名.md`(YYYYMMDDはプロジェクト開始日)という名前のファイルを作成して
これをVSCode(Visual Studio Code)で作業中はずっと開きっぱなしにしています。
そして、日付単位でh2の見出しを作成し
業務中の出来事や気づいたことをリアルタイムで記載しています。
以下画像のような感じです。
ポイントは**1つのプロジェクトで1ファイルにまとめて、日付単位で見出し(h2)をつける**という点です。
この意味は後述します。
## ログを残す意味
システムの開発や保守をしていて、不具合があった時はまずログを確認することが多いはずです。
**正しくログを残すプログラムは保守しやすい** ということはエンジニアの皆さんの共通認識かと思います。
それと同じように、我々もいつ何をしたかというログを残しておけば
後々問題があったときに、作業当時の状況が把握しやすくなりますよね。
仕事のログを残す意味は**後の自分やPJメンバーが仕事をしやすいようにすること**だと私は考えます。
## ログを残すメリット
私はこのMarkdown作業ログをエンジニアになりたての頃から5年くらい運用しているのですが、
具体的にメモを取っていてよかったな~と感じた部分をご紹介します。
### 過去PJの振り返りが容易
特にシステム運用保守をしている場合、1つのお客様と長いお付き合いになります。
その時に、「あの時ぼそっと出てきたあの内容どうなったっけ」みたいな感じで、1年以上前の何気ない会話を掘り返されることが稀によくあります(笑)
定例会などでは議事録を取っていますが、大抵は第◯回ごとに別ファイルになっていて
しかもExcelやPowerpoint形式なのでGrepすることも困難です。
また、五月雨的にテキストファイルを都度作成してメモを取る場合
保存場所がバラバラになり後から探しにくくなります。
その点、同一の`.md`ファイルで日付単位の見出しを切って出来事を残しておけば
**1プロジェクトの情報が1ファイルにまとまるため、情報が探しやすく**なります。
### 複数案件掛け持ち時、状況の理解がし易い
GAGAに入社してからは1つのプロジェクトにガッツリ入ることが多いですが
前職では3~4プロジェクトが同時進行していて
しかも顧客もフェーズもバラバラということがよくありました。
A社の基幹システムの運用保守をしながら
官公庁Bのシステムの要件定義に参加して
合間にC社の発注システムの開発・テストの補佐をする…
こんな感じで働いていると、どのプロジェクトがどんな状況だったか分からなくなってきます💦
そんな時に、日付単位の作業ログを取っておけば
**作業プロジェクトを切り替える場合も、前回までの状況をスムーズに把握できます。**
### 作業報告や引き継ぎがスムーズ
会社によっては業務報告書を書いたり、給与査定のための経歴書を作成したりすることもありますが
そんなときもこのログを見返せば自分がやってきたことが把握しやすいです。
また、仕事をしていれば、今までの作業を他者に引き継ぐ場面も発生します。
そんなときも、ログを見れば自分がしてきた作業の一覧が残っているので
引継書作成の補助になります。
極論、自分が急な事故や病気でメンバーと連絡が取れなくなったとしても
ログが残っていれば後任の方の負担軽減になります。
### 1人で壁打ちができるので思考を整理しやすい
ビジネス用語で「壁打ち」というものがあります。
自分の考えを他者に話すことで思考を整理する手法なのですが
この作業ログを使うことで、一人で壁打ちをすることが可能です。
以下のように、その時にどういう考えで何をしようとしているかを一度文字にすることで
擬似的に壁打ちをすることができます。
```
hogeの不具合報告有り
→hogehoge.csのXXXらへんが怪しい?あとでみてみる
fugaをfugaraに変えたらどうなる?
→だめだった。YYYで怒られる
piyoにかえてみる
→うまく行った!!!
```
失敗した場合でも、**「どういう考えで何をしたらどうなった」という情報を残す**ことは
後々有益になってきます。
## ログ作成のポイント
私なりのログ作成時に意識したほうがよいポイントをご紹介します。
### 5W1Hを意識して書く
**いつ、どこで、だれが、なにを、どのように、なぜ**という、5W1Hが記載されていれば
情報の解像度があがるので、なるべく意識して書くと良いでしょう。
「いつ」は日付単位の見出しが担保してくれるので、
「だれが、なにを、なぜ」を特に明確に残しておくと、ログとしての便利さが上がります。
これはログに限らず、プロジェクトメンバーやお客様に状況報告するときにも重要なポイントですので
5W1Hを押さえた情報伝達をできるようになると、お仕事もスムーズになるはずです👍
このあたりは以前S・Iさんが投稿していた、「資料を作る力」にも関係してくる部分かと思います。
https://note.com/gaga_blog/n/n84583e0e11fc
### 最初は細かく書きすぎない
5W1Hがしっかりと残っていることが理想ですが、最初から細かく書こうとしすぎると挫折します(笑)
まずは、メモ書き感覚でいいので、依頼された内容や出来事を残していく癖をつけるようにしましょう。
続けていくと、出来事をメモに記載することが無意識の癖になってくるので
そこから情報の粒度を上げていきましょう👍
## ログ作成に便利なVSCodeの拡張機能
ログを作成するのに使用しているVSCodeですが、拡張機能がたくさん用意されており
自分の好みに応じてカスタマイズが可能です。
その中で、私が便利と感じた拡張機能をいくつかご紹介します。
### Insert Date String
ショートカットで、現在の日付や時分秒を一瞬で挿入できるプラグインです。
(デフォルトだと`Ctrl + Shift + I`で時分秒、`Ctrl + Alt + Shift + I`で日付が割り当てられます)
日付単位で見出し(h2)を切るときとか、時分秒までの情報を載せたい時なんかに一瞬で入力できるので便利です。
(以下動画ではショートカットを使ってhh:mm:ssを入力しています)
https://marketplace.visualstudio.com/items?itemName=jsynowiec.vscode-insertdatestring
### Markdown Preview Enhanced
Markdown形式のメモにスタイルシートを当てて見やすく表示したり、HTMLやPDF形式での出力が可能なプラグインです。
作業ログを取っている最中はあまり使いませんが、内容を見返す時や他者に共有する時に見栄えがよくなるのでおすすめです。
https://marketplace.visualstudio.com/items?itemName=shd101wyy.markdown-preview-enhanced
## まとめ
皆様もお仕事の際は何かしらのメモを残していることが多いと思いますが
こちらのやり方は、必要な情報が5W1Hが整理された状態で1箇所に残るので
我ながらよいフレームワークかなと思ってます🙌
人によって合う合わないがあると思いますが、
メモの取り方でお悩みの方はぜひ参考にしてはいかがでしょうか?💪
以上、長くなりましたが
最後までご覧頂きありがとうございました✋