[個人開発]分割統治法ノート術と個人開発サービスの紹介

# 概要
大量な情報が関連し合うような複雑な情報を整理するときに使える分割統治法ノート術(造語)を紹介します。また、分割統治法ノート術を効率よく行うためのサービスを開発中で簡単な[デモ](https://whiteboard-app-theta.vercel.app/top)を公開しているのでぜひ試してみてください。うんちくはさておきどんなものか見たい方はデモを触るか[デモの操作方法](#デモの操作方法)を見てください。

# 想定読者
- 複雑な情報整理が必要だが、情報過多で困ったことがある人
- 複雑な情報整理、洗練されたアイデア出しを効率的に、確実に行いたい人
- 目標を達成するためにノート術を活用したい人

# 分割統治法とは？
大きな問題を小さな問題に分割し、それぞれ解いていくことで元の大きな問題を解決する方法です。ソートアルゴリズムなど、ソフトウェア工学でこの考え方がよく使われています。
また、デカルトの「困難は分割せよ」は正しく論理を展開する方法として分割統治法の考え方を取り入れています。確実に正しい情報から導き出された結論は正しいと言う考えの演繹法と、どんなに難しい問題も小さく分けてそれらを解いていけば解決できる分割統治法を使えば確実に正しい結論を導けるというものです。
下図は分割統治法の一例です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3817363/05a7b189-0455-a012-8c30-0112c7e8abb6.png)

# 分割統治法ノート術とは？
文字通り分割統治法で情報を整理するためのノート術で、私が勝手に作った造語です。情報を体系的に、論理的に整理でき、さらにタスク管理を情報整理と同じフローで行えることが特徴です。
少しずつ確実に、複雑な情報を整理できることがこのノート術の最大のメリットになります。

# なぜ分割統治法ノート術か？
複雑な情報をそのまま思考すると情報過多になり、思考力が悪化してしまいます。また、確実に正しい結論を出すには小さな本質や事実を集めて結論へ導いていく必要があります。そのため、情報整理をする過程で小さく、さらに小さく問題を分解していくノート術が必要になります。

問題を分解すると大量の小問題が生まれます。すると今度はどこから取り組めばよいかがわからなくなる、どこまで情報整理を完了しているかがわからなくなるといった問題が発生します。各問題、情報には結論を出すために必要な前提となる情報があるのでその前提となる情報から正しい順番で思考していく必要があります。また、どこまでの情報が整理済でどこまでが未着手か見分けられなければ結局、情報過多になってしまいます。そこで情報整理しながらタスク管理を行えるノート術が必要になります。

整理した情報が常に正しいとは限りません。状況が変わったり、過去の自分の考えが間違っているときもあります。その場合、その情報を前提として導いた結論はすべて間違ったものになってしまいます。普通のノート術であれば前提となった情報は修正できるかもしれませんが、その関連情報まで追うことは難しく修正せずに放置されることがほとんどです。この間違った情報をそのまま残しておくと、正しい情報と誤った情報の見分けがつかなくなり、複雑な情報を整理することが難しくなります。この問題を解決するには前提となる情報が変わったらそれに依存している情報も修正できるノート術が必要になります。 

# 分割統治法ノート術を行うメリット
- 小さく情報を分けることで一度に考えなければならない情報量を減らすことができる
- 本質や事実をもとに確実に結論を出したり、洗練されたアイデアを出せる
- 情報が小さく分けられるので情報の再利用性が高くなる
- 階層、ハッシュタグによる情報整理ではなくリンクベースの情報整理なのでshiftboxと同様なメリットがある
    - 体系的な情報整理ができる
    - 参照されないメモで情報が埋もれない
    - 情報同士を結び付けてアイデアを出しやすい
    など
- 目的から情報を整理するトップダウンな情報整理も、情報同士を組み合わせて新しい結論を導くボトムアップな情報整理もやりやすい
- ある情報をまとめるとき、それに必要なinput情報が関連付けられているので確認しながらまとめられる
- 問題の分割、メモを取る、タスクを完了するまでを１連の流れで行えるのでメモとタスク管理の間でコンテキストスイッチが発生しない
- タスク管理ができるので長い期間をかけて少しずつ情報整理ができる
- 情報整理の完了、未完了を視覚的に見分けられるので残りの検討事項が他の情報に埋もれてわからなくなることがない
- 問題を分解した後は簡単な問題やすでに解くことができる小さな問題から順番に情報を埋めていける
- ある問題に結論を出すための前提となる情報に変更があったらその前提情報に依存している情報をすべて可視化し、影響を把握できるので常に情報の整合性を保つことができる


# 分割統治法ノート術のやり方
このノート術を行うにはObsidian、HeptabaseなどのShiftbox系のノートサービスを使う必要があります。ただし、現状のノートサービスでこのノート術(思想)を実践するのはかなり面倒です。。一応、以下の手順を踏めれば先述したメリットの一部は受けれるはずです。
1. 解決したい問題、整理したい情報、目標などをタイトルとしたページを作る
2. ページTitleに対する結論を出すために必要な子問題に分解し、その子問題を表すタイトルで新しいページを作り、元のページから新しく作ったページへのリンクを作る
3. さらにその子問題が分解できる場合は2.を繰り返す
4. 最も小さく分割した子問題から順番に情報を埋めていく。結論を出した情報はそれがわかるように〇などの記をタイトルにつける。このときリンクしている子問題がすべて〇になっていなければそれらに依存する親問題は〇にしない
5. 既に結論を出した〇印がついているページを編集する場合はそのページの〇印を消し、さらにその情報を前提として結論を出したリンク元の親問題をたどり、すべての〇印を消す
6. すべてのページに〇印をつけられたら元々解決したかった問題、目標、整理したい情報に結論が出る

お勧めはHeptabaseです。ノートというよりもホワイトボードなのですが、情報を体系的に整理する場合、視覚的な操作ができることは必須だと考えています。 ページからリンクを作る場合、リンク元へのページ遷移が発生するなどコンテキストスイッチが発生しますが、ホワイトボードならどんなリンク操作も同じ画面上で完結します。また、イメージ記憶のうち最も暗記しやすいといわれる場所記憶によって大量のメモの中から目的の情報を見つけることが簡単になります。たとえば、遠い昔の飲み会を思い出してみてください。どこにだれが座っていたかを覚えようともしていないのに鮮明に覚えていませんか？これが場所記憶の力です。

# 分割統治法ノート術を使った個人開発サービスの紹介 
分割統治法ノート術はObsidianやHeptabaseといったshiftbox系のノートサービスで実現可能です。しかし、ノートの運用ルールを自分で守らなければいけない上に、このノート術を実践するための不要な手間が増えます。そこで分割統治法ノート術を効率よく行えるサービスを開発しようと思っています。

まずは最小限の機能を実装したデモを作成したので、ぜひ[こちら](https://whiteboard-app-theta.vercel.app/top)から試してみて下さい。
ノート術と散々言っておいて作ったものはホワイトボードアプリなのですが、PC、スマホの両方から操作しやすいようにノートとホワイトボードの両方から編集できることを目指しており、まずはホワイトボードを作りました。

ご意見、ご感想をいただけるととても励みになります。
[こちら](https://forms.gle/RZrEWGTyXwBpWutT7)からアンケートを収集していますのでよろしくお願いいたしますm(_ _ )m

# デモの操作方法
※デモなのでデータの保存は行われません。
※デモ用の開発なのでバグが残っているかもしれません。
### 問題の分割
ホワイトボード上をダブルクリックでノードを追加します。ノードにあるハンドルをドラッグアンドドロップすることで問題、情報を分割します。子問題ではないが依存する関係を表現したい場合は参照エッジ(オレンジの矢印)で結びます。以下の例では問題を分割した後、「費用」は「どこに行くか」という情報に依存しているので参照エッジで結んでいます。
<blockquote class="twitter-tweet" data-media-max-width="560"><p lang="ja" dir="ltr">個人開発サービスのデモ動画_問題の分割 <a href="https://t.co/tZoykkzzU2">pic.twitter.com/tZoykkzzU2</a></p>&mdash; YUKEN (@s5qnY18XGq23601) <a href="https://twitter.com/s5qnY18XGq23601/status/1807450449571922180?ref_src=twsrc%5Etfw">June 30, 2024</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

### メモを書きながらタスク管理をする
問題を分割し終わったら、最も依存度の高い問題（矢印のをたどった先端ノード）からメモを書いていきます。メモを書くにはノードをダブルクリックして入力フォームを表示します。メモが完了したらチェックボックスに✔を入れます。親ノードは依存先のノード（黒またはオレンジの矢印で結んだ情報）がすべて✔になっていないと自身を✔にできないようになっています。
<blockquote class="twitter-tweet" data-media-max-width="560"><p lang="ja" dir="ltr">個人開発サービスのでも動画2_メモを書きながらタスク管理 <a href="https://t.co/v2pR4aF9VB">pic.twitter.com/v2pR4aF9VB</a></p>&mdash; YUKEN (@s5qnY18XGq23601) <a href="https://twitter.com/s5qnY18XGq23601/status/1807450854519357820?ref_src=twsrc%5Etfw">June 30, 2024</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>

### 依存元を含めた情報の修正
既にメモを書き終えて✔を入れたノードを更新すると、更新したノードとそれに依存しているノードが△マークで表示されます。これはその更新の影響範囲を表しています。△マークになったノードをすべて確認、修正したら情報修正は完了です。これで常に情報の整合性は保たれます。
以下の例では行き先が追加された影響で費用を修正しています。
<blockquote class="twitter-tweet" data-media-max-width="560"><p lang="ja" dir="ltr">個人開発サービスのでも動画3_依存元の情報も含めてメモを更新し整合性を保つ <a href="https://t.co/q8Ajj0POkn">pic.twitter.com/q8Ajj0POkn</a></p>&mdash; YUKEN (@s5qnY18XGq23601) <a href="https://twitter.com/s5qnY18XGq23601/status/1807451252739232197?ref_src=twsrc%5Etfw">June 30, 2024</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>