タイムマネジメントと再現性を主軸に、持続可能なアウトプット習慣を本気で考えてみた


# はじめに

まずは前回、初めてのQiita投稿にも関わらず、たくさんの反響を頂きありがとうございました。

https://qiita.com/kazu_kichi_67/items/bb3235f13c4e587df004

そして、前回記事の最後で次回予告をしておきながら、なぜ今別の記事を書いているかというと、このQiita記事投稿を続けていくためにも、<font color="Red">**どうしても先に解決しなければならない課題**</font>が出てきてしまったためです。。

# この記事からわかること

- せっかく始めたアウトプットが、三日坊主にならないため秘訣とは？
- 限られた時間で、最大のアウトプットを出力するコツって何？
- 再現性のある生産物とはどんなもの？

# この記事のターゲット

- 今までインプット中心で、これからアウトプット始めてみたいと思っているエンジニア
- １度アウトプットを始めてみたものの、うまく習慣付けることが出来なかったエンジニア
- 子育てが忙しくて、プライベートで勉強する時間なんてないよーーと嘆いているパパママエンジニア
- これからエンジニアとして働く上で、業務外の時間を効率よく使う方法を知りたい学生

# この記事を書いてる人

- 中堅独立系SIerとして10年働き、今後のキャリアパスを本気で考えているエンジニア
- 小学生低学年と、保育園に通う２人男児を育てるパパエンジニア
- 基本在宅勤務で、月一程度、事務処理のため自社に出社している
- 普段はリモートワークで自宅から顧客のシステム開発を行っている
- アウトプットするぞ！と一念発起し、Qiitaをはじめ、色々なアウトプット活動を始めて2週間目

# 何が持続可能じゃなかったのか

前回のQiita投稿を行った後の私はまさに、「燃え尽きたぜ…真っ白にな…」 そんな心境でした。
（ネタがわからない若い世代の方はすみません、、ChatGPTに聞いてみてください）

なぜそんなことになってしまったのか、三連休中の私はこんな状態でした。

- アウトプットするんだ！という気持ちが先行して、頭の中がそればっかりになってしまっていた
    - ランナーズハイで朝方まで作業していた
    - 睡眠不足でパフォーマンス低下
    - 子どもと遊んでいても集中できない
- 単純に時間が掛かる
    - 書き方に不慣れ
    - あれもこれもと情報が散らかってしまって整理に時間が掛かる
- アウトプットすることが目的となってしまっていた

そんなこんなで、なんとか連休明けの火曜には初投稿に至ったわけなんですが、その時点で確信してました。
「あ、これ続かないやつだ・・」


# 持続可能なアウトプット習慣にしていくポイント

せっかくアウトプットを始めても、それによって私や家族が不幸せになったり、インプットする時間が取れなくなっては本末転倒です。
そこで、初投稿時の反省を活かして、持続可能なアウトプット習慣を続けていくポイントとして、大きく2つ上げてみました。

- タイムマネジメント
- 再現性

それぞれ詳しく説明していきます。

## タイムマネジメント

これから頭の中がアウトプット欲に支配されないため、適切なタイムマネジメントに至るまでの、踏むべき必要なプロセスと考え方を説明します。

### 自分に与えられている時間の把握

最初に、平日、休日、飲み会のある平日など、よくある生活パターンを図に起こします。

```mermaid
gantt
    title 平日（リモートワーク、残業無し）
    dateFormat HH:mm
    axisFormat %H
    
    section 1日の活動
    
    朝食準備、朝食、洗濯、保育園の送り       :07:00, 2h
    仕事           :09:00, 4h
    昼休憩         :13:00, 1h
    仕事           :14:00, 4h
    夕食準備、夕飯、事後処理       :18:00, 2h
    お風呂、就寝準備       :20:00, 1h
    子どもの寝かしつけとともに就寝  :21:00, 3h
    睡眠           :00:00, 4h
    自由時間      :04:00, 3h

    %% 表示設定
    todayMarker off

    %% 時間軸の調整
    tickInterval 1hour
```

内訳はこんな感じ。

```mermaid
pie showData
    title 平日（リモートワーク、残業無し）
    "睡眠" : 7
    "仕事" : 8
    "家族生活" : 6
    "自由時間" : 3
```

他のパターンもどんどん作っていきます。

```mermaid
gantt
    title 平日（残業 or オンラインの勉強会 or 飲み会など）
    dateFormat HH:mm
    axisFormat %H
    
    section 1日の活動

    朝食準備、朝食、洗濯、保育園の送り       :07:00, 2h
    仕事           :09:00, 4h
    昼休憩         :13:00, 1h
    仕事           :14:00, 4h
    残業 or 勉強会 or 飲み会       :18:00, 5h
    お風呂、就寝準備  : 23:00, 1h
    睡眠           :00:00, 7h

    %% 表示設定
    todayMarker off

    %% 時間軸の調整
    tickInterval 1hour
```

```mermaid
gantt
    title 平日（出勤）
    dateFormat HH:mm
    axisFormat %H
    
    section 1日の活動

    睡眠          :00:00, 4h
    自由時間      :04:00, 2h
    朝食準備、朝食、洗濯、保育園の送り       :06:00, 2h
    通勤           :08:00, 1h
    仕事           :09:00, 4h
    昼休憩         :13:00, 1h
    仕事           :14:00, 4h
    帰宅           :18:00, 1h
    夕飯、事後処理       :19:00, 2h
    お風呂、就寝準備       :21:00, 1h
    子どもの寝かしつけとともに就寝  :22:00, 2h
    

    %% 表示設定
    todayMarker off

    %% 時間軸の調整
    tickInterval 1hour
```

休日ですが、片方はおでかけをして、片方は家でゆっくりすることが多いので、それぞれ書いていきます。

```mermaid
gantt
    title 休日（お出かけ）
    dateFormat HH:mm
    axisFormat %H
    
    section 1日の活動

    朝食準備、朝食、洗濯       :07:00, 2h
    お出かけ           :09:00, 9h
    夕食準備、夕飯、事後処理       :18:00, 2h
    お風呂、就寝準備       :20:00, 1h
    子どもの寝かしつけとともに就寝  :21:00, 3h
    睡眠           :00:00, 4h
    自由時間      :04:00, 3h

    %% 表示設定
    todayMarker off

    %% 時間軸の調整
    tickInterval 1hour
```

```mermaid
gantt
    title 休日（家でゆっくり）
    dateFormat HH:mm
    axisFormat %H
    
    section 1日の活動

    朝食準備、朝食、洗濯       :07:00, 2h
    子どもと遊ぶ           :09:00, 2h
    自由時間             :11:00, 1h
    お昼                :12:00, 1h
    子どもと遊ぶ           :13:00, 2h
    自由時間             :15:00, 1h
    子どもと遊ぶ           :16:00, 2h
    夕食準備、夕飯、事後処理       :18:00, 2h
    お風呂、就寝準備       :20:00, 1h
    子どもの寝かしつけとともに就寝  :21:00, 3h
    睡眠           :00:00, 4h
    自由時間      :04:00, 3h

    %% 表示設定
    todayMarker off

    %% 時間軸の調整
    tickInterval 1hour
```

これで、土日で合計8hほど捻出できそうだということがわかりました。

※それぞれのパイチャートに関しては長くなるので割愛します。


### 実現可能で、無理のない目標設定

これ以外にも、生活していると想定外の出来事がたくさん起こります。
その都度、あーー大事な自由時間が！とドキマギするのは不毛なので、予め3時間のところを、せいぜい2時間程度と仮定します。

また、週2は残業や飲み会で潰れることも覚悟しておきましょう。出勤は月一程度なので、イレギュラーとしてバッファで補う算段とします。

土日も8hのうち趣味に割く時間もあるでしょうから、アウトプットに掛けられる時間は半分の4h程度になると思われます。

```bash
平日：2h x 3日 = 6h
休日：4h
```

これで私には、**1週間で平均10h**ほどの自由時間がありそうだということがわかりました。

例えば最初のQiita記事であれば、12h以上掛かっているような気がするので、それを2日で書き切ったのは相当無理なペースであったことが容易に想像できます。

また現在、社内勉強会向けにプレゼン資料を作っているのですが、1スライド1h程度と仮定して、20スライド作ろうとすると、2週間程度は掛かるはずなので、3週間前にはスタートしないとまずいだろうという予測を立てることもできます。

```bash
1h x 20スライド = 20h / 10h = 2週間
```

### 相乗効果

- スケジュールの可視化によって、その時やるべきタスクに集中できる
    - あれもやらなきゃ、これもやらなきゃと思って何もできないを回避できる
    - 子どもと遊ぶ時間に集中することができる
    - 限られた自由時間なのに、SNSやショート動画を見ていることが勿体ないと感じる
- インプットとアウトプットを同時に行う
    - インプットしながら、すぐにアウトプットすることで時短を狙う

## 再現性

ここからは再現性について考えていきます。

生産物やナレッジ、アウトプット体験を再現性のあるものにして、アウトプット自体に掛ける時間の短縮を目指します。

### アウトプットする生産物の定義

- Qiitaの記事
- ブログ
    - イベント参加レポート
    - 書籍のメモ
    - などなど
- 社内の勉強会、社外イベント登壇に向けたプレゼンテーション資料

### 生産物から見える再現性のあるフォーマットとは

それはズバリ<font color="Red">**Markdown**</font>です。

なぜそう思うのか、簡単にMarkdownのメリット/デメリットを述べます。

#### Markdownのメリット

- 特定のプラットフォームに依存しない
    - QiitaはMarkdownで記事を書くプラットフォーム
    - 各種ブログサイトでは色々な記法を提供してますが、基本Markdownもサポート
    - プレゼンテーション資料もMarkdownで書くことが出来る
        - ここ後ほど詳しく説明します
- 実態はシンプルなテキストゆえに、コンピュータで扱いやすい
    - 生成AIに学習させやすい
    - 具体的な例だと、RAGで社内文書を取り扱いたいケース
        - ドキュメントやパワーポイントは、高機能ゆえにコンピュータからすると余計な情報が多い
        - 社内文書をMarkdownに寄せていくことで学習精度の向上に期待できる
- 業務でも活用できる
    - README.mdなど

#### Markdownのデメリット

- 最初の学習コストが高め
- シンプルゆえに、表現できる幅が少ない
    - 色々なMarkdownを扱うサービスの登場で解消されていると言って良い
    - HTMLやCSSと組み合わせることで、逆に表現の幅が広いとも言える

### Markdownでプレゼンテーションを作る

私の場合は、Slidevというサービスを使っています。

https://ja.sli.dev/

※長くなるため、MacでSlidevをセットアップした作業ログは別の記事として、いずれ公開したいと思います。

追記） 書きました！

https://qiita.com/kazu_kichi_67/items/214aff1642cba2334efa

他にも調べてみると、Marpやreveal.jsなど、色々なツール・サービスがあります。
私はそれぞれ使って比較したわけではないので、一番におすすめするといった趣旨ではなく、Markdownでプレゼンテーション資料を扱う一例として見て頂ければと思います。

#### 個人的に気に入っているところ

- エンジニア向けのサービスゆえに、コード表現の仕方がスマート
- HTMLやCSS、コンポーネントが使えるので、Webサイト上で表現できることは基本なんでも出来る
- mermaid, umlでダイアグラムが書ける

タイムマネジメントの中で示した図も、実はmermaidで書かれています。
またmermaidに関しては、最近ClaudeがリリースしたArtifactsという機能を使うと相性抜群です。

- 生成AIを使って対話形式でダイアグラムを作っていくことができる

簡単なイメージを貼っておきますが、Artifactsに関しては他にも面白い使い方がたくさんあって、いつか記事にしたいと思っています。
1日で使える量に制限がありますが、無料でも遊べますので、この新しい開発体験をぜひ体感してみてください。

https://claude.ai/

![artifacts.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/615784/59e2b159-84ee-f765-a81b-d7f06a98c26f.gif)


### さらに再現性を高めるため、テンプレートを作成する

Slidevは非常に高機能なサービスです。
が、高機能ゆえにあれもこれも使いたくなって、肝心の発表内容の方が疎かになるリスクがあります。

そのため、リストやテーブル、コード、ダイアグラムのようなよく使うであろう機能だけをまとめたテンプレートを用意し、それを使ってプレゼンテーション作成の時短を図ります。

作成したリポジトリが[こちら](https://github.com/kazu-kichi-67/slidev-template)

https://github.com/kazu-kichi-67/slidev-template

詳しくはセットアップ記事の方で触れますが、Github Actionsから自動でPagesへ更新するようになってます。
完成したプレゼンテーションサンプルが[こちら](https://kazu-kichi-67.github.io/slidev-template/)

https://kazu-kichi-67.github.io/slidev-template/

Githubにログインしていれば、以下のようにUse this templateというボタンが表示されていると思いますので、そこから新規リポジトリを作成して、それぞれプレゼンテーションの中身を作っていくようなフローを考えています。

![スクリーンショット 2024-07-22 5.07.46.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/615784/fe3b313b-e1aa-23c6-0785-082f8f1074a2.png)

(追記)
※テンプレートからリポジトリを作成した場合、新規リポジトリの方でもPagesの設定を有効にしないと、自動デプロイがちゃんと動きませんでした。

最後に、お気に入りのスライドを撮っておいたので、2枚貼っておきます。

![code.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/615784/539c61d8-8cb6-fd8f-14ed-ed3b373cb906.gif)
![tips.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/615784/6b8b7569-ab30-d000-656c-5ae74da5e220.gif)

# 今後やっていきたい取り組み

- Github copilotの活用
    - 業務で使っていて、コード（主にテスト）を書く上で欠かせない存在になっている
    - コード生成に特化してチューニングされていると思われるので、Markdownで文章生成するのにどの程度活用できるのかは未知数
    - 無料トライアルが残っているので、今後検証してみます
- Cursor
    - 最近何かと話題のAIエディタ
    - 対話しながらプレゼンテーション資料を作ることも出来る模様
    - こちらも触ってみたら記事を書こうと思います
- Qiita cli
    - 公式から提供されている安心感
    - Github上で記事管理が出来る
        - アウトプット資産のバックアップになる
    - エディタを選ばなくなるので、生成AIの活用も期待できる
    - 記事テンプレートを用意して再現性を高めるのも良さそう
    - 画像を貼り付ける手間がやや気になる

# おわりに

最初にアウトプットを始めると、やるぞー！という気持ちが大きすぎて、つい頑張り過ぎてしまうことあると思います。

エンジニア人生は長いです。
短距離走でガッとハートも燃やして頑張ることも必要ですが、ことアウトプットに関しては、これから長い付き合いになっていくと思いますので、それぞれのペースに合わせて持続可能なやり方で進めていけると良いですね。

熱くなり過ぎてるなと感じた際は、一度初心に戻って、<font color="Red">**自分はなんのためにアウトプットを始めたのか？**</font>を思い出してみましょう。

では、良いアウトプットライフを！