0から1を作ってみて

またしてもすばらしい記事を見かけたので思うところを書いておこうかと。

どんな分野であれ、ゼロから何かを生み出す経験をした人は、あとは事例を見るほどに、自身の経験が増していく。

0から1を作った経験 – レジデント初期研修用資料

運用エンジニア

僕は一応曲がりなりにも「Software Engineer」であると思う/言うようにしている。だが、働き始めてこの方ずっといわゆる「運用」をしている。SWEでありながら、世の中に価値を生み出す・利益をもたらすようなアプリケーションは書いたことなく、そのアプリケーションの運用ばかりをやっているという状況。

ともすれば、アプリケーションをゼロから書ける必要性はなくて、むしろ誰かが書いたアプリケーション、もしくはOSSなミドルウェアとかフレームワークをきちんと読みこなして理解できる力の方が重要だから、実際コード読んだり使ってみたりすることに多くの時間を割いている。

作り初めて思ったこと

でも、ここ最近は自分で作ることも始めた。まともなアプリケーション書いたことないからまぁそれはそれはひどいコードだ。実際作りはじめてなんとか動くものにはしたものの、あまりのクソコードと当初の目論見との乖離のために捨てたアプリも結構ある。一応いくつか公開したものもあるし、いくつか社内で使ってるものもある。

その上で先の記事を読むと、やって良かったと心から思えた。別に初めはこういう目的があったわけでは全然ないけど、結果としては正解だった。

たぶんどんな分野でも、お手本をどこかで否定しながら、自分でゼロから全部作ると、個性を全面に押し出した「改良品」を作ろうとした結果、実用に遠いどうしようもない何かが生み出されることになる。こうした失敗を通じることで、その人は無難の意味とか凡庸のありがたみに気がつくことができる。

0から1を作った経験 – レジデント初期研修用資料

特にここがグッと来る。僕も最初は「おれがおれの思う最もいいものを作ってやる」と思ってガリガリ書いた結果、全然役に立たない、不安定なものを生み出し続けた。なんでそうしたのかというと、新しいものを「学ぶ」ことよりも「生み出す」ことに重きを置いてたからだと思う。

それを繰り返した結果として、今では確かに「無難」のありがたみに気づいてる。僕は「レール」と表現してるけど、誰かが作ってくれたレールに正しく乗ることのありがたみをこの上なく感じてる。Myrokuというこのあいだ出したソフトウェアは思いっきりレールに乗った。

ただし今まで乗ったことのないレールだったので、その選定にはものすごい時間を費やした。あれを使うのがいいのか、これを使うのがいいのか、あっちに決めてはここがダメだからやっぱりこっちだと思い、その翌日にはでもここを考慮し忘れていたからやっぱりあっちの方が利点があるな、という自分の中でのやりとりをしてた期間が実は一番長い。多分1ヶ月くらいやってた。

力の入れどころ・抜きどころ

そして今回もレールに乗ったとはいえ物自体はゼロから作ってみたからこそ、また経験値上がったと思う。

自分でゼロから何かを作った経験があれば、力の使い所や配分すべきリソース、到達できた目標と、あきらめざるを得なかった目標とが理解できる。改良の機会があればどこをどう直すべきなのか、最初に無難に到達できたその時点で、頭の中には次のプランができていたりもする。

お手本をなぞった人たちにとっては、改良とは「より厳密」を追求することになる。目的を定めず全方向的にベストを尽くした結果として、役に立たない「より厳密な車輪」の再発明になってしまったプロダクトは、世の中にはけっこう多い。

0から1を作った経験 – レジデント初期研修用資料

あるあるすぎて頷きまくった。ゼロから生み出す時って、全方向にベストを尽くす余裕なんて全くないから、むしろ「何を切り捨てるか」の方が大事だったりするんですよね。そうする中で、力の入れどころとか学べてほんと良かったと思う。力の抜きどころという意味ではレールに乗ることも学べた。

ゼロからイチを作ってみよう!

運用をメインにしてるエンジニアにとっては「より厳密」を求められることが多いし、それを何とかして実現することでサービスをより良いものにできていくのは火を見るより明らかです。ただ、エンジニアとしてはそれだけじゃないと思うんすよね。

別に仕事の役に立たなくてもいいし、誰かの役に立たなくてもいい。ただ単に「0から1を作った経験」をするだけでその後の世界の見え方が変わるとしたら、やってみない理由がありますか?

Jobsが”Connecting the dots”で語っていたように、それが何の役に立つかはあとから見て初めてわかることなのです。今自分が何か「作りたい!」と思うものがあるのであれば、誰に恥じることなくやってみるといいと思います。そうしてからもう一度medtoolz先生の記事を読むとグッとくると思います。

僕もまだまだ生み出せたなんて程遠い状況ですが、いつかは胸を張って何かを生み出せたと言うようになりたいものです。