こんにちは、ナカムラです。
2月に入ったにも関わらず昨年末の話を持ち出して恐縮なのですが、長めの休みを利用して自宅の大掃除をしていました。
…が、片付けるものが多くてなかなか捗らず
日頃から整理整頓してると楽なんでしょうけど、ついつい、
散らかってから片付ける → 手間取る → 嫌気がさす → 中途半端で終わる…
という悪循環になってしまってます
そういえば最近読んだ本に、次のような事が書いてありました。
矛盾しているようだが、つらい作業をこなすコツは、頻繁に行う事だ。
ハイ。まさにその通りです…。
この考え方、色んな所に応用できるんですよね。プログラム開発の現場にも。
というか、この言葉が書いてあった本こそ、まさにプログラム開発者向けの本なんです
今回はこの本の紹介を。

ここで言うインテグレーションとは、多くの部品(モジュール)から成るプログラムを1つに統合し、正常動作させる過程を指します。
自分が作ったプログラムをちゃんと動作確認したにも関わらず、他の人が行ったプログラムの変更と組み合わせることにより、予期せぬ不具合が発生してしまう…なんて経験ありませんか?
あるいは、Debugビルド構成ではビルドできてるけど、Releaseビルド構成ではコンパイルエラーになっている事を気付かずに、ファイルをアップしてしまうであるとか。
プログラムの巨大化、複雑化、開発人員の増大により、そういったケースは増えていきます
これらの問題が気付かれないまま長い間放置され、他の不具合やエラーが積み重なった上で発見されると、その不具合を調査・修正するのに大きなコストが掛かります(一説には、そのコストには10倍の差があるとか
)
この本では、そういったエラーや不具合の存在を自動的に確認する事の大切さと、具体的な導入方法を紹介しています。
またエラーや不具合以外にも、次のようなチェックを行う事例なども解説されています。
・ちゃんとビルドできるか?
・正常動作するか?
・コーディングルールが守られているか?
・重複してるコードは無いか?
・複雑なコードになってないか?
これらを自動的に行い、プログラム全体が健康な状態であるかどうかを日々確認しながら作業することは、プログラマの精神的な健康にも良いことだと思いませんか?
そういえば、近々健康診断があるので、体重を気にし始めています
毎年、健康診断の間際になって体重を気にするなんて事は止めて、毎日体重をチェックを行うようにするのも、継続的インテグレーションの一種かもしれませんね