あぁ今日も終電を逃してしまった。
しょうがない。いつものように、プロジェクトの進行状況を確認して、問題がありそうなところをレビューしておこうかな。
僕が務める会社は、ソフトウェアの開発を行っている。小さな地方都市の、小さな小さな会社ですが、幸いな事に仕事が切れる事がない。人手不足とまでは言わないけど、待機工数が発生しないくらいには仕事が充実している。こんな事を言うと自慢に聞こえかもしれないが、僕が開発した”開発ライブラリ”が売れている。
音声を使って操作コマンド入力を可能にする開発ライブラリだ。各種デバイスで、似たような事ができるようになっているが、それらとは認識率が違う上に、デバイスによる差異をなくしたラッパーまで用意している。一回ライブラリの使い方を覚えれば、違うデバイスでも同じ使い方ができるのだ。僕が作ったのは、それだけではなく、使っている人の声が、聞いている人にどう聞こえるのか?それを、108の感情から割り出すようにしている。感情判定ができるようになっているのだ。急いで聞こえる時には、手順を数個飛ばすようなアプリケーションの構築ができるようになる。画期的なのは、そこではなく、ライブラリが自動的に組み込んだアプリケーションの機能を学習して、最適化を行う部分にある。僕の最高傑作と言っても過言ではない。
そんな開発ライブラリだが、単体での販売はそれほど多くない。組み込みが容易なために、値段設定は高くなっている。そのために、ライブラリの一部機能だけを使いたい顧客からのカスタマイズ案件が多い。社内要因は、そのカスタマイズや、ラッパーの開発が主な業務になっている。
僕は、深夜の暇つぶしを始める事にした。
社内のルールで、帰宅時には全ソースをコミットする事が義務付けられている。いつ倒れてもおかしくない職場(けしてブラックではない)なので、最新版のソースは、ローカル環境と社内サーバにしっかり保存する事になっている。
文章(仕様書や見積もりや発注書や議事録)は、ローカルには置かないで、社内サーバにだけ保存するようになっている。これらの設定を作ったのは、数年前に他界してしまった。真辺という技術者だ。僕が、頼んで来て構築してもらった。ネットワークから、開発まで一人でできる奴で、都会の会社で火消し部隊を率いていたようだ。
さて、最新版のソースを取得して・・・。
「増田の所、コンパイルエラーが出ているじゃぁないか・・・。ぉぃおい、このコーディングはなんだ・・・会議中に、奴は何を聞いていたんだ」
コミットするソースは、最低限コンパイルエラーが出ないようにする事と義務付けている。
そうしないと、他の人が待機してしまう可能性があるためだ。コンパイルエラーを回避する方法はいくらでもある。これも、真辺の置き土産だが、コンパイルチェックを行った結果を読み込ませると、ソースコードの修正を行ってくれるツールがある。サーバに仕込んでいるので、一通りこれで、コンパイルエラーを回避しておくことにする。最終コミット者に、修正内容がエラー内容と修正前のコードと共にメールで伝えられるというおまけ付きだ。
「恵子ちゃんの所も酷いなぁコンパイル以前の問題だなぁ、ラッパークラスを作ればいいのに、そうすればNULL判定だけでこの部分のソースが綺麗になるし、わかりやすい」
「中村部長も・・・これじゃぁデータに依存しちゃう。データ依存すると、開発コストが嵩むって自分で言っていたのに・・・仕様がわからないから指摘だけだな」
僕の深夜の時間つぶしはこうして進んでいく。始発が動き出す頃には、一通り僕のライブラリを使っているプロジェクトに対してのレビューが完了する。時計を確認すると、既に7時を回っていた。後2時間もすれば、皆も出社して来るだろう、僕は何時ものように、そろそろ帰ろう。
ホワイトボードには、何ヶ月か前に書いた、”午後出社”の文字が残されている。まぁ無くても、僕が午後にならないと出社しないのは皆知っているから問題ない。こういう所は、小さな会社で助かっている。大きな会社ではきっとこうは行かないだろう。
さて、パソコンも落としたし、コミットされたのも確認した。
さて帰ろう。
--
「恵子ちゃん。結合してみようかぁ」
「は~い。わかりました。コンパイルは通ると思うので・・・」
「いいよいいよ、納期までまだ時間があるから、インターフェースが正しいかだけ確認しよ」
「わかりました」
「部長。ライブラリも組み込むので、キーを発行してください」
「おぉわかった。それにしても、田中の奴も面倒な事するよなぁ都度キーを生成しないとダメなんて・・・ほら、発行したぞ」
「ありがとうございます。部長それを言ったら、そのおかげでライブラリを利用する事が出来る会社を限定できているんですから」
「あぁわかっている。わかっている。ほら、早く結合しろよ」
「ん?エラーが出るなぁ。ライブラリの組み込みの所だなぁ・・・部長、何か変えました?」
「バカ、俺に弄れるはずないだろう。どうせ、インターフェース関連の問題だろう、ドキュメントみて調べておけよ、ちょっと客先に行ってくる。キーが必要になったら、自分で発行していいからな」
「わかりました。戻りは」
「15時位になると思う。もしかしたら、お客さんとそのまま食事に行くかも知れない。そうなったら連絡する」
「わかりました。誰かに聞かれたら、飲みに行くから直帰しましたって答えておきます」
・・・・昼休みも終わって、午後の業務が開始された
「増田さん。わかりました。部長、ライブラリをラッピングする API を作っていたみたいです。それを入れてみたら、うまくいきました」
「あぁそうか、この前の会議で、ラッピング API を使うようにいわれて、そっちに切り替えたんだったな」
「よしテスト始めるか・・・」
「おっとその前に、今のソースをコミットして置くか・・・」
「よしっと」
「恵子ちゃんは、UI 周りのテストを初めて、今回は弱視の人向けになるから、そのつもりでテストをやってね」
「わかりました。テスト仕様書はどうしましょう?」
「あぁ・・・まだいいかな。でも、ひな形が有ったはずだから、メモだけを作っておいてね」
「増田さん。今回は、テスト仕様書の納品はないですよね?」
「うん。現物納品だよ」
「それなら、画面ショットとかいらないですよね?」
「いらない。いらない。テスト項目だけ先に作って、後でレビューしよう」
「了解です。3倍でいいですか?」
「そこまでいらないかな。倍でいいよ」
「わかりました!」
どうやらテストを始めるようだ。僕の出番はしばらくはなさそうだな。
テスト仕様書も作るようになったし、大分業務改善ができているよね。でも、増田。倍は少ないと思うけどな。ライブラリを使っているからって、UI周りは新規開発なんだから、コードの3倍くらいはテストしたほうがいいとは思うけどな。まぁプロジェクトリーダの増田が決めた事だから、それでいいのかもしれないな。
昨晩直した所も無事コミットされたし、さて、ライブラリの拡張でもやろうかなぁそれとも、ラッピング API の方を充実させようか。時間はまだあるから、手つかずになっている。ライブラリの拡張をやってみようか。
・・・・
「よし今日の業務も無事終わり!」
「そうですね」
「恵子ちゃん。時間も早いから、ちょっと飯でもいかない?」
「ゴメンなさい。今日デートなの」
「ぉぃ。またかぁ」
「そ」
「まぁしょうがないな」
電話がなる音がした。
「はい。はい。そうですね。解りました」
「部長?」
「そ、客から要望が出てきて、バカな社長が、明日にも見積もりを出しますって言ったらしく、今から見積書の作成をやるんだって」
「部長戻ってくるんだ」
「らしいね。恵子ちゃんは帰っていいよ。いかなきゃぁならない所あるんでしょ」
「すみません。今日が、丁度一周忌ですので・・・逢いにいかなくちゃ」
「あぁそうだね。そうした方がいいね。その後で、僕とデートしてね」
「気が向いたら考えます」
「お疲れさま」
「お先に失礼します。部長によろしく言っておいてください。増田さん。私なんかをデートに誘う前に、ナースの奥様に何か買って帰ったほうがいいんじゃないのですか?」
・・・・
「増田君どうだい。出来そうかな」
「出来るとは言いませんが、できる限りの事をします。今日、遅くまでかかりそうですよ。最低でも検証コートを書いてから、流してみないとわからないですよ」
「わかった、ビルの管理会社には、私の方から申請を出しておく」
「よろしくお願いします。このビルで一人は嫌だなぁ」
「まぁそう言うな、後2ヶ月もすれば、新しい所に引っ越しするからな」
「え!?本決まりなんですか?」
「社長が今日決断したよ、それも逢って、その見積もりが重要な意味を持って来るんだ」
「え・・・あぁ・・・この見積もりの提出先が、引っ越し先なんですね。敷金をシステム開発費で減額するんですね」
「まぁ簡単に言ってしまえばそう言う事だな」
「わかりました、全力を尽くします」
「よろしく頼む。私も残るから・・・な」
「いや、邪魔なので帰ってください」
「ぉぃおい。邪魔は無いだろう、『お疲れのようですから、部長は引き上げてください』位の事は言って欲しいなぁ」
「何をいまさら・・・。いや本当に大丈夫ですから、居られても、プレッシャーにしかならないから、帰ってください」
「わかった、わかった。それじゃぁよろしく頼むな。お先」
「お疲れさま。部長、私、明日は午後から来ますね」
「おぉわかった。それじゃ」
そう言えば、今日、嫁も遅くなるって連絡が来たな。
数年前から目覚めなかった、高校生が目を覚ましたとかで、対応で忙しくなるとか言っていたな。
どうしろって言うんだ、これじゃぁ検証コードが動かないぞ。ラッピング API を使って・・・ぉ?
何だ、このオーバーライド。知らないぞ、誰かが作ったのか?
ぉぉこれを使えば・・・出来そうだな。よし作ってみるか・・・・。
23時
出来た、ラッピング API のおかげだ・・・ん? これって、コミットされてないのか? サーバにだけソースが上がっていたのか?
う~ん。う~ん。まぁいいかぁ他に影響しそうにないし、この見積もりでは必須の機能だから、コミットしちゃえ!
さて見積もりの作成を行うか・・・。あぁそうかぁ、掃除の時間か
・・・・
「あれぇおばちゃん達って夜の掃除もやっているの?」
「何いってんだか、夜もこのメンバーだよ、一年前からずぅーとね。」
「一年前からかぁ・・・。」
「そうだね。発見したのも、おばちゃん達だったんだもんね」
「そうだよ、驚いたからね。」
「そうそう、増田さん。時々何だけど、パソコンの電源が付いたままになって居るけど、消してもいいの?」
「え、サーバ室の奴じゃぁ無くて・・・?」
「違う違う。ほら、今日も付いて居るでしょ。ディスプレイは付いてないけど、パソコン本体は動いている音するでしょ」
「夜だと静かだから、音で気がついたんだけどね」
「え!?だって、あのパソコン・・・・。田中さんが最後に使っていた物で、電源が故障して入らないはず・・・だよ」
「そうなの?だって、動いて居るでしょ。ほら音もするしね」
増田は、パソコンに駆け寄って確認した、確かに電源が入っているし、HDD の駆動音もする。ファンの音も確かに聞こえてくる。増田は、おそるおそるディスプレイに電源を入れてみた。起動していない。ケーブルが繋がって居ないのではないかと思い。確認するが、問題ない・ディスプレイを他のパソコンに繋いでみたが、問題なく使える。
そして、増田は決定的な事に気がついてしまった。居るはずが無い田中の椅子が暖かいのだ、そして、キーボード・マウスも微妙に暖かいのだ・・・・・・・・。
「あぁ田中さん仕事熱心だったからね」
掃除のおばちゃんは、そう言ってその場を離れていった。
心からの恐怖と、そして感情レベルで納得している自分が居る。恵子ちゃんの婚約者であった田中さんは、1年前の昨日、ここで倒れていたのが発見され、病院に搬送された。医師ができたのは、田中さんの死亡を確認する事だけだった。
掃除のおばちゃんが最後に言ったセリフ「田中さん仕事熱心だったからね」が、頭から離れないでいる。
会社の引っ越しも決まった。
しかし、恵子ちゃんの隣の席には、電源が入らないはずのパソコンとディスプレイ。誰も使う事がない、マウスとキーボード。
それから、田中さんが一番使っていた、コーヒーメーカが置かれている。会社も規模が大きくなって、一時的に机が足りなくなったが、田中さんの席だけは残されている。
今でも、田中さんの席は誰かが使っている様に綺麗にキープされ、深夜にパソコンが起動されている。
fin
しょうがない。いつものように、プロジェクトの進行状況を確認して、問題がありそうなところをレビューしておこうかな。
僕が務める会社は、ソフトウェアの開発を行っている。小さな地方都市の、小さな小さな会社ですが、幸いな事に仕事が切れる事がない。人手不足とまでは言わないけど、待機工数が発生しないくらいには仕事が充実している。こんな事を言うと自慢に聞こえかもしれないが、僕が開発した”開発ライブラリ”が売れている。
音声を使って操作コマンド入力を可能にする開発ライブラリだ。各種デバイスで、似たような事ができるようになっているが、それらとは認識率が違う上に、デバイスによる差異をなくしたラッパーまで用意している。一回ライブラリの使い方を覚えれば、違うデバイスでも同じ使い方ができるのだ。僕が作ったのは、それだけではなく、使っている人の声が、聞いている人にどう聞こえるのか?それを、108の感情から割り出すようにしている。感情判定ができるようになっているのだ。急いで聞こえる時には、手順を数個飛ばすようなアプリケーションの構築ができるようになる。画期的なのは、そこではなく、ライブラリが自動的に組み込んだアプリケーションの機能を学習して、最適化を行う部分にある。僕の最高傑作と言っても過言ではない。
そんな開発ライブラリだが、単体での販売はそれほど多くない。組み込みが容易なために、値段設定は高くなっている。そのために、ライブラリの一部機能だけを使いたい顧客からのカスタマイズ案件が多い。社内要因は、そのカスタマイズや、ラッパーの開発が主な業務になっている。
僕は、深夜の暇つぶしを始める事にした。
社内のルールで、帰宅時には全ソースをコミットする事が義務付けられている。いつ倒れてもおかしくない職場(けしてブラックではない)なので、最新版のソースは、ローカル環境と社内サーバにしっかり保存する事になっている。
文章(仕様書や見積もりや発注書や議事録)は、ローカルには置かないで、社内サーバにだけ保存するようになっている。これらの設定を作ったのは、数年前に他界してしまった。真辺という技術者だ。僕が、頼んで来て構築してもらった。ネットワークから、開発まで一人でできる奴で、都会の会社で火消し部隊を率いていたようだ。
さて、最新版のソースを取得して・・・。
「増田の所、コンパイルエラーが出ているじゃぁないか・・・。ぉぃおい、このコーディングはなんだ・・・会議中に、奴は何を聞いていたんだ」
コミットするソースは、最低限コンパイルエラーが出ないようにする事と義務付けている。
そうしないと、他の人が待機してしまう可能性があるためだ。コンパイルエラーを回避する方法はいくらでもある。これも、真辺の置き土産だが、コンパイルチェックを行った結果を読み込ませると、ソースコードの修正を行ってくれるツールがある。サーバに仕込んでいるので、一通りこれで、コンパイルエラーを回避しておくことにする。最終コミット者に、修正内容がエラー内容と修正前のコードと共にメールで伝えられるというおまけ付きだ。
「恵子ちゃんの所も酷いなぁコンパイル以前の問題だなぁ、ラッパークラスを作ればいいのに、そうすればNULL判定だけでこの部分のソースが綺麗になるし、わかりやすい」
「中村部長も・・・これじゃぁデータに依存しちゃう。データ依存すると、開発コストが嵩むって自分で言っていたのに・・・仕様がわからないから指摘だけだな」
僕の深夜の時間つぶしはこうして進んでいく。始発が動き出す頃には、一通り僕のライブラリを使っているプロジェクトに対してのレビューが完了する。時計を確認すると、既に7時を回っていた。後2時間もすれば、皆も出社して来るだろう、僕は何時ものように、そろそろ帰ろう。
ホワイトボードには、何ヶ月か前に書いた、”午後出社”の文字が残されている。まぁ無くても、僕が午後にならないと出社しないのは皆知っているから問題ない。こういう所は、小さな会社で助かっている。大きな会社ではきっとこうは行かないだろう。
さて、パソコンも落としたし、コミットされたのも確認した。
さて帰ろう。
--
「恵子ちゃん。結合してみようかぁ」
「は~い。わかりました。コンパイルは通ると思うので・・・」
「いいよいいよ、納期までまだ時間があるから、インターフェースが正しいかだけ確認しよ」
「わかりました」
「部長。ライブラリも組み込むので、キーを発行してください」
「おぉわかった。それにしても、田中の奴も面倒な事するよなぁ都度キーを生成しないとダメなんて・・・ほら、発行したぞ」
「ありがとうございます。部長それを言ったら、そのおかげでライブラリを利用する事が出来る会社を限定できているんですから」
「あぁわかっている。わかっている。ほら、早く結合しろよ」
「ん?エラーが出るなぁ。ライブラリの組み込みの所だなぁ・・・部長、何か変えました?」
「バカ、俺に弄れるはずないだろう。どうせ、インターフェース関連の問題だろう、ドキュメントみて調べておけよ、ちょっと客先に行ってくる。キーが必要になったら、自分で発行していいからな」
「わかりました。戻りは」
「15時位になると思う。もしかしたら、お客さんとそのまま食事に行くかも知れない。そうなったら連絡する」
「わかりました。誰かに聞かれたら、飲みに行くから直帰しましたって答えておきます」
・・・・昼休みも終わって、午後の業務が開始された
「増田さん。わかりました。部長、ライブラリをラッピングする API を作っていたみたいです。それを入れてみたら、うまくいきました」
「あぁそうか、この前の会議で、ラッピング API を使うようにいわれて、そっちに切り替えたんだったな」
「よしテスト始めるか・・・」
「おっとその前に、今のソースをコミットして置くか・・・」
「よしっと」
「恵子ちゃんは、UI 周りのテストを初めて、今回は弱視の人向けになるから、そのつもりでテストをやってね」
「わかりました。テスト仕様書はどうしましょう?」
「あぁ・・・まだいいかな。でも、ひな形が有ったはずだから、メモだけを作っておいてね」
「増田さん。今回は、テスト仕様書の納品はないですよね?」
「うん。現物納品だよ」
「それなら、画面ショットとかいらないですよね?」
「いらない。いらない。テスト項目だけ先に作って、後でレビューしよう」
「了解です。3倍でいいですか?」
「そこまでいらないかな。倍でいいよ」
「わかりました!」
どうやらテストを始めるようだ。僕の出番はしばらくはなさそうだな。
テスト仕様書も作るようになったし、大分業務改善ができているよね。でも、増田。倍は少ないと思うけどな。ライブラリを使っているからって、UI周りは新規開発なんだから、コードの3倍くらいはテストしたほうがいいとは思うけどな。まぁプロジェクトリーダの増田が決めた事だから、それでいいのかもしれないな。
昨晩直した所も無事コミットされたし、さて、ライブラリの拡張でもやろうかなぁそれとも、ラッピング API の方を充実させようか。時間はまだあるから、手つかずになっている。ライブラリの拡張をやってみようか。
・・・・
「よし今日の業務も無事終わり!」
「そうですね」
「恵子ちゃん。時間も早いから、ちょっと飯でもいかない?」
「ゴメンなさい。今日デートなの」
「ぉぃ。またかぁ」
「そ」
「まぁしょうがないな」
電話がなる音がした。
「はい。はい。そうですね。解りました」
「部長?」
「そ、客から要望が出てきて、バカな社長が、明日にも見積もりを出しますって言ったらしく、今から見積書の作成をやるんだって」
「部長戻ってくるんだ」
「らしいね。恵子ちゃんは帰っていいよ。いかなきゃぁならない所あるんでしょ」
「すみません。今日が、丁度一周忌ですので・・・逢いにいかなくちゃ」
「あぁそうだね。そうした方がいいね。その後で、僕とデートしてね」
「気が向いたら考えます」
「お疲れさま」
「お先に失礼します。部長によろしく言っておいてください。増田さん。私なんかをデートに誘う前に、ナースの奥様に何か買って帰ったほうがいいんじゃないのですか?」
・・・・
「増田君どうだい。出来そうかな」
「出来るとは言いませんが、できる限りの事をします。今日、遅くまでかかりそうですよ。最低でも検証コートを書いてから、流してみないとわからないですよ」
「わかった、ビルの管理会社には、私の方から申請を出しておく」
「よろしくお願いします。このビルで一人は嫌だなぁ」
「まぁそう言うな、後2ヶ月もすれば、新しい所に引っ越しするからな」
「え!?本決まりなんですか?」
「社長が今日決断したよ、それも逢って、その見積もりが重要な意味を持って来るんだ」
「え・・・あぁ・・・この見積もりの提出先が、引っ越し先なんですね。敷金をシステム開発費で減額するんですね」
「まぁ簡単に言ってしまえばそう言う事だな」
「わかりました、全力を尽くします」
「よろしく頼む。私も残るから・・・な」
「いや、邪魔なので帰ってください」
「ぉぃおい。邪魔は無いだろう、『お疲れのようですから、部長は引き上げてください』位の事は言って欲しいなぁ」
「何をいまさら・・・。いや本当に大丈夫ですから、居られても、プレッシャーにしかならないから、帰ってください」
「わかった、わかった。それじゃぁよろしく頼むな。お先」
「お疲れさま。部長、私、明日は午後から来ますね」
「おぉわかった。それじゃ」
そう言えば、今日、嫁も遅くなるって連絡が来たな。
数年前から目覚めなかった、高校生が目を覚ましたとかで、対応で忙しくなるとか言っていたな。
どうしろって言うんだ、これじゃぁ検証コードが動かないぞ。ラッピング API を使って・・・ぉ?
何だ、このオーバーライド。知らないぞ、誰かが作ったのか?
ぉぉこれを使えば・・・出来そうだな。よし作ってみるか・・・・。
23時
出来た、ラッピング API のおかげだ・・・ん? これって、コミットされてないのか? サーバにだけソースが上がっていたのか?
う~ん。う~ん。まぁいいかぁ他に影響しそうにないし、この見積もりでは必須の機能だから、コミットしちゃえ!
さて見積もりの作成を行うか・・・。あぁそうかぁ、掃除の時間か
・・・・
「あれぇおばちゃん達って夜の掃除もやっているの?」
「何いってんだか、夜もこのメンバーだよ、一年前からずぅーとね。」
「一年前からかぁ・・・。」
「そうだね。発見したのも、おばちゃん達だったんだもんね」
「そうだよ、驚いたからね。」
「そうそう、増田さん。時々何だけど、パソコンの電源が付いたままになって居るけど、消してもいいの?」
「え、サーバ室の奴じゃぁ無くて・・・?」
「違う違う。ほら、今日も付いて居るでしょ。ディスプレイは付いてないけど、パソコン本体は動いている音するでしょ」
「夜だと静かだから、音で気がついたんだけどね」
「え!?だって、あのパソコン・・・・。田中さんが最後に使っていた物で、電源が故障して入らないはず・・・だよ」
「そうなの?だって、動いて居るでしょ。ほら音もするしね」
増田は、パソコンに駆け寄って確認した、確かに電源が入っているし、HDD の駆動音もする。ファンの音も確かに聞こえてくる。増田は、おそるおそるディスプレイに電源を入れてみた。起動していない。ケーブルが繋がって居ないのではないかと思い。確認するが、問題ない・ディスプレイを他のパソコンに繋いでみたが、問題なく使える。
そして、増田は決定的な事に気がついてしまった。居るはずが無い田中の椅子が暖かいのだ、そして、キーボード・マウスも微妙に暖かいのだ・・・・・・・・。
「あぁ田中さん仕事熱心だったからね」
掃除のおばちゃんは、そう言ってその場を離れていった。
心からの恐怖と、そして感情レベルで納得している自分が居る。恵子ちゃんの婚約者であった田中さんは、1年前の昨日、ここで倒れていたのが発見され、病院に搬送された。医師ができたのは、田中さんの死亡を確認する事だけだった。
掃除のおばちゃんが最後に言ったセリフ「田中さん仕事熱心だったからね」が、頭から離れないでいる。
会社の引っ越しも決まった。
しかし、恵子ちゃんの隣の席には、電源が入らないはずのパソコンとディスプレイ。誰も使う事がない、マウスとキーボード。
それから、田中さんが一番使っていた、コーヒーメーカが置かれている。会社も規模が大きくなって、一時的に机が足りなくなったが、田中さんの席だけは残されている。
今でも、田中さんの席は誰かが使っている様に綺麗にキープされ、深夜にパソコンが起動されている。
fin