費やした時間の量が質に繋がっていく
この記事はソフトウェア開発者としてレベルアップをしたいなと考えている方向けの記事です。およそ3分で読むことができます。
腕のいいプロカメラマンは日常生活のなかでも、ものの見え方や構図を考えて暮らしているそうです。
これはソフトウェア開発者にも通用するのではないでしょうか?日頃から、身の回りにあるソフトウェアのことを考えながら暮らしてみると、自分の中に知識や経験として溜まっていき、設計やデバッグ時に役に立つ気がします。
このアプリの内部はどうなっているのか?このウェブサービスの内部はどうなっているのか?などという感じです。
何故、日頃から考えた方がいいのか?
運動や勉強、手作業などは費やした時間に応じて上達していく傾向にあるということは皆さん、なんとなく分かっていると思います。
成長速度に個人差はあれど、半年続けている人より1年続けている人、1年続けている人より5年続けている人の方が上手なことが多いですよね。
これはソフトウェアの設計でも同じことが言えます。僕の職場を見ても、ネットで見かける凄腕のプログラマーを見ても、そうでした。ソフトウェア開発が面白くて、寝る間も惜しんで夢中になって取り組んでいる人達ばかりです。
そのため、ソフトウェア開発を半年経験した人より1年経験した人、1年経験した人より5年経験した人の方が、完成度の高いソフトウェアを設計できる可能性が高いと考えることができます。
業務時間以外でソフトウェアのことを考えた時間が多いほど、設計者としてのレベルが上がるわけですから、設計者として上達したいと考えている人は日頃からソフトウェアのことを考えるべきですね。
身の回りのソフトに対して、どう考えたらいいのか?
深く掘り下げたい分野、上達したい事に時間をかけた方がいい、頭を使った方がいいことを書いてきました。
次は、どう頭を使うのか、です。
僕がやっているものに、ソフトウェア内部の構造について、自分だけでどこまで推定していけるか、というものがあります。常日頃ではありませんが、ちょくちょくやっています。
データベースにはどんな情報を格納しているのか、内部で行っている処理はどんなものがあるか、ボトルネックとなりそうな処理は何か、どんな機能拡張ができそうか、改善した方がよいところはどこか、どんな方法で改善するか?
どんなことでも構わないので、答えの無いものについて、ああでもない、こうでもないと考え続けていくのです。
色んなソフトウェアに対して、これを続けていくと、たくさんの発見があったり、新しく興味が湧くものに出会えることがあるかもしれません。
僕は興味のある分野がちょくちょく湧いてきて、気になることだらけになっています。話題の言語、フレームワーク、ライブラリ、デバイスなどはどんどん溜まっていき、いつの間にか古いものになっていることも、たまに。
まとめ
腕のいいカメラマンが普段から取り組んでいることはソフトウェア開発者にも当てはまる部分がある、という話を紹介しました。
普段からソフトウェアのことを気にする、考えるようにしておくと、いつの間にか引き出しが増えていて、開発者としてレベルがあがっている、かもしれません。
面白そうじゃないと感じていただけた方は自分のスマホのアプリについて、アレコレ考えてみるところからスタートしてみるのはいかがでしょうか?
一つのアプリで何でも出来るものは中にどれくらいの機能が詰まっているのでしょうね。

C/C++で組み込み系ソフトウェア開発の仕事を10年以上やっています。怪しげなデジタルガジェットが大好きです。






