soft-skills-engineering

ブロックライティング

ブロックライティングとは、様々なブロック(テキストの塊)を積み上げていく手法である。

以降では、ブロックライティングを実践するために必要な基礎知識を一気に紹介する。すべて読み終えた後、あなたはブロックライティングを始められるはずだ。

ブロックの例

たとえば Markdown で書くと次のように 1-見出し 1-ブロックで表現できる。

# ブロック1
...

# ブロック2
...

# ブロック3
...

また Cosense では空行で区切った塊をブロックと捉えることができる。

ブロック1
 ここはブロック1
  ここはブロック1
 ここはブロック1
 ここはブロック1

ブロック2

 ブロック3
 ここはブロック3
ここはブロック3

ブロック4
 ここはブロック4
ここはブロック4
 ここはブロック4
 ここはブロック4
ここはブロック4

私は使わないが、Miro や OneNote のような二次元的なキャンバスにブロックを配置することもできる。

ブロックは一ページ・一ファイルに収める

いずれにせよブロックは一単位の中に収めるべきである。たとえば 一ページ内、一ファイル内で表現する。仮にブロックが 50 個あって、1ブロック1000文字あるとしたら、全部で 5 万文字のテキストとなるが、それでも一単位で収めるべきだ。その方がブロックを眺めやすい。ページやファイルの遷移は、たとえ 0.1 秒であってもノイズになる。

ブロックライティングではブロックを眺めることにより、次の発想を得る。具体的には足りない観点を補うブロックをつくったり、そろそろ見えてきそうなのでまとめのブロックをつくったり、といった意思決定を行うのである。ノイズは少しでも除去しておかなくてはならない。ブロック間の行き来をシームレスにすると言っても良い。シームレスであればあるほど良い。

このシームレスの度合いは、書くツール側にも左右されることに注意したい。それこそローカルのテキストエディタ、ローカルの IDE、SaaS のノートアプリやウィキ、SaaS の IDE で言えば、ローカルの方がシームレスだし、テキストエディタの方がシームレスだ。昔ながらに Vim や Emacs、また Windows だと私のように秀丸エディタを使うユーザーも少なくないが、この人達はシームレスの重要性を理解しているのである。

ブロックライティングでは、特にブロック間の行き来を素早くやりたい。Markdown で言えば 見出し間をショートカットキー一発で移動 できたら特に便利である。このレベルの操作感は巷では認識されておらず、実装したいならエディタ側の拡張機能や詳細設定を駆使する必要がある。

サイクルを回す

次に、ブロックライティングではクリエイティブ・シンキングの「発散 → 収束 → 蒸留」プロセスを使う。具体的には発散的なブロックをつくりつつ、それらを眺めながら収束的なブロックをつくっていく、この二種類のブロックをつくって、壊して、またつくってと行き来していき、やがて「見えてきそうになったら」最後、蒸留的なブロック(サマリーブロック)をつくって一段落をつける。この一区切りを一回回すことを サイクル と呼ぶ。サイクルは n 周回してもいいが、n+1 周目の開始時は n 周目のサマリーブロックから始める。

つまり、ブロックライティングではサマリーをつくりながら進んでいくことになる。結論やアクションが定まり、これ以上良いと判断できたらそこで終わればいい。1 周で済むこともあれば、10 周以上することもある。状況次第でベストエフォートすればいい。このようなあり方を私は サマリー駆動 と呼んでいる。

なお、提出する際は、最終的なサマリーから別途文書をつくった方が良い。ブロックライティングで書いたテキストをそのまま提出しても通用しないだろう。しかし、内部的なメンバーの間であれば通じることもあるし、むしろ通じるようにするべきだ。ブロックの軌跡はソースコードのようなものであり、意思決定とその文脈がすべて詰まっている。ブロックは共通言語としても機能する のだ。特にブロック各々は特定の役割を持つ(後述)ため、読解もしやすい。もちろんソースコードに綺麗さがあるように、ブロックにも綺麗さがあるが、未来の自分が読んで続きを積めるものであるならば他者にも通じるだろう。

ブロックの種類

最後にブロックの種類を述べる。

まずは以下 3 つの種類があることを押さえる。

大雑把な目安をいうと、発散的なブロックを 10 個、収束的なブロックを 1~3 個、蒸留的なブロックを 1 個つくるくらいの比率になるだろう。とにかくまずは発散的なブロックをあれこれ書いてみて情報を並べ、それを眺めながら軽い整理や構造化を行う。もちろん脳内ではなく収束的なブロックとして反映する。ある程度繰り返していると、全体像が見えてきたり具体的なアクションが見えてきたりするので、蒸留的なブロックとして表現する。あるいは、見えてこない場合でも、仮説でいいので仮置きする。これがサイクル一周分である。

より細かいブロックの種類は各自で考えて良いが、私の豊富な経験に裏打ちされた便利なものを紹介しておく。デザインパターンならぬ ブロックパターン とでも呼んでおこう。これを鵜呑みにする必要はないが、自分でつくれないなら、まずは従ってみることをおすすめする。

ブロックパターン

ブロックパターンでは、ブロックを「レター」と「タイトル」と「内容」から構成する。たとえば検討ブロックならレターが k、タイトルは検討したいテーマ、内容にはそのテーマに関して検討したことを書き殴る。

ブロックの並べ方については「上から下」と「下から上」がある。通常は「上から下」になるだろうが、これは最新から始める際にいちいち最下層までスクロールする手間が生じる。この手間をなくしたいなら「下から上」を心がけると良いが、この考え方は慣れるまで馴染みづらいかもしれない。

また並べ方の対象は「サイクル」と「ブロック」がある。サイクルから見ていこう。下記は === で区切っているが、3 つのサイクルを並べている。区切りの横に数字がついており、ここから「下から上」に並べていることがわかる。つまり 3 周目のサイクルが上に書かれている。

# === 3

# ブロック

# ブロック

# ブロック

# === 2

# ブロック

# ブロック

# === 1

# ブロック

# ブロック

次にブロックを見ていこう。下記はブロックが 3 つ並んでいる。上から下なのか、それとも下から上なのかは、これだけではわからないし、通常わからなくても良い。

# === 3

# ブロック

# ブロック

# ブロック

すでに述べたとおり、ブロックライティングではブロックを眺めながら、最終的にサマリーを導くものである。ブロックなど適当に並べてしまえばいい。もちろん、神経質は律儀に順序的に並べた方がやりやすいかもしれない。

構成要素と並べ方を押さえたところで、本題に入ろう。

発散的なブロック として以下がある。

# k (ここにテーマ)
検討ブロック。k は Kento の略。
あるテーマを掲げて、それについて考えたことを書く。
発散的なのでまとまりがなくてもいい。

# b
ブレストブロック。b は Brain-storming の略。
テーマすら定めずに、漠然と思いついたことを何でも書く。

# r
参照ブロック。r は Reference の略。
書籍名や URL やファイルパスなど参考情報のパスを並べる。
パスだけ並べることを推奨するが、かんたんに補足を書いてもいい。
あくまでリンク集なので補足が太らないようにする。太ると後で使いづらくなる。

基本的にはブレストブロックで頭の中を出し、適宜検討ブロックで特定の話題を深堀りしつつ、参照ブロックで外部の情報やその他押さえるべき文脈を捉える。

そうしていくうちに具体的な部分が見えてくるから、それを収束的なブロックでまとめていく。収束的なブロック として以下がある。

# a (テーマは書いても書かなくてもいい)
アクションブロック。a は Action の略。
具体的な「やること」を箇条書きで書く。
テーマは書かなくていいが、書いてもいい

# d
方向性ブロック。d は Direction の略。
戦略や方針など、方向性に関して見えてきたことを書く。
進むべき方向性と進むべきではない方向性を両方扱えると良い

# c
概念ブロック。c は Concept の略。
SSE における概念とは別で、ここでは「用語として定めるべき何か」を指す。
専門用語や内部用語としてすでにあるならそれを書く。
ない場合は、適当に名前をつけて言語化しておく。造語してもよい。
いずれにせよ名前と定義は必ず書く。

# cx
文脈ブロック。cx は Context の略。
このライティングにおいて押さえるべき文脈を端的に書く。
背景、前提、現状、その他無視できない制約など。

つまりブレストや検討をしていくことで、次第に具体的なアクションや方向性や概念や文脈が見えてくるわけである。それをちゃんとブロックとして書いて捉える。頭の中にあるだけでは理解したとは言えず、実際に言語化して書くことで初めて実体が伴うのだ。ブロックライティングは、ブロックを書くことで 思考を実装している と言える。頭の中で考えるだけでは机上の空論、または評論家に等しい。実際に書いて実装しなければならない。

こうして発散と収束を行き来していくと、次第に結論が見えてくる。あるいはどこかで打ち切らねばならない。その結果を蒸留的なブロックとして書く。蒸留的なブロック として以下がある。

# s
サマリーブロック。s は Summary の略。
結論を端的に書く。
全体像のエグゼクティブサマリ、今回下した(あるいは下したい)意思決定内容、直近行うタスクリストなど。

# ====
区切り線。
サイクルを区切るためのものである。
見やすく、打ちやすく、統一するのなら === でも --- でも何でも良い。