truth-kidding-you

ブログをどこで書くかさ迷っていまここ

プログラムコードに人生をみた

バージョン管理を導入する前からあるプログラムの話

このプログラムは10年以上の歳月を経て巨大化していた。基本的にソースの中に修正IDが埋め込まれているので「いつの時代の地殻変動」かはわかるようになっている。もちろんそれが何のために何をしているのかの手がかりは少ない、一つのIDが数百行にコメントされているし、IDからわかるのは紋切り型の20語に満たないキーワードだけだ。

使われないコードがたくさんある。
一目ではどこが生きているコードかわからない。長大な関数を#ifdefと#elseで大胆にかつ大量にわけている。もちろん、すべてがこのルールにのっとってるわけじゃない。使われなくなった関数はそのままそこに存在している。


なぜこんな複雑にわかりづらくして行くのだろうかと考えたところ、あるものに似ていることに気が付いた。

人生だ。捨てられない記憶達。ただただ経験(コード)を蓄積し、時々自分の記憶を忘れて似たようなコードをまた蓄積する。要求があれば膨大に蓄積された経験から何かの解決パターンを見つけて回答することができる。

あなたは何ができますか?と聞かれると様々なことができるという。学習して成長できるという。このプログラムも、様々なプロジェクトに関わり経験を自身の内部に溜め込んできたのだろう。


会社には様々なスクラッチブログラムが転がっている。それは大抵は特定の部署の資産ということになっていて、実質それぞれ1,2名の長いこと付き合ってる人に強く依存してることがある。

プログラムはその人達の会社人生の集大成でありナレッジデータベースでもある。コードそのものがリボジトリでありデータベースであるということだ。

私のこの開発作業は、プログラムに手をいれているのではなく、リポジトリを直接編集しているようなものなんだ。そう思ったら途端に寒気がしてきた。

心してかかる次第。