他人のソースを修正するということ

今日の
プロジェクトのシマは
険悪な雰囲気に包まれていた。


黙々とキーを叩く音だけが響いていた。
視線はモニターだけに注がれていた。


きっかけは些細なことだった。


AさんがBさんのソースを修正してコミットしていたらしい。
実行結果には変化がなく、
より実行効率がよい方法に書き換えたんだと話していた。


バージョン管理の履歴を見ると、
インデントやソースのフォーマットも
すっかり直してあるようだ。


ご丁寧に、修正した後の実装だと高速化できる理由まで
ソース中のコメントに添えてある。


そのソースはストアドプロシージャで実装された、
やや複雑な機能だった。
ストアドには厳密なコーディング規約が無かったので、
担当者によって多少、インデントのつけ方が異なったりする部分はあった。


直すにしても、なんで勝手に直したのだろう。
直すなら直すで、一言いえばよかったはずだ。


そのとき、すごく昔の出来事を思い出した。


あれは小学生のとき。
図画工作の授業で、それぞれが粘土で人形を作っていた。

私は教室を歩いて、それぞれが作った粘土人形を見てまわっていた。
ある席のクラスメイトが作っている粘土人形をみて、
ひどく不細工な人形だなと思った。

私はそのクラスメイトをからかうつもりで、その人形を指でぐいっと押した。
人形は、いびつに形状を変えた。

その瞬間、
クラスメイトはびっくりした顔をしたが、
すぐにくしゃくしゃの顔に表情を変え、
泣きながら突進してきた。

そのあとのことはよく覚えていない。
めちゃくちゃに泣くクラスメイトにもみくしゃにされながら、
必死に謝った記憶がある。


クラスメイトが作った粘土細工は、ひとつの作品であり、
私の価値観に照らし合わせれば、ひどく不恰好に思える形をしていたとしても、
ひとつひとつの造形には、意味があったのだ。


絵や小説、音楽のように
分かりやすいものではないが、
ソースコード
作った人の思いが込められている
作品だと思う。


それを断りもなく修正するのは、
(たとえより良くするためであっても)
他人に自分の描いた絵画を、上から塗りつぶされるようなもので、
気分のいいものではない。


一度書いたソースコードを全部捨てて書き直すことは、
人間の心理上なかなか受け入れずらいものだ。
一度ソースを書いてしまえば、
そのソースにどうしても引きずられる。


だから、全面的に書き直すなんてことがないように、
事前に十分に検討し、設計書を起こし、レビューを行ってから
コードを書くべきなのだ。
それでも、他人のソースを修正する必要が出てきたときは、
一言伝えてから、最小限に直すべきだろう。