実装の前に、あえて”紙”で考えるようにしている話
Notionやdraw.ioなどの便利な設計ツールがたくさんありますが、
いまだに実装の前に「紙」に手書きで考えるようにしています。
自分は古臭い人間なので、だいたいA4のコピー用紙か方眼紙です。
とにかく、**最初は手を動かして紙に書く。**なんとなくなのですが、これが一番落ち着くようです。
なぜ紙にこだわるのか
いちばんの理由は、「全体の流れをざっくり把握できる」から。
自分は全体を見ないと理解できない人間で、デジタルツールだと画面の範囲内でしか見えず、俯瞰しづらい。
でも紙に描くと、全体を俯瞰できるので処理全体のつながりがぱっと見える。
「あ、この通信のデータの受け渡しおかしい」とか「この処理はいらないかな。」といった
気づきが早い段階で出やすいんです。
もうひとつは、自分の考えたイメージは信じないこと。
私は頭の中だけで描いても、いざコードにすると「あれ、これ繋がってないな」と気づくことが多い。
紙に描いてみると、その“つながっていない感”が目に見える。
結果として、修正や追加もその場でどんどん書き足せる。
“継ぎ足し”がいつもあるので、デジタルツールだと結局手直しに時間がかかってしまうことが多いのです。
結局のところ”紙”が一番早い
「この機能、いつまでにできそうですか?」と依頼されて、
「回答は“今日中”とか“明日”までにほしい」 なんてことがよくあります。
じっくりドキュメントを書く時間なんてない。でも、すぐに回答しないといけない。
そんなとき、紙にサッと書いて整理すると短時間でも構成やリスクを把握できる。
メソッドやプロトコル、エラー処理の流れも、紙の上なら感覚的に線でつなげられる。
“とりあえず考えを出す”には、やっぱり紙が一番早いな、と思う。
紙に書くことで見える「抜け」と「流れ」
紙に描くことで、よくわかるのが抜けや漏れです。
一度流れを書き出してみると、「ここの戻り値ってなんだろ?」「この処理いる?」など、
頭の中でスルーしていた部分が浮き彫りになる。
その上で、どんどん書き直す。
きれいに描くより、修正や追記を前提にする。
そうやって手を動かすうちに、「これかな。」という確信が少しずつ固まっていきます。
考えを整理しながら手書きするのはいつもシーケンス図
紙に書くときは、シーケンス図一択です。
登場人物(システムやAPIやらDBやら)を書き出して、線でつなぎながら処理の流れを追っていく。
それだけで、「どのタイミングで何が動くのか」「どこに依存があるのか」が自然と見えてくる。
文字だけで考えていたときには見えなかった
「ここ、間に1ステップ必要じゃないか?」
「この戻り値、どの処理が受け取る?」
といった細かい部分も、線を引いていくうちに浮かび上がってくる。
デジタルツールを使えば、きれいに書けるし、共有もしやすい。
でも、それを一度紙の上に出しておくことで、実装中の迷いが減ります。
考える段階では“整えること”より“見つけること” のほうが大事だと思うので、
紙で気になったところに線を引いたり、矢印を消したり、書き直したり。
そんな“雑さ”も考える段階ではちょうどいいのかもしれません。
Discussion