自作でWebアプリなどを作り始める時。
「こんな機能を実装したい」とか、
「画面遷移はこんな感じにしたい」とか、
「収益を上げるにはどういう方法を取れば良いか」とか、
「クラス切りはどうするか」とか、
作り始める「前に」、色々な計画を考えると思います。
そして、それは別に間違ってはいないと思います。
何も考えずに、モノが作れるわけが無いですから。
でも、「ただ、考えているだけでは、モノは出来ません」。
一方で、ある程度作りが出来た時点や、
リリース前後のタイミングで、
「ああ、この機能は必要無かった」とか、
「ああ、テーブル設計を失敗した」とか、
「ああ、セキュリティホールを作ってしまったけど、
修正の為のコードをあちこちに書かなければいけない」とか、
ある程度、作り終えた「後に」、色々気付く所も出てくると思います。
そして、それは別に間違ってはいないと思います。
作ってみてから、始めて気付く事もあると思いますから。
でも、「何も考えずに作ると、技術的負債を増やします」。
じゃあ、どうすれば良いの?って話になると思うんですが。
タイトルの言葉が、筆者は一番しっくりくると思います。
技術書以外の書籍を読んで、どんなアプリにするかのヒントを得たり。
そして、得たヒントを基にして、要件に反映させたり。
技術書を読んで、機能を実装する為や、セキュリティホールを作らない方法などを、
どんな風にやれば良いかを調べたり。
そして、調べた結果を、コードに落し込んだり。
計画を立てる事は大切ですが、一方で計画倒れに終わっては意味がありません。
人生なんかもそうだと思うんですよね。
自分が子供の頃に描いた人生プラン通りに今生きている人って、
果たして何人居るんですかね?
いやまあ、0人って事はないと思いますけど。
一方で、自分はこんな仕事をして生きていきたいとかを、
何も考えないで生きていても、やっぱり幸せにはなれないと思います。
考えながら行動するという、少々器用なマネではなく、
時には行動し、時には考えるぐらいでも、最初は良いかもしれません。
でも、「動く」事と「考える」事は、どちらも大切だと思います。