tawara's blog

雑記。個人の見解です。

ラバーダック効果を感じた

ja.wikipedia.org

今日ラバーダック効果を身をもって感じた。五重くらいネストしたhashから必要なvalueを取ってくる処理を実装していた。足りないRuby力を稼働させて処理に望んだのは先週の金曜日だった。その日は23時くらいまで、あーだこーだと考えていたが解決の糸口は見つからなかった。Ruby力が足りなく、injectメソッドなんて知らなかったので、土日に勉強した。タスクのことが頭から離れず、土日は気が休まなった。めちゃくちゃストレスだった。月・火と残業してもやっぱり終わらず、タスクの期限がせまってくるし、別のタスクに思いがけない角度から圧力がかかり、てんてこ舞いだった。結局のところ自分の力だけじゃ無理だとあきらめて上長にペアプロをお願いした。正直タスクを別の方にアサインしたほうがいいとさえ思った。

で、上長に画面共有をしながら現状の実装を説明して、hashの構造をひとつずつ声を出しながらひも解き、ループをその場で書きなおしたら、わりとすんなり処理を書くことができた。「僕は何もしてないですね」と上長は苦笑してくれた。「壁打ち程度でもぜんぜんやりますよ」と。これがラバーダック効果なのかと腹落ちした。しゃべりながらコードをちょっとずつ書いただけなのに。

言葉で考えるタイプだが、しゃべるというより書いて問題を整理する頻度の方が高かったので、新鮮な体験だった。おそらくそういう体験をしてきたはずだが、忘れてしまっていたのだろうが。とにかくしゃべりながらコードを書いたらできたのだ。ひとりごとを言いながら実装するエンジニアをそばで見ていて、変わってるなー、と思ったことも少なくないが、あれは合理的な開発姿勢なのかもしれないと考えを改めた。頭のなかのもやもやを取り出すのに、モノによっては手より口のほうが適しているケースがあるのだ。

「目は嘘をつくけど、手は嘘をつかない。だから英作文は指差し確認しろ」みたいなことをベテラン予備校講師に言われたことを思い出す。この言葉はお気に入りでコインランドリーで洋服を取り出すときにしっかり指差し確認を実践している。おかげで靴下がなくなることは防げている。世界と精神のインターフェースとしての体を大切にしている気がしているので、この格言?は好きなのだ。これにならってこういえる。「頭のもやもやは手だけで言葉にできない、口も使え。だからコードはしゃべりながら書け」みたいに。あまり上手く真似てないが、その姿勢は共通しているはずだ。

(了)