一日1時間はプログラミングを
生きるということは自己表現の連続なのかなと思うことがある。
ある人は文章で、ある人は絵で、ある人は会話で、ある人は動作・たたずまいで、ある人は仕事で、ある人は人間関係・コミュニティで、ある人はプログラミングで。
何のご縁なのか、合気道は僕にとって表現方法の一つになった。
そして、もう一つ幼いころから頭に描き続けて歳を経て出会ったプログラミング、これを大事にしたいなと思う。
どうも、自分が尊敬する人々(アンドリュー・ハント、デビッド・トーマス、ジョエル・スポルスキ、カル・ヘンダーソン、ポール・グラハム、マーチン・ファウラー、トム・デマルコ、ティモシー・リスター、エド・ヨードン、ラリー・ウォール、etc)はみんなプログラミングを重視している。少なくとも自分の手を動かすことのインパクトを過小評価していない。みな書き続けている。マネジメントの大切さを訴え、そのノウハウを書いていても、同時にプログラミングに時間を投入することを忘れていない。プログラムを読み、書く力はたぶんソフトウェア開発の基礎体力、土台にあるものだし、それ自体広大な問題空間を持つものだと思う。プログラミングをしていく中で、設計スキルが洗練され、要件定義スキルが洗練され、プロジェクトマネジメントスキルが洗練されていくことは「ありえる」と僕は思っている。そうじゃないと彼らの経歴と現在の素晴らしい活躍を説明できない。逆を考えてみる。プログラミングができなければ、良いソフトウェアは作れない。うん、やっぱり自明だ。
ソフトウェアを最終的に形にするのはプログラミングで、最終アウトプットはプログラム。これは自明なわけだから、プログラミングを重視することはイコールアウトプット重視ということで、価値あるソフトウェアを作るという観点から最短距離を走ることになる。もちろん、設計がいらないわけじゃない、要件定義がいらないわけじゃない、マネジメントがいらないわけじゃない、企画がいらないわけじゃない。でも、それは考え方としてはプログラマが設計をやり、要件定義をやり、マネジメントをやり、企画をやるという考え方にするべきだと思っている。プログラマがプログラミング意外も価値あるソフトウェアを作るために必要なあれこれがあるから、それをやる。それが正しいんじゃないかと感じてしょうがない。
だから自分は自分のことをプログラマと称したいし、そのために、毎日必ずプログラミングに時間をとる。
道場の運営や、技の解析も確かに大事だけど、だからといって実際に稽古することをしない合気道家、武道家はいない。これは至極当たり前のことだ。そうなってしまったら終わりだ。こんな当たり前のことが、ソフトウェア開発の現場では見落とされている。