bussorenre Laboratory

bussorenre Laboratory

Life is like BDD

こんにちは。@bussorenre です!最近Twitter を使うことがめっきり減りましたが、それでも@bussorenre です。よろしくお願いします!

さて、ここ一週間ほど”テスト”について勉強していました。というのも、自分の書くコードがもうクソすぎてクソすぎてやばかったので、抜本的な解決を図りたいと思い、テストについて勉強しました。RSpec Book と アジャイルサムライが僕の今の教科書です。

テストの超重要性についてものすごい勉強した所で、今必死にプロジェクトのテストコードを書き直しているところなのですが、ふとこんな時間になって思いました。

多くの人の人生ってウォーターフォール開発のようなもの。

海外ではどうか知りませんが、日本人はよく「人生設計」って言葉や、最近だと「キャリア」って言葉をよく使います。就活生だけかもしれませんが!!

最近の大学生は、入学直後にも、研究室に配属される時も、就職活動するときに「将来いついつにこうなってこうしてこうしてこれを(ry」って言うことを設計させられます。例えば、

22歳で卒業して就職して、28歳くらいで結婚して、30歳くらいで子どもを産んでもらって、60歳までバリバリ頑張って。みたいな。で、ソレを達成するために大学でどういう勉強してー就職こういう感じでーとかどうとか。

で、計画を立てたら、実行するわけですよ。これを。ちょっとでも違うルートの生き方をしようとすると社会からのはみ出し者みたいなレッテルを張られるから、みんな必死でこの通りに生きるわけですよ。それが、まぁ、例の滑稽な就活みたいなのを生み出すのかもしれませんが。

なんか、これって、ウォーターフォール開発みたいじゃないですか??途中で仕様変更が許されない恐ろしい人生開発。

世界は常に変化しているのにね。だから行き詰まって、鬱になったり閉塞感感じたりするんじゃないかな…??

ということで、人生をBDDとして考えよう

僕はかなりの欝思考の持ち主で、自殺を試みる事が何度もある。そのたびに、僕はよく「死に方」を意識して踏みとどまる。死とは自分の人生開発の完成を意味する。と思う。死とはこの世で最も完璧で美しい存在だ。よく、アーティストが人生の事を作品と捉えるが、アレと同じ考え方だろう。

つまり、人間はひとつの人生を完成させるために生きて死ぬのだと。

そして、これはアーティストに限らず、僕のようなエンジニアにも同じような考え方を当てはめることが出来る。

決められた時間(僕は多分80年くらいに死ぬのかな?)の中で最も素晴らしいプロダクトを生み出す。

大事なのはその過程ではなく、その成果なのだ。だって、僕らはいつ死ぬかわからないのだから、常に最高の成果を上げていなければならない。この辺は「常に動作するソフトウェアを提供する」というアジャイルな原則に似ていると思う。いつ終りが来るかわからないプロジェクトに、ウォーターフォールモデルを採用するのはおかしいよね。

一年を1イテレーションと考えると、新年の終わりと始まりに反省と計画を考える文化が世界中にあるのも納得出来る。まぁ、正直このイテレーションは大きすぎると思うので、僕はもうちょっと小さいイテレーション(クオーター制くらい)がいいと思うけど。笑

そして僕らは出来る限り無駄を省かなければならない。人生は限られているのだから、最小の労力で最大の効果を上げる必要がある。

よく聞く例が、「大学4年行ったけど、正直したい事じゃなかったんだよね。だから本当にしたい事するためにもっかい行くわ!」みたいな。これはこれで、僕は非常にいい選択だと思う。間違いに気がついたのだから、4年はロスするかもしれないけど、後々絶対いいプロダクトになるから。ここで、計画の変更は許されないから、このまま就職しようなんてなったら、なんで自分はこの仕事しているんだろうっていう意味のない悩みに悩まされ続けるんだろうな−とか思う。で、気がついた時には修正が間に合わなくなってしまう。それではダメだ。

人間はひとつのオブジェクトのようなものだ。あるメッセージに対して、どのような振る舞いを返すかが、その人の価値を決める。この価値は給与かもしれないし、人からの信頼かもしれないし、恋心かもしれないけれど、要は、人間は人間の振る舞いを評価する。その中身がどうなっていようが、知りようもないし、どうでもいいから。

だから人間は最初、習慣っていう物を身につけて、振る舞いを無理やり構築する。Red→Green の段階だ。これが子供時代にうまくできているといいんだろうけど、僕みたいに全然出来てない奴も居る。Green になろう!笑

テストが通り、Green になったら、次はリファクタリングをする。つまり、中身の改善。そのために知識をみにつけたり、色々な本を読んで色々な考え方を知ったり、自己を磨く。

で、出来たら、新しい仕様を身につけたりする。イテレーション毎にこの繰り返し。

なんか、人生って、BDD みたい。 いや、BDDが人生みたいなのか?? 

何を作ってもいい仕事なんて、なかなか無い。だったら、自分の本当に創りたいものを創るのが一番幸せ。 そしてソレが世界の役に立つなら尚更のこと。

人生ってきっとそういうことなのかもしれない。

ってBDD勉強しながら思った。