えぬ億までの道

アラサープログラマが一発当ててn億を得るまでの記録

プログラミングはやっぱり料理に似ている

プログラミングが料理に例えられる話がある。

マイクロソフトのアーキテクト中島聡氏のブログにも、プログラミングを料理に例えた過去記事があり、多くのプログラマーの共感を得ていた。

Life is beautiful: ソフトウェアの仕様書は料理のレシピに似ている

 ちなみに、この話を書いていて思ったのだが、プログラムの仕様書は料理のレシピに似ている。ソフトウェアのアーキテクトが自らプログラムを書いたり、下っ端のエンジニアの書いたコードをレビューするのは、レストランのシェフが自ら料理をしたり、下っ端の料理人の作ったスープの味見をするとの同じである。もちろん、レストランに行く側の立場になってみれば、そんなレストランで食事をしたいのは当然である。シェフがレシピだけ書いてキッチンにも立たないレストランには行きたくないし、ましてや自分で料理したこともないシェフが書いたレシピを元に作った料理がおいしいわけがない。 

 

プログラミングと料理が似ている、と考えると他にも多くの共通点を見つける。

素人でも意見を言えるという空気

「もうちょっと塩足した方が良いんじゃない?」

「ちょっとこのボタン分かりにくくない?」

なかなかこの素人でも意見を言えるという空気がイラッとするところでもあり、実際あまり馬鹿にも出来ないフィードバックだったりするのである。

現場での一個一個の判断が全体のクオリティを大きく左右する

コーディングの一行一行が経営判断だ、という話がある位プログラミングの現場での判断がプロダクトの運命を左右することは少なくない。料理においても、現場の一個一個の判断が大きく全体のクオリティを左右するだろう。この点で両者は似ている。

一個のプロダクトが解決出来る課題は一つ

当たり前だが、アイスクリームはアイスクリームであり焼肉にはならない。ソフトウェアも同じく、一つのプロダクトが解決出来る課題は一つである。

にもかかわらず、ソフトウェアにおいては、これはラーメンであり、同時に寿司でもあり、実は焼肉でもあるすごいプロダクトなのである!という意味不明なことを言う人がいるのが料理とプログラミングの違うところ。

冷凍食品やレトルト食品も意外といける

素人や凡夫が一から作ったものより、冷凍食品やレトルトの加工食品を盛り付けるだけで意外といけるという話は、OSSなどのライブラリやらテンプレやらを使ってちゃっちゃと済ませてしまうので実は十分だった、という話に似ている。

 

といったように、プログラミングを料理に例えると面白い。

メタファーを用いることで、俯瞰視点でプログラミングを捉えることができる。

ちなみに私が今まで友人のプログラマに話して一番共感を得たエピソードは、仕様変更についての例えである。

 

カツ丼を作るぞとなってついに完成間近になり「やっぱ親子丼食べたいな、カツを鶏肉に変えるだけでしょ?」ということがプログラミングではままある。

仕様変更である。

「今回はカツ丼にしたからカツ丼食べようね、次の機会に親子丼にしようね」

と捻じ伏せる(ねじ伏せられる関係性を普段から構築しておく)のが重要、という話。