プログラマとしての道を歩き始めてから
どれほどの壁にあたったのだろうか。
いくつ壁を乗越えてきただろう。


初めての壁は「プログラムがわかんねぇ」ってところからだった。
たった1人で作れないどころか、教えてもらっても構文もわからん。
そんなころがあった。


次の壁は「1人で仕事がこなせるか」だった。
業務もわからなければ、プログラムもどうつくっていいかわからなかった。


乗越えた次の壁。「0からプログラムが組めるか」だった。
元ネタがあった上での変更作業はなんとかなった。
けれども何も無い状況から作り上げるのはより難しい。


なんとかできるようになった頃。
どれだけ早く組めるか」が壁となった。
まだ組み上げるだけがプログラミングだと思っていた頃である。
知識が付き、手法を改善できたとき、組み上げる時間は半分になった。


「今の俺は新入り相手の比較なら3〜4人に匹敵する作業がこなせる。」
そう思えるようになった頃の次の壁。
新人を引き連れて仕事がこなせるか」になった。
教えながらの作業は思うように捗らないものだ。


それにも慣れた頃、「仕様調整を自分でできるか」が壁となった。
新たな職場に入り、新たな人たちと新たな作業を行うときに、
年長者にまるっきりゲタを預けていた。
気が付けばデスマーチに入っていた。
最初からプロジェクトにかかわっていたのは自分。
自分がなんとか出来ていれば回避できた事象かもしれない。


同時期にまた新たな壁があった「チーム体制において、プログラマ教育をどう行うか
自分が作れば3日で終わるものを、1日かけて説明し、4日 経っても終わらない。
説明が悪い。説明の仕方が悪い。きっとそうだ。
そんなことの繰り返し。意思伝達とは難しいものだと実感した。
積み上がる使用済みのコピー用紙。終わらないプログラム。尽きないバグ。
そしてプロジェクトは泥沼化した。


疲弊しきってデスマーチの終焉を迎えてしばらくした頃。
いいものを作りたいという願望と時間との調整」ってのが壁になった。
実際にシステムを使う人たちのために、できる限り判りやすいインタフェースを用意する。
こうなればいい。こんなときこうなってくれるとありがたい。
作りつづければキリがない。残業がふえた。
が、
目の前で動いてくれる様を喜んでいただけるのを目の当たりにすると
やはりうれしい。


調整がうまくいかなかった後、どんなことになるかを実感してしばらく。
今度は「回帰テストをどれだけ早く繰返せるか」が壁となった。
コマンドラインから実行するプログラム。C用のテストツールなんざ使えやしない頃。
テストデータを整え、環境変数を整えてから行う実行。
毎回手でSQLを流し、コマンドを打ち込みではなく、シェルでやる。
出来てしまえば簡単なことだった。


プロジェクトが予定よりも1ヶ月早く終わり、次の場所へ移った。
そこで待ち構えていたのは
意思疎通の出来ないプロジェクトマネージャ」だった。
厄介な壁である。
移行テストを頼まれた。旧システムから新システムに移す作業。*1
今でも忘れないこの会話。

 ( ´∀`)<すんません。ここのテストはどうなればいいのですか?
 (..゜Д゜)<んなもんいちいち聞くな。やりゃいいねん。
 (#´∀`)<やった結果がうまくないから聞きに来てんねやないかい。
 (..゜Д゜)<いいからとにかくテストやれ。


敵を打ち破るための準備と攻撃方法を学んだ後、
管理体制と生産性」が壁となった。
プロジェクト毎に予算が管理され、プロジェクト毎に人員が用意される。
この体制下において、プロジェクトが異なる人員間での技術協力は難しい。
比較的早く作業を終えている者が、苦労している別プロジェクトの者を支援すると、
実働時間をそのプロジェクトにつけねばならなくなる。
管理上嘘をつくのはよくないことだから。
別プロジェクトにつけてしまうと
「( ・ω・)<なんで自分がはいってんねん?」
ってことになる。問題がややこしくなるから避けたほうがいいと言われるのだ。
座席でみたら2つも離れていない近所の人。これに何も出来ないのは歯がゆいものがあった。


まだある。
「生産効率を他人に伝えるには」とか
「品質を保った上での速攻プログラミング」など
開発生産と新入り教育に関する壁たちだ。
「汎用ツールと専用ツールの作りどころ」もまた壁が厚い。


これら普遍的なことはとりあえず横に \(・_\) (/_・)/置いといて。


今一番の壁がある。
プログラマの実績と報酬体系はどーあれば人は伸びるのか
実績を語れば「今」と上記5つ目の壁の頃とを比較してみると
生産力は10倍では効かない。
1人でひたすらやるのと、ツールを使いながら作りながらやるのでは圧倒的に違う。
しかし、収入差はせいぜい倍だ。
もし。
おいらがカネにがめつければとっととマネーゲームの世界へ行っている。
しかし、今のおいらが得た技術力まで辿り着けたことはないだろう。

実績の目安がきっちり付、何をどうしたらこんだけ支払われる。
どんな貢献をしたら次の体制作りを考えてもらえる。などなど。
目標は判りやすいほうがいい。
目標は判りやすくあるほうが、頑張るにしろやらないにしろ納得しやすい。


ってのを思えば、実績評価をどこで行うかってのを考えていかなきゃ始まらないんだろうな。
プログラマが考えるプログラマのための評価体制。
何はともあれ考えてみよう。
壁は嫌ほど越えてきた。この壁もまた延長線上の壁にちがいないからいつか越えれる。
きっとそうだ。そうにちがいない。そうだと言って。ヽ(´ー`)ノ

*1:とはいえ、Access95→Access2000なのだが。