システム開発をしていると、必ず遭遇するのがバグでありそれを修正していくことにかなりの神経を使います。
バグがある状態で納品すれば大変なことになるからです。
バグ修正ではどの状況で発生しているのかを考慮して対策を考えていきますが、そこでふと思い出したのが以前自宅で発生した水漏れについてです。
どこで漏れ出ているかを状況を見て瞬時に判断し、修理をしていく様子はまるでプログラマーがバグを修正していくかのようでした。
以前使った水道業者と街でばったりあって雑談
ある日、以前水漏れ修理でお世話になった水道業者の方と街でばったりお会いしました。
その後の調子はどうですかと尋ねられ、何もなく順調ですという話をしていたところ、お互いの仕事の話になりました。
先日バグの修正でかなりの時間を取られたという話をしていると相手の水道業者の方が興味を持ったようで色々聞き出そうとしてきます。
どのように修正をしていくのかを聞かれ、シンプルなコードにして変更した部分をわかりやすくすることを心がけていると返すと相手の人はかなり共感されていたのが印象的です。
水道修理の方は数多くの水漏れ案件を見てきたそうですが、自分たちで解決しようとしてめちゃくちゃな方法で水を止めたけど結局は耐えきれなくて修理依頼をしてきたケースなどがあってそうしたケースは大変だったという話をしていただきました。
修理バグ対策のコードも作った本人ですらわからなくなることがあります。
そのため、わかりやすいコードにして自分が見てもすぐに理解できるようにしました。
水道修理とバグ修正は似ているかも…!
これら一連の話を聞いていると水道修理とバグ修正は案外似ているのではないかと感じました。
シンプルなやり方が一番いいというのもそうですが、うまい方の作業を見て技を盗んでいく点でも共通しています。
システムが動くのであればめちゃくちゃなコードでいいわけではありません。
そうしたものがバグにつながってしまうからです。
水道修理でも、水漏れを止めれば何をしてもいいのではなく水漏れなんかなかったように修理をすることが求められます。
さらに重要なのは、どのような形で修理をしたのかを誰が見ても明らかな状態にすることです。
プログラムの際にはドキュメントを残すことで変更がしやすくなります。
水道修理でも、前にもあった場合にはこういうやり方で水漏れを止めたというのがわかるようにしておけば対策が立てやすくなります。
何事もシンプルに作業を進めていくことが大事であり、ただ動かせばいいただ止めればいいという感覚ではいけないことに改めて気付かされました。