30年位前の学生の頃、学内ネットワークでの話です。当時、ネットワーク管理を手伝っていた学生がインストール済の PDS のバイナリに strip コマンドをかけたんです。それに対して教授が余計なことをするなと叱っていました。
ええと、これだけだと何のことかさっぱり分かりませんよね。背景も含めて説明します。
まず PDS というのはパブリックドメインソフトウェアのことです。いろいろ違いはあるんですが、大雑把には現在の OSS と似たようなものと思っていいです。当時はパッケージシステムなどありませんから、ソースで流通している PDS を自分たちでビルドしてインストールしていました。これを学内ネットワークの共有サーバに置いていたので、学内のどのマシンからでも PDS を利用できたんですね。
次に strip コマンドです。UNIX でビルドされたバイナリにはデバッグ情報が付加されていることがあります。リンク時のオプションで指定出来ますし、stirp コマンドであとから除去することも出来ます。当時の共有サーバにインストールされた PDS にはこのデバッグ情報が付いたままのモノも多かったんですよ。オプションを指定せずにリンクするとデバッグ情報付加されますからね。デバッグ情報はデバッグ時には必要になりますが、自分たちで開発したわけでもない PDS をデバッガでデバッグすることもそうそうありませんから、このデバッグ情報はディスクの無駄になっていました。そして、当時は共有サーバですらディスク容量が数百MB程度とカツカツの状態。常に容量との戦いを強いられていました。そんななかで全部の PDS に strip コマンドをかければディスクの容量がちょっと空くじゃないか。学生が考えたのはそういうことなんです。
一方、叱った側の教授の言い分。strip してしまうことで、ファイルの管理情報が失われます。具体的には作成日時やファイルオーナーの情報。理想的には PDS をインストールするたびに台帳に記録していけばいいのでしょうが、そんな手間をかけるのも勿体ないです。いつインストールしたかはファイルのタイムスタンプで、誰がインストールしたかはファイルオーナーで管理していたわけです。しかし strip コマンドをかけたことによって、全ての PDS のタイムスタンプが今日に、ファイルオーナーがその学生に変わってしまったわけです。誰がいつインストールしたかという情報は永遠に失われてしまったわけですね。
この一連のやり取りを眺めていた私は、ああなるほど先を見越して物事を考えるというのはこういうことかと学んだのでした。短期的にはディスク容量が空くのはいいことです。でも中長期的にはどうでもいいことです。どうせ年々新しいディスク装置に買い替えてディスク容量は増えていきますから。一方、失われた管理情報は、ずっと必要ないかもしれません。というか、大抵の場合は必要になることはないでしょう。でも必要になることが無いとも言い切れない。将来必要になるかもしれないことに対してしっかりと記録を残しておくことは重要なことなんだなと思ったわけです。
ぐっと時代が下がって現代の話です。仕事でプログラムを組んでいて、既存の処理を調べていて、実装意図がコードから読み取れないことがあります。なんでこういう実装になっているのかわからない。調べるために修正時のコミットログを見てみると「バグを修正」としか書かれてなかったりする。それじゃ実装意図がわかりません。幸いにチケット番号もコミットログに書かれていたのでチケットシステムを見に行ったところ「バグがあったので修正する」としか書かれてなくてがっくりすることがあります。バグを修正した当時、実装者はバグの内容はよくわかっていたことでしょう。でもその理解していた内容をドキュメントに残していなかったため、あとでコードを読んでいる私には実装意図が伝わらなくなっている。つまり、先に起こるかもしれない事態に対して備えをしていなかったわけですね。stirp コマンドをかけてしまった学生と、このバグ修正者は同じ過ちをしたことになります。
多分ですが、仕事ができるが出来ないかって、こういうことなんじゃないかと思うんですよ。当たり前のことをきちっと当たり前にやる。コミットログやチケットにバグの内容や修正意図をしっかりと書くことは手間だとは思います。忙しいしめんどくさいからいいやって思ってしまう。短期的にはその方が仕事が早く終わりますから、それで上司からの評価もあがるかもしれませんね。あいつに仕事をやらせると速いぞと。でも、その陰では手を抜かれたことで迷惑をこうむっている人がいるわけです。その場には居ないんですが、数年後の後任者が。
言い換えるとこれってホウレンソウとか5W1Hだったりもするわけですよ。上司が口をひらけばホウレンソウが大事だ、仕事の基本だって言ってますよね。まさにその通りだと思ううんですが、逆に言えばホウレンソウを着実にこなせる人って実際には結構少ないんじゃないかなと。そして、着実にホウレンソウをこなせる人こそが実は有能な人なんじゃないのかなと思うわけです。
私はITエンジニアを職業にしていますが、仕事の出来るITエンジニアって最新の技術を習得していたり、有名なイベントで登壇した実績があったりといった、華々しいものが取り上げられることが多いと思うんです。もちろんそれも有能の証だとは思いますが、地味で着実なスキルも大事なんじゃないですかね。あんまり評価の対象になりませんけれども。
事務職に対して「誰でもできる仕事のくせに!」というのは年末調整の書類を完璧にできてからにしてくれませんか?というまとめがありましたが、ああなるほどなという気がします。自称「俺は仕事ができる」って人ほど、実際にはデスクは書類の山で依頼された作業をすっぽかしたりしてる事が多いような気がします。まあ単なる印象ですが。また仕事が出来るにもいろんな軸がありますけどね。修羅場にやたらめったら強くて、会社の窮地をあっという間に救ってしまうなんてのも仕事が出来るに入るでしょう。それはそれで私なぞにはない能力なので羨ましいなとは思いますが、自分の同僚には天才的なひらめきはなくてもいいから、着実な事務能力があってくれた方がありがたいです。
(2022/1/15追記)
ちょっと毒吐きますか。大した毒ではありませんが。
「仕事はホウレンソウが大事だ」って言ってる昭和上司。でもその昭和上司自身ってホウレンソウがほんとに出来てるんですかね。もしも出来ているなら、喫煙所コミュニケーション問題とか飲みニケーション問題とか起こらないはずですよね。だって、オフィスできちんと情報共有出来てるはずなんですから。ホウレンソウが出来てないから、なんとなく喫煙所や飲み会で目の前にいる部下にだけ情報を漏らして、その場に居ない部下との情報格差を作ってしまってるわけですよね。だから、ホウレンソウが仕事の基本だというのには同意ですが、ホウレンソウがきちんと出来てる人ってのは実はそんなに多くないんじゃないかと思ってます。
更に毒吐きましょうか。1年前には私はせっせと転職活動をしていたわけですが、とある企業の面接のときに仕事で心がけていることを聞かれたんです。あんまり意識してなかったテーマなんでちょっと考え込んでしまったんですが、そういえばで思い出したのが新卒で入社した時に上司から言われた「嘘をつかないこと」という教えでした。上司曰く、嘘をついてその場を切り抜けようとしても、あとでより問題が大きくなってしまう。嘘をつかずに正直に話すことで問題に早期に対処できるということでした。それはもっともだなと思いましたので、以来私は嘘をつかないように心がけてきました。ところがそれを話したところ面接官の方が「嘘をつかないのは当たり前のことなので、そんなことは心がけにならない」と切って捨てたのです。当然、その会社は不採用になりました。まあ、内定出てもそんな上司のもとで働きたくないので辞退しましたけどね。
嘘をつかないのは当たり前。一見もっともらしいですが、私のつたない社会人経験でも嘘をつく人なんて数えきれないくらい見てきましたよ。あれは幻だったんでしょうか。こんなことを書いてる私だって嘘をついて切り抜けようかと思ったことは何度もあります。だから、嘘をつかないってのは当たり前のことでは無いと私は思っています。嘘をつかないのは当たり前といったあの面接官の方は、よほど人と環境に恵まれてきたのか、もしくは何も見えてないボンクラだったのかのどちらかでないかと思います。
ということで、当たり前のことを当たり前にやるというのは、実は大事な能力ではないかと思うわけです。