2005-07-01

日記

日記18日目. 8:30 起床.

出社, 研修レビュー. 社内フレームワークのレガシー度合について. インクリメンタル開発の亜種について. コードを書かずにおいて後から書き足すことはできるが, とりあえず書いておいて後から書き変えるのは難しい. なぜなら動いているものを書き直すことに大抵の上司は反対するから. だから不要な機能は書かずに置こう. そんな話.

午後, 週報書き. スケジュールの終わりに近づいている. そろそろこの先の予定を詰めねばならない. しかし手元の作業も締切りが厳しい. 予定をたてるのはこれらを片付けてからか.

チームのレビュー. 新人のコードをみる. これはもっぱら教育的効果を狙ってのことなので問題を直接指摘せず質問によって問題へ誘導したいのだが, つい尋問口調になってしまう. 後に同僚からも厳しすぎると指摘. 難しい. 緊張して頭が真っ白では質問に答えられない. 妙案はない. 担当しているモジュールを引き継がせたいと私の気が急いてるのか.

コード書き. バグがとれず同僚に助言を求めたらあっさりなおる.

新人歓迎の飲み会. その後同僚行き付けのバーへ. 趣味プロジェクトについて話したらその新規性について問われる. 特許をとるわけではないのだから新規性は要らない. 有用であればいい. 皆 "新しいアイデア" であることに固執しすぎる. 新しくないからという理由で躊躇したら何も作れない. 逆に作ってみれば大抵は何かしら新しさが芽生えるのだ. しかしそう言いながら後ろめたさを拭いきれないのは私もまた "新しさ" に何らかの執着があるのか. 問う側に非難する意図はないのだろうが, 今後同じ問答を繰り返すことになるかと思うと気が重い. "新しさはない" ときっぱり答えることにしよう. 飲み過ぎで帰宅. 風呂後泥寝.

10:00 出社, 24:30 帰宅. 昼飯 中華料理 S (麻婆豆腐), 晩飯 居酒屋 E (宴会). アルコール バー T.

履歴について (3)

私は最初ゲームプログラマになりたかったので, プログラミングはそのための勉強から手をつけた. 特段強い思い入れがあったわけではなく, 単に他の "プログラマ" を知らなかった. 今だったら CGI の勉強をして Web プログラマを目指したかもしれない.

C, C++ を勉強し, SCEIの "ネットやろうぜ" を買ってみたがよくわからず, 結局 DirectX に手をつけた. 学部生の間は, こうした言語やツールキットの使い方を学ぶのに明けくれていた気がする. 3DFC に出るなどして知り合いが増え, グラフィクスやゲームプログラミングについて聞きかじるようにはなったが, 私自身の能力はツールキットを使えるという以上のものにはならなかった. 根気がなく, ただ目の前のテクノロジを追い回していただけだからだ. たとえばフルスクラッチで何かアプリケーションを作るといった, プログラミング好きのやるようなことはしなかった. そもそもふだんから書籍を読むばかりで, 楽しみとしてコードを書くことは少なかった. だから私は狭義でのプログラマを名乗ることができない.

アルバイトの仕事ではそれなりに長いコードを書いた. ほとんどが Java, サーバサイド. この仕事は現在のものの考え方に強く影響している. まずソフトウェアの設計や, 設計の方法論に興味を持つようになった. そうした議論が盛んな Java コミュニティから影響をうけたのと, 設計が仕事に及ぼす影響を痛感したことによる. あるプロジェクトでは上流工程から渡されたコードが信じ難い出来損ないで不毛な労働を強いられたし, 私もまたひどいコードを量産してメンテナンスに苦しんでいた.

そこで内製のフレームワークをつくった. (Struts のことは知らなかったし, たぶん知名度も低かったとおもう.) このフレームワークも良い出来とは言えなかったが, いくらか状況は改善した. 一方で手を出せない部分も多かった. たとえばデータベースのスキーマなどは上流工程で設計されていたため, 私に口出しの余地はなかった. (社内では請け元から渡されたスキーマの Excel ファイルから Java のデータ・バインディングを生成するツールまで作られていた!) イントラネットのシステムを作るその仕事は退屈だったが, フレームワークを作るのは楽しかった. また, アルバイトの同僚にも恵まれていた. 彼らは大学の同級生で, 技術的な話のできる貴重な相手だった. ただ, この下請仕事を続けることはできないと思った. ソフトウェアの決定的な部分で自由がなく, また退屈な仕事が多すぎた.

職業選択の上でも影響は大きかった. 私はそれまで大企業の情報部門や大手ソフトウェアベンダに行って仕事をするつもりでいた. しかし気がかわった. まず, こうした大企業で一般的である大規模なソフトウェアの開発では上流工程になるしかないことがわかったからだ. 私は設計から実装までを全て自分でやることを望んだ. (それが "良い" ソフトウェアのあり方だと思っていたのだ. 今もそう思っている.)

また, 大半の企業内システムやウェブ・アプリケーションの開発は, プログラマの視点から面白い仕事ではないように見えた. 重要な部分は企業の業務改善や新しいビジネスを作ることで, ソフトウェアは手段に過ぎないと言われていた. 実際, システム開発の仕事の難しさは規模や時間の制約にあり, 純粋に技術的な困難は残されていそうもなかった. ソフトウェアそのものが重要である仕事を私は望んだ.

以上のような理由から, プログラマとしてやってくのにウェブ開発者や企業の情報部門は割が悪いと判断した. 実際はウェブ・アプリケーションの開発にも技術的な課題はあるし, 大企業の中でも設計から実装までを担当する機会はあるのだと思う. ただ, 私はそんな仕事をみつけられる気がしなかった. 大企業で無能な人間になる, あるいは下請の単純作業に終始する, そうした恐怖に怯えていた. 今もその恐怖は去らない.