破片プログラマーの悲しみ

はへん

破片プログラマー

大きなシステムの改修、
巨大に積み上がったプログラムの上での実装、

難度の高い仕事、

ただし破片

巨大な破片

画面を0から

二年、三年、五年と経験を積み、
開発スキルを身に付けたディベロッパー、

だがしかし、
0から画面を作ってみると...

...

あれ!?

できない。

画面を0から作ったことがほとんどない。
あったとしても、隣の画面の真似ごとをしてただけ。

考えて0から作ったことがない

レールのないところ歩いたことがない。

クラスやメソッド

クラスを作る。

どうやって?どういう単位で?

決められた中でしか作ったことがない。
その決めがないと何もアイディアが浮かばない。

「どこに何を実装するか?」って、
白いキャンパスの上で考えたことがあるかい?

...

メソッドを作る。

どうやって?どういう名前で?
どういう引数と戻り値で?

メソッドの修正はたくさんしてきたが、
メソッドを作ることはめったにない。
もしくは、隣のメソッドの真似ごとをしてただけ。

なぜ、その戻り値を思い付かない?

DB設計も!?

select文はさんざん書いてきた。
チューニングだってわかってる。

テーブルを作る。

何か変な形している。

変なテーブルも得意のSQL
無理矢理カバーしてきただけ。
良いテーブルのかたち、
悪いテーブルのかたち、
考えたことがない。

あんなにテーブルさわってきたのに、なぜ?

気付いたら...

年を取って、頭も固くなっているようだ。
破片じゃないプログラミングが苦痛でしょうがない。

...
...


あれっ!?
破片のプログラミングしかできない。

乖離の立ち尽くし

もちろん、すべての人は破片。
すべてのことをできるひとはいない。
そんな0/1の話をしたいわけじゃない。
程度の話。

そして、その破片をわかっていれば問題ない。
わかっていれば、できないことがわかってるから、
どうすれば解決できるかわかるから。

破片プログラマーの最大の悲しみは、
破片であることを自覚せずに成長してしまうこと。

プログラミング経験年数と、
実はほとんどプログラミングをしてこなかった
という事実に乖離がある。

それに気付かず、
ステージが違うことに気付かず、立ち尽くしてしまう。
もしくは、足を引きずりながら突き進んでしまう。

破片とホールのバランス

小さなまるごとアプリを作る経験、
これって大切だと。

デザイン、HTML/CSS, JavaScript,
サーバーサイドプログラミング(Javaとか)、
SQL、DB設計、インフラ...

それぞれを少しずつ。

そんなに深くやらなくても、
それぞれの全体の中でのバランスがわかっていれば、
破片仕事をしながらでも全体を見る力が養われる。

...

まあ、そこまでおおげさでなくても、
小さなアプリの画面を作る。
小さいので全体が見通しやすい。
小さければ、既存コードに惑わされない。
その分、自分で考えて書かなければならない。

画面作りの基本を学ぶことに等しい。

...

もちろん、破片のお仕事も非常に大切。
破片は破片ならではのノウハウがあり、
鍛えられる部分がある。
盛大な筋トレをしているような感覚。

単純に
破片だけでは鍛えられないことがある
ということ。
そして、逆もまたしかりで、
破片をやったことないとそれはそれで、
バランス悪い。

仕事以外のプログラミング

ただ、仕事のプログラミングだけやってると、
破片になりやすいでしょう。
仕事のプログラミングは効率重視ですから、
破片で仕事ができるような仕組みを構築します。
それは会社としては当然のこと。

仕事で「まるごと作れ」と無茶ぶりされた人は、
幸せでしょう。そんな人はごく一部。

だから、自分で脱出しないと。