« 運びゃんせ | トップページ | いい湯だな♪ »

2008.02.05

「ロジカルじゃないですよ」

運びゃんせの記事にの記事に応援クリックしてくださった皆さん、どうもありがとうございます。m(__)m 水をもらいに行くよりも、おいしい水を供給してくれる浄水器を購入するという手もあるかもしれませんね。でも、ダ○エーで水をもらっていると、「浄水器よりも、この機械が我が家にあったらいいのに!」なんて思ってしまうのです。(笑)

 先月末から仕事が忙しくなり、残業の毎日が続いている。現在の作業は、もともと、それほど時間の掛かる作業ではないと見込まれていたのだが、蓋を開けてみると、あれもうまく行かない、これもうまく行かないという状況に陥ってしまっている。

 現在、私が担当しているのは、同じプロジェクトの社員の方が別のプロジェクトに異動することになったために、引き継ぐことになった作業である。プログラムの開発環境はLinuxだ。現在の職場では、主にWindowsアプリケーションの開発に携わって来たものの、もともと私はunix畑の人間なので、開発作業にもviエディタ(注:viエディタとは、昔からunix環境にある標準のエディタ。手が馴染めば、Windowsのメモ帳よりもずっと使い易い)を好んで使用しているくらいだ。だから、Linuxでプログラムの開発を行うことに関しては、それほど抵抗はなかった。しかし、問題はそこにあるのではなく、プログラムを作成するに当たり、依存関係が掴めないことにあった。

 Windowsであれ、Macであれ、Linuxであれ、OS上で動作するプログラムはすべて、特定のプログラム言語で書かれたソースコードを、専用のツールを使って、コンピュータが理解できる機械言語に翻訳している。出来上がったプログラムが動作するときには、ターゲットのシステムが持っているリソースを拝借して動作する場合もあれば、他と依存することなく、単体で動作する場合もある。皆さんも、プログラムを起動させたときに、「○○が足りないため、動作しません」といったようなエラーメッセージを目にしたことがあるだろう。それは、そのプログラムが動作するために必要なものが揃っていないときに表示されるメッセージである。プログラムを動作させる環境に、そのプログラムが動作するのに必要な別のプログラムが足りていなかったり、また、異なるバージョンのファイルがインストールされていたりすると、作成したプログラムが動かないという現象が発生することが良くあるのだ。

 そうした現象に立ち向かうべく、調査を始めたのだが、私の前に作業をしていた社員の方も、以前、別の社員の方からその作業を引き継いだらしく、開発環境を整えるための勝手が良くわからなかったのだと言う。簡単に言えば、前任の社員の方から作業を引き継いだ彼が良くわからないまま開発環境を構築し、半ば手探り状態でプログラムを作成したプログラムに、私が少し手を加えて製品化しようとしているというわけだ。

 そのプログラムを動かしてみると、まったくわけのわからないエラーが表示されてプログラムが異常終了してしまう。私はもうお手上げ状態だった。そこで、上司に相談し、応援を仰いだのだが、上司もLnuxの開発環境には詳しくない。考えた挙句、上司は、問題のありそうな箇所を地道に切り分けて行く方法を選んだ。

 前任の社員の方が作業されていた頃には確かに問題なく動いていたという実績があるプログラムの開発環境を元に、今回、新しく手を加えたものの差分を取り、問題のある箇所を特定して行った。その結果、今回から、新しいライブラリを参照してプログラムを動作させていることがわかった。ライブラリというのは、簡単に言えば、プログラム開発者のために部品化された、特定の機能の詰まった共通のお道具箱のようなものである。例えが極端過ぎるかもしれないが、作成するプログラムをお弁当に例えるとすると、ライブラリはお惣菜に相当する。つまり、自分が作ったおかずと、お惣菜を組み合わせて、一つのお弁当を作るようなイメージだ。

 上司の提案した地道な作業のおかげで、ライブラリのバージョンの違いに問題があることがわかったのだが、そこから先の解決方法につまづいてしまった。地道な作業を厭わない上司は、
「とりあえず、××の環境でプログラムを作ってみてください」
と私に指示して来た。お弁当に例えるなら、同じお惣菜をダ○エーで買うか、ジャ○コで買うかといったところだろうか。つまり、ダ○エーで買ったお惣菜と、自分たちで作ったおかずの相性が良くないので、ジャ○コで買ったお惣菜で試してみようということである。

 しかし、これまでの流れからすると、絶対にダ○エーのお惣菜の組み合わせのほうが正しかったのだ。だから私は、どうしてダ○エーのお惣菜ではうまく行かないのかを調べる必要があると思っていた。しかし上司は、ダ○エーでうまく行かないなら、ジャ○コのお惣菜で試してみましょうと言ったのだ。私にはその指示が、何の論理的な根拠もない指示に思えたので、強く反論した。
「こっちが駄目ならあっちで試そうというのは、納得が行きません。だって、全然ロジカルじゃないですよ。論理的な根拠もなく、手探り状態のままで作業をするのは、私は嫌です。それに、今までの仕事のやり方も、これまでの大きな流れがちゃんとあるのに、急に流れを変えて来ましたよね。そういうやり方って、あとになってから、『あれ、どうなってたっけ?』と訳がわからなくなることが多かったじゃないですか。とにかく、そういう仕事のやり方が嫌なんですよ。ロジカルじゃないのは嫌です」
そう言うと、上司はちょっと震えたような声を出して言った。
「じゃあ、言いますけど、納期がしっかりと決められている状態で、『調べても調べてもわかりませんでした』では済まされないでしょう? 例え納得が行かなくても、今、できることを地道にやって行くしかないじゃないですか。結果を出すことが重要なんですから」

 そう言われると、私は何も言い返せなかった。確かに私たちの仕事は、結果を出さなければならない。例え道が急に折れ曲がって、あとになってから、その軌跡がわからなくなってしまうとしても、今、できることに取り組んで行かなければならない。自分に納得が行かなくても、決められた納期を守らなければならない。そういう意味で、芸術を生み出す作業とは大きく異なるのだと思った。

 結局この問題は、上司と私と、先日まで作業を担当していた社員の方で知恵を出し合うことによって、ようやく一つの道が見えて来た。どうやら、私が調べて口にしたことがヒントになり、先日まで作業を担当していた社員の方が、思い当たる節を調べてくれたらしい。そこで、ようやくロジカルな原因にぶち当たったのだ。そのことを、上司が私に報告してくれたのだが、それを耳にするや否や、私は、
「すごいロジカルですね。すっきりしました」
と言った。上司も、その調査結果には納得していたらしい。三人寄れば文殊の知恵とは言うものの、一人では解決できないことであっても、他の人の持っている知識や調査結果で救われることもあるということだ。

 おかげで、その問題は解決したのだが、またしても新たな問題に直面し、現在も格闘しているところだ。今回の経験は、Linuxの開発環境に慣れていない私たちにとって、回り道をした分、「格闘」という方法でLinux環境の使い勝手をわからせてくれた。まだまだ戦いは続くが、この戦いが終わる頃には、Linuxの開発環境とも、もっと仲良くなっていることだろう。

※皆さん、いつもたくさんの応援クリックをありがとうございます。m(__)m 派遣社員は、「はい、はい」と言いながら、にこにこして、社員の方の言うことをきくほうが、かわいげがあるのかもしれません。でも、現在、私たちがLinuxの開発環境と格闘しているように、格闘した結果、最終的に何かを得られるならば、最初からまっすぐな道を歩むよりも、実りが大きいような気がしています。

さて、今回も記事の中にボタンを埋め込ませていただきますが、どうぞよろしくお願い申し上げます。

哲学・思想[人気blogランキング]に

上記ボタンをクリックしてくださいますと、一日に一回、ランキングのポイントに加算されます。もしも毎日のように「ガンまる日記」を読んでくださっているならば、記事に共感したとき、あるいは応援してもいいと思ったとき、ポチッと押してくださると、大変うれしく思います。

|

« 運びゃんせ | トップページ | いい湯だな♪ »