Think Village

日々思ったこと、気づいたことを推敲もなしに気ままに書き綴っています。

Jenkins導入でContinuous Integrationをきちんと回す

社内でJenkins勉強会がありました。
先日行われた下記勉強会を一部再演してもらいました。jenkins-ug-okinawa.doorkeeper.jp


仕組み化導入の一助として

スライドの中に、

”精神論”よる品質管理から”仕組み”による品質管理へ

とあるように、CIを回すには如何にして仕組み化をするかにかかっていると思います。
開発するのは結局人間ですから、「コードレビューはしよう」と皆で合意形成したとしても実際に運用してみると「レビューしてもらいたいけど忙しそうだからそのままリリースしよう」「どうせ1行の変更なので問題ないだろう、リリースしてしまえ」など少しの綻びから、最終的にはレビューをしなくなる、といったことにまでなってしまいます。
特にデプロイはきちんと仕組み化を図らなければ、ちょっとしたミスが商用サービスへ直接影響を与えかねないので、CI導入による効果が大きい部分でしょう。
コードレビュー必須、デプロイもテストがオールグリーンにならないといけない、など強制的に仕組み化することで、「意志に頼らないCI」が出来上がります。


私はJenkins経験はほとんどなく、ログインしたことくらいで、構築したこともなければ、実際にプロジェクトでもしっかり使ったこともないので本格的にこういうこともしないといけないなと思った次第。なぜ二の足を踏んでいるかというと、PHPつかっていたりJavaScriptつかっていたり、割りとなんでもやってしまっているので、いちいちそれに合わせてJenkinsなどの準備をするのが面倒だなぁと思ってしまっていますが完璧な甘えです。
ただ、こういったCIツールはTDDとかデプロイの仕組みとか、周辺の知識があってこそ本当にいきていくものなので、まずはしっかりテストドリブン思考で開発しなければいけませんね。