多くのソフトウェア技術者の方は、機能追加・バグ修正をする時、関数名や変数名を起点にソースコードのgrep検索(全対象ファイルの中から文字列)をして、影響範囲の調査などを行います。

「ある関数を呼び出している関数はどれか?」

「ある変数を参照更新している関数はどれか?」

影響範囲を調査すること非常に重要です。

頑張る人

ソースコードの調査解析漏れを防ぐために、一所懸命にgrep検索を皆さん行います。 その結果、修正箇所の的確な把握、網羅的なテスト、等を実現できます。

 

しかし、開発規模の増大、ソースコードの複雑化、等により次第に

「あ・・・、このgrep検索は、さっきも実行した・・・」

「ん~、だんだんグチャグチャになって分からなくなってきた・・・」

「しまった!量が多くて、漏れが発生した!」

という現象に陥ります。

悩む人

そして時間が経過し、多忙な業務の中で、ソフトウェア技術者のスキルは上がらず、またモチベーションも下がって行きます。この結果がまたふりだしに戻り、ソースコードの調査・解析漏れに繋がってしまいます。

grepループ

grepは確かに強力な道具です。しかし、上手に使いこなさないと、時間だけ浪費し、さらにソフトウェア技術者としてのスキルアップにも繋がりません。なぜなら、fがgを呼ぶ、gがhを呼ぶ、hがxの値を変更する、、、その情報しか得られないからです。点と点を繋げるだけではなく、そこに別の知見を足し合わせることで、ソフトウェアエンジニアリングのスキルアップに繋がります。その知見の中でも重要な物が「設計図」です。この話は別の機会に・・・。