最初のプロジェクトでフレームワーク作りながら仕事の大変さを学んだ話

JOIN

社会に出て派遣社員を始めた当初、はじめてまともなプロジェクトに入ったのがXMLを積極的に活用したフレームワークを作るという新規プロジェクトだった。StrutsのようなJavaのWEBアプリを作るのに、XSLTを使って自動生成のコードを吐き出して楽をするというもの。当時としてはかなり先進的な試みのプロジェクトだったと思う。この会社は1000人くらいの規模の会社で、SI(受託開発)をやっているところだった。
社会に出るのが遅かったので、年齢は25だったけど新人みたいなものだった(逆算すると2001年頃らしい)。プログラマーとして仕事するのはそのプロジェクトがほとんど初めてと言っても言い過ぎではないくらいだったのだ。
派遣に教育するようなシステムは無いので、それまで一年間かけた修行の成果を発揮してやっていた(修行の話)。
一年プログラムしか書いていない自分なので、会社のことはよくわからなくても、作る事自体では足手まといになる事は無いとわかった。Linuxの利用が増えてきていた時期だった事もあり、自分のやってきた事がダイレクトに現場で生かせるケースは多かった。知らない事も沢山あったので、失敗もしたが、それなりにやれていたと思う。
チーム自体はフレームワークチームとアプリチームがあって、僕はフレームワークのチームにいた。ぺーぺーの派遣社員がいきなりそんなところに入れたのは、もともとその部署の派遣社員率はかなり高いために寄せ集めチームだった事や、フレームワークのチームのトップが隣のシマで働いている僕を引っ張ってくれた事によるらしい。実はそれまで一度も口を聞いた事は無かったのだけど、初めて仕事の上で認めてもらった気がしてちょっと嬉しかった。

学んだイロハ

さきに書いた「シマ」とか「リスケ」なんて言葉をはじめて知ったのがその頃だ。会社やプロジェクトでの用語を吸収したのがこの時期だったような気がする。「ご苦労様です」「お疲れさまです」も初めてだった。どう返して良いのか最初サッパリわからなかった。バイトしていた時もこの言葉を聞いた覚えが無かった気がする。今振り返ると不思議だ。
タバコを吸わない自分でもタバコ場で話をしに行くと物事の全体像がわかると理解したのもここ。
チームでJavaがわかる人はあまりおらず、その社内で一度アプリを作る時間を作ったりしていた程度だった。僕は少しだけ先に個人的にサーブレットやJSPを扱っていた事もあって、良さそうな本を紹介したりしていた。紹介した本が何冊もその現場に買われる事になっていたのはちょっと面白い光景だった。
外部の会社も巻き込む形になっており、かなり大きなプロジェクトになってしまっていた。今振り返ると「初めて作る(まだ作り途中)のフレームワークを使って、急造チームで顧客の業務アプリを完遂。しかも社外にも提供しながらやる。」という、無茶なプロジェクトだった。
最初は確かGWの時期か何かでフレームワークを急いで完成させるということがミッションだった気がする。何回か泊まりもやった。根を詰めて何かをするというのは大学院の研究からずっとやっていた事だったから、大き過ぎるストレスになるような事は無かった。…この頃は。

社外とのメール

作る仕事以外に最初にアサインされたのはメール受けの窓口のような仕事だった。相手からの質問事項をエクセルに貼る仕事。今思えばそんな単純作業だったのだが、コードを書く量が多かったり、アプリチームのサポートの窓口のようなこともしていたりしてとても手が回らない状況だった。
また、メールの書き方を全く知らなかったので「お世話になっております」とか「お疲れさまです」のような言葉を挟む事無くいきなり要件を書いてしまっていた。それは先方に良い印象を与えないと教えられたのは暫く経ってからだった。とは言え、取って付けたようなそれらの言葉になんだか違和感を覚えてもいた。今は当然のように書いているけれど、気のない言葉に見えて仕方が無かった。
顔を合わせた事も無い人とのメールのやり取りがとてもストレスになると学んだ。ちょっとした言葉尻で自分も相手も不愉快になっているような気がした。

聞き出したり、教えたり

特にアサインされた訳ではないが、アプリチームの要望を聞き出してフレームワークチームの作業に反映させるポジションにいつのまにかなっていた。僕の大学ノートには問題点や要望がギッシリ書き込まれて、フレームワークチームにそれを伝えて対応策を練る。それをまたアプリチームのメンバーへ個別に返答する。
また、新人のメンバーもアプリ開発に入っていたので、「ドーピング」と称してとりあえず今必要な知識を植え付けるようなこともやっていた。もちろん自分のコードも書く。たまに仕事が溜まり過ぎると自分の仕事ばかりやってしまい、他の人の質問に答えられずに、全体が進まない事があった。当時はこのあたりのさじ加減ができていなかったと思う。

大きな失敗

オーバーワークが続いていた事と、チーム内での意思疎通ができていなかった事からかなり痛いデグレード(今まで動いていたものが動かなくなる事。これをやるとかなり恥ずかしいし、みんなが辛い)を起こした。
この前後、意思疎通の齟齬からかなりの手戻りが発生していて、精神的にも肉体的にも納期的にもギリギリの状態に追い込まれていた。酷い実装をされてしまっていた所を徹夜でリファクタリングしたのに「それがちゃんと動く保証がありますか?」という一言で全て元に戻すようなことがあったりして、かなりストレスの高い状態にもなっていた。この頃はどうやって動く事を保証できるのかもわからなかったし、それに時間とコストがかかるという事もよくわかっていなかった。
フレームワークのデグレードはかなり影響が大きく、自動生成後のアプリのコンパイルができない状況。正直かなりショックで、その日は仕事にならないので20時に帰された。これでもかなり早い帰りだ。この晩は本当にショックで、会社に関係ない友人にちょっと泣き言を言った。カッコ悪かった。

これが炎上か

暫くしてプロジェクトチーム全体が客先に行く事になった。今思えばこういう状況は末期に近い状態なんだろうなと思う。

経費の利用ルール等がよくわかっておらず、頻繁に利用したタクシーの料金を経費として提出したら、まわりまわって派遣の会社のボスから「こういうのはダメだよー」とやんわりと注意されたりしていた。
脱線するがこの会社のボスはとても良くできた人で、僕が毎月勝手に月報と思って送っているメールに丁寧に返信をくれていたりしていた。小さな派遣会社だったからできたのかもしれないけれど、本来かける必要の無いコストを割いてくれたのだと思う。僕の送信内容はかなりチープだっただろうに。しかも当時の自分は、明らかにプログラミングについての勉強不足な人が設計したり、酷い実装で放置される事に苛立っていたから、そういう不満をぶつけてしまっていたと思う。申し訳なかったなと今では思っている。

そして覚えているのはボスが電話口で僕に言った言葉。
「仕事ではこういうのがよくある。キミはまだ最初だからビックリするかもしれないが、ここは大事だから踏ん張って頑張れ。」
タクシーの段から推測できるかもしれないが、プロジェクトはかなり苦しくなっていて、実装は進んでいるものの本当に大丈夫なのか?という状態だった。

そもそも、設計書の内容はサーバークライアント型の設計書で書かれているのに、今実装しているのはWEBのアプリケーションだ。無茶にも程がある。「ポップアップのウィンドウを出して、入力させたら閉じて本流に戻す」みたいなギミックを、共通部分だからという名目でフレームワークの一部として実装することになり、JavaScriptと自動生成部分のコードと格闘した。多分この仕事で実装した部分では最も苦しんだところがJavaScriptだ。今JavaScript大好きな僕が、当時は見るのも嫌な位JavaScriptという言語に拒否反応があった。

そうこうしているうちに、フレームワーク自体の根っこにかなり問題がありそうなことが表面化する。所謂コントローラー部分の実装の不備だ。当時のフレームワークのリードプログラマーもこれには対応が難しい様子だった。…時代が進んだからか知識が体系化されたからか判らないけれど、今振り返るとこの問題は初歩の初歩で、今だったらレビューした瞬間に原因も対処法もわかるようなものだ。
当時はまだ様々な事が試行錯誤だったり、ITの経験の不足している人がシステム設計の大切なポジションにいるなんてしょっちゅうだった。

一旦終了

おそらくこのアプリは社内システムとして提供したものだったが、ローンチされなかったろうと思う。きっと会社間で折り合いを付けてひとまず納品はする体は取ったろうが、利用したい品質で無かったのではないかと思う。

客先の大きめの会議室に全員が集められて、お客さんからねぎらいの言葉をかけてもらったシーンを朧げながら今でも思い出せる。開発チームのチーム力、やりきる力を褒めてくれていた(つまりは技術的には…という所なのだろうけど)。

これだけ様々な事が起こると現場の人間関係が荒れている事を想像した人もいるかもしれないが、このプロジェクトは全くそんな事が無く、辛い中でも楽しげに開発している人もいた。客先常駐になった時に協力会社の人から驚かれた程だった。
おそらくフレームワークチームとアプリチームの仲が悪い事を想像していたんだろうと思う。でも、間に入ってクッションになっている僕がそうさせまいと気を配っていた所でもあるし、実際に険悪なムードが生まれなくてホッとしてもいた。
そのチームにいた人のキャラクターもあったろう。今振り返っても温和な人が多かった。

ただ当時の僕は酷く割り切った所があって、これだけ人格者が揃ったところだったのに、あまり深く関わろうとしていない節があった。自分の仕事はプロジェクトをまわす為で短期間の派遣だと思っており、シッカリした人間関係を構築したいと思っていなかったのだろう。今考えるとよろしくない。
派遣の去り際に連絡先を貰ったりもしたのに、結局こちらから連絡する事無く途絶えてしまった人ばかりだった。本当に申し訳ない事をした。

おしまいに

最初のプロジェクトはとても勉強になった。何でも初めてやることから得られる経験はとても大きい。反省点もたくさんあって、たくさん人に迷惑もかけた。僕の知らない所で良きに計らってくれた人もいたのかもしれない。
このプロジェクトはブラッシュアップという名目でもう少し継続するが、一番大事な所は残す事ができたと思うので一旦キーボードから手を離そう。

みんなの読んで良かった!

STORYS.JPは、人生のヒントが得られる ライフストーリー共有プラットホームです。