ぐらめぬ・ぜぷつぇんのはてダ(2007 to 2011)

2007年~2011年ごろまで はてなダイアリー に書いてた記事を引っ越してきました。

結局何も求めて無くて流されるまま行動した「つけ」が来たのだろう。

YakiBikiをデモした人達の意見の一つに、「それでこれをどうしたいの?というところが分からない」というのがあった。またある人に会社のことを愚痴こぼしたら、「結局あなたはなぜエンジニアをやっているのか?そこを掘り下げた方がよい」とも言われた。

適応障害に罹ったのはこれが初めてではない。中学一年生の時に罹っている。

あの発端は・・・中学生の初日、学級会長を決める時誰も手を挙げなかったので自分がやむなく手を挙げた。あの空気に耐えきれなかった。そこからの地獄*1は長いし書かない。

高校は自分で選んだ。適応障害は起こらなかった。マイノリティーとしての居場所を得て、静かに過ごせた。

大学も自分で選んだ。適応障害は起こらなかった。機械工学なのに電子工作してたりC言語のプログラミングしたりエディタ作ったりしてる変わり者として、静かに過ごせた。

就職先は・・・選んだような、選んでないような。少なくとも探しては居なかった。たまたまとあるNPO団体のHP作成・サーバ管理のアルバイト先がそこで、覚えられていたようでそれで採用された。

高校・大学が静かだったのは、自分であるていど吟味して選んだ上に、少しでも「そこでこのような居場所を手に入れ、こういう事をしたい。」というビジョンがあったからかもしれない。
そこに一貫しているのが「変わり者として静かに過ごせる場所」だったのは確かだ。

もともと小児喘息で幼稚園のころは殆どを家で過ごしていた。「みんなで何かして楽しむ」よりは、自分の世界を一人で静かに構築することに楽しみを見出した。しかし、小児喘息の頃の体力不足は「みんなができる遊びができない」という状態になった。また家で伏せる日が多く、友達と出掛ける事自体が少なかった。

普通の人が普通にしていることを普通に出来ない、というのは中学生来の悩みだったのだけれど、蓋を開けてみれば幼稚園時代にこの特性は骨の髄までしみ通ってしまっていたのだ。
運動会が楽しめない、遠足が楽しめない、みんなが楽しんでいそうなイベントに、心から楽しんで参加できない。

体力的にも普通の子供ができる事が出来なかった。劣等感はあったと思う。自己評価を満たす為、「普通の子供がしないこと、出来ないこと、しようとしないことをする」癖が染みついたのも間違いなく幼稚園時代までさかのぼれる。
それは幼稚園〜小学生までは、「お勉強」だった。
小児喘息で年中咳き込んでいた自分は大人からの援助無しにはまず間違いなく生きていなかった。大人に褒められなければならなかった。大人に「手のかからない子供だ」と思われなければならなかった。大人に「頭の良い子供だ」と思われなければならなかった。
なおかつ、同年代の子供に対し「自分はみんながやっている○○はできないけど、みんなが苦手な○○はできるんだぞー、すごいだろう。」と威張ることが出来るアドバンテージを確保しなければならなかった。
マッドサイエンティストは子供の頃のあこがれだったが、それも「普通では出来ないことをやってのける」部分に魅力を感じていたからだ。

そういうわけで「お勉強」だけは人並み以上に出来て、大人や先生から「よいこ」と思われるための言動や振る舞いが幼稚園〜小学生で醸成された。

自分で書いててなんだけど、ヤナ餓鬼だなヲイ。

でも、それも結局他者との関係が希薄でいられた小学生までの間。幼稚園〜小学生低学年までは1年ごとにクラス替えもあったし。小学校4,5,6年はずっと同じクラスだったけど、「よいこ」が多いクラスだったように思う。つまり居心地の悪さはさほどでもなかった。
まぁ、それでもいくつかトラウマできな「出しゃばり」があって正直あまり思い出したくない。今の自分が過去の小学生のころの自分と出会っていたらフルボッコにしてる。

中学で、そのしわ寄せが、"つけ"が一気に来た。
いじめっ子が居て、乱暴な子がいて、「よいこ」の流儀が全く通じなくて、ガチでぶつからないとやってけないクラスに入ってしまった。
そんななか、小学校まで通用した「よいこ」の流儀を振りかざした学級会長は・・・えー、まぁ、その。適応障害を起こして・・・休むまでは至らなかったのですが、人前で泣いてしまったり、いじめに遭ってると被害妄想をたくましくしてふさぎ込んだり、ネガティブ方向に暴走してましたなぁ(遠い目)。
学級会長も中学1年で終わり、2, 3年はまぁ、クラスの他の男子と一緒にそれなりにバカやってました。うん、あれは楽しかった。
卒業の時に、クラスで一番の問題児と言われていた人から「これやるよ」といきなりポケットティッシュを押しつけられたが・・・。あれ、今でもちゃんととってあるんだぜ?O崎。

高校は進学系のクラスに無事入れた。自分より文武両道出来る連中が何人も居た。スポットライトを浴びるのは彼らの役目と割り切り、クラスの中でのマイノリティの居場所を手に入れ、静かに過ごせた。勉強は途中かなり苦しくなったけど、どうにか持ち直して大学に合格できた。部活動は殆どしなくて、帰宅部だった。このころはBASICやらC言語のプログラミングを家でやっていた。マイノリティ連中に自分にC言語を伝えてくれた恩人*2や、インターネットの世界に嵌らせてくれた恩人*3がいた。そいつらは部活動つながりでつるんでいた。
自分はマイノリティ連中だが、とはいえそいつらの部活動にも入らず、かなり日陰の位置でひっそりやり過ごせたと思う。

大学は機械工学系の学科に入れた。大学の講義は正直勉強の仕方が分からずその場限りの一夜漬けでテストを乗り切ったりしていた。どちらかというと、秋葉原まで二時間だったのが1時間に短縮されたうれしさで電子工作やらプログラミングの勉強やらに精を出していた。結局今になって食わせてくれているのはプログラミングだな。

高校・大学と共通だったのは、「マイ・ウェイ」を完徹するのが非常にやりやすかった点だろう。つまり幼稚園時代の「一人で静かに自分の世界を構築する」というベース部分がかなり自然体で行えた。まぁ、意図的にそうしやすい高校・大学を選んだというのもあるのだけれど。

会社に入って10月位までは、1-2人でひっそりとアプリケーションを作成する仕事が続いた。その意味で非常に自分向きだったと言えるかも知れない。
11月から、本格的な「システム開発」に携わったのだけれどぶっちゃけぐちゃぐちゃだった。自分の仕事は。
自分の感覚で好き勝手に作り直せたそれまでの仕事と違い、仕様書とにらめっこしてデータの流れを追い、お客と話し合ってお客のやり方に合わせて、しかもお客のところで動いている現行システムを真似して(真似しなければならない、なぜならお客側のプログラマが見て分からなくなるから、という理由)作らなければならなかった。
うかつに自分の感覚で処理をまとめたりしてしまうと、単体試験のときに設計書と処理が「微妙に」ずれてしまう。
そして現行システムのソースは、オブジェクト指向の"クラス"を只のモジュール切り分けとして使っていた。
クラス設計は外注の人にやってもらい、実装を自分と別の外注の方二人で行った。単体テスト項目は設計書を書いてくれた人と同じ人が書いてくれたが、OOPを用いたクラス構造との「ずれ」で微妙に単体テストの内容と実際のコードに「ずれ」が生じてしまう。そこのところもお客に上手くしゃべれず、先輩にフォローして貰ったりした。

2005年の2月か3月までその仕事は続いた。
2005年の4月以降は2人でPHPのWebの仕事や、とあるDB検索パッケージソフトのデモンストレーション用のデータ生成を行ったりした。これは楽しかったし、面白かった。データ生成の仕事では、何台かのマシン上で同時に生成させたりと色々な実験や遊びを加えたりした。

2005年の10月位から始まった仕事は、また本格的な「システム開発」だった。そして、これもぐちゃぐちゃだった。
そこのお客の開発者が「理解できる」Javaのソースは、2000年前後に書かれていこう度重なる改修で、ソースコードをコメントしまくり、正直どこからが実際のソースコードなのか、初見の人間には追えない状況になっていた。つまりJava登場当初のごたごたがそのまま残されていた。
とはいえ、担当箇所は新規部分だったのはまだ良かった・・・が。一緒に手伝ってくれた外注さんとコミニュケーションでトラブってしまった。
原因は双方にあったとおもう。外注さんはベテランとも言える人だったのだが、2年目の自分がろくにマネジメントもできないことを知った上でもう少しマネジメントに口出ししてリードすべきだったと言える。やや技術系の方だった。
その方は、「普通はこうしない、こっちが一般的でしょ」と設計書やプログラミング時に良く言っていた。
自分も同感だった。そこのお客の開発者の世界は、2000年前後に書かれたJavaの世界で時が止まっていた。
だけど、自分はお客様を優先して二枚舌を使った。
本来は正面衝突させて意見を戦わせるべき所を、嘘と小手先の曖昧な言い回しを多用しておさめてしまった。
お客様の言い分をわざと曲解させてベテランの方に伝え、ベテランからの注文は曖昧な、どうとでも対処できるような言い回しでお客に伝えた。
その矛盾は結合テストの辺りで全て噴出し、最後にはベテランの人から「それがプロのやる事か!」と一喝されたりした。

あれは明らかに自分に非があった。そしてなんでそんな事をしてしまったのかというと、結局「自分はどういうプログラムを作りたいのか」をおろそかにして、ひたすらお客の言いなりを選んでしまったのが原因だと思う。
あのとき、自分はプログラム面では明らかにベテランの方の意見に賛同していた。しかし、2005年の時の件で完全にお客のやり方に「萎縮」しきっていた自分は、ベテランに嘘を吐く事で、曖昧な言い回しで煙に巻く事で、本来明らかにして俎上に載せるべき意見の相違を隠してしまった。

こーゆー仕事の仕方、絶対真似しちゃだめね。

ちなみに2005/11月からの仕事の「お客様」と、この「お客様」、今回の「お客様」、全部同じ所です。

あのときもしも、素直にベテランのやり方に賛同していて、一緒にお客様と怒鳴り合っていれば・・・もっと良い仕事ができたのだろうか。あるいは、たかだか2年の経験を元に「いえ、ここはこういうやり方をするところなので従って下さい。」と強圧的に挑んでいれば良かったのか。

後悔にまみれたこの仕事も、2006/4月に終わった。

その後1-2ヶ月ほど別のシステム開発の現場でヘルプに入った。これは・・・まぁ、ヘルプという立場が頭にあったせいか、それとも担当として一人だったせいか、言われたとおりに教えて貰いつつ普通にこなした。

2006/7月くらいからまた例のお客で別プロジェクトが始まり、そこに入った。これは完全な新システムで、参考はあれども前例は無いものだった。そのため、過去のしがらみ・・・少なくともプログラミングに関するしがらみは一切無い。自分の担当箇所はJavaのHTTPインターフェイスだったが、とにかく性能を、という要求がはっきりしていた。そのためフレームワークも一切使わず、インスタンス生成を可能な限り抑えた・・・つまり、OOPっぽくないJavaに挑んだ。また、このときC側でメッセージサーバを立ち上げる必要があったのだが、それもJavaのAPサーバの機能を用いる事になり、JNIを使ってC側のモジュールを作ったり、その余波でC側のMakefile環境変数文字コード変換周りを整えたりと今までずーっと使わなかった、「実は自分、UNIX-Cも勉強してました」部分を思い切り駆使できた。
また後半は新システムということで、特にネットワーク部分を徹底的にチェックすることになった。Wiresharkでパケットキャプチャを取り、LANケーブルが抜けた時は・・・タイムアウトの時は・・・などなど、クレイジーとすら言える状況を追い続けた。
ここでも、ちょろちょろ独習していたTCP/IP周りのネットワーク部分の知識をようやく活用する事が出来た。

細かいミスもいろいろあったが、とまれ2006/7月 - 2007/1月にかけてのこの仕事は、あちこち動き回ったり、今まで溜めてたけど使う事の無かった知識を活用できて有意義だったと思う。

それでも、設計時に「何でここまで会議を引っ張るの・・・?」とか、システムテストに入って自分の担当箇所で単体レベルのバグが出て、「何で自分、こんなミスを忘れてるの・・・?」とか、今に至る伏線的な部分はあった。

2007/2月 - 2007/9月は、某所でPHPのWeb開発を行った。職場としては悪くないところで、チームのメンバーも全員余所のPrjとかでのごたごた経験者。いわば傭兵チームで、生え抜きのエリートさんなんて居ないところだった。「お仕事」と割り切ってとっとと終わらせようと言う雰囲気は心地よかった。
しかし、開発環境は厳しかった。インストールできるソフトウェアは制限されていた。メジャーなソフトウェアは許可されていたが、自由にLL言語関連のツールを入れて実験できるような所ではなかった。まぁそこはUNIXサーバにログインしてvimPHPを弄るところだったので特別不自由はしなかったけど。
それでも、自分で遊べない制限を不自由に感じる事はよくあった。また後半やXhwlayやYakiBikiの絡みで精神状態がぐちゃぐちゃになり、過食気味になった。

2007/10月 - 2008/3月は、YakiBikiで休職したりしていた。

で、2008/4月から、今回の件に携わる事になった。

*1:主観的には地獄だった。客観的にはいじめと言うほどもないものだったのだろうが

*2:とか書きつつも今連絡先知らない・・・

*3:OVA "lain"を貸してくれたあいつ・・・も今連絡先知らない