継続的デリバリー 読書会 参加してきた

4月21日に行われた継続的デリバリー読書会参加してきました。

書籍は事前に1章と2章の初めまで読みましたが、印象としてはとても分かりやすく書かれている印象を持ちました。原著が素晴らしいのでしょうね。加えて、訳もとても読みやすいように訳されています。

読書会の方式

  • アイスブレイク(テーブル毎に話し合い)
    1. 自己紹介と最近の楽しみは何か?
    2. この継続的デリバリー勉強会に参加したのはなぜか?
  • 1章をみんなで輪読(但し、大項目のみ)
  • 1章に記述されていた内容について話し合い、用紙に付箋紙でまとめる
  • 2章をみんなで輪読(但し、大項目のみ)
  • 2章に記述されていた内容について話し合い、用紙に付箋紙でまとめる

1章について ソフトウェアデリバリーの問題

まずは導入部分から、この書籍の説明となっているデプロイメントパイプラインについて、説明がありました。簡単に言うと、アプリケーションのビルド・デプロイ・テスト・リリースといったプロセスを自動化する実装の事です。続いて、リリースに良くあるアンチパターンについて書かれています。私たちのテーブル(私@nightmare_timと@irofさん、@gim_kondoさん)でもこの辺が一番議論されました。それに対してどうしたらいいか?の観点から、自動化されたデプロイメントの話や、目標とすべきサイクルタイムの極小化こまめなリリース、それに品質をプラスすることが書かれていました。
私たちのまとめた結果は写真の様になりました。マインドマップ風に中央から広がって行く形でまとめています。やっぱりまず一番にくるのは、「手作業」です。私たちの話し合った中では、手作業によるデプロイ等の作業はやはりある様です。書籍の様に全て自動化されたリリースなんてとてもできていない状況です。(だからこそこのような書籍が売れるのですが)私が印象に残っているのは、「できないという思い込み」「職人芸」「デプロイ等に対する品質意識の低さ」です。また、このようなリリースの自動化に向けて動いた際に出てくる抵抗勢力とどう戦うか?も議論にあがりました。

2章について 構成管理

ここでは主に、バージョン管理システムについて記述されていました。どのようなバージョン管理システムが現状存在し、どのような場面で使用するのか。また、「依存関係を解決するスクリプト「設定情報を示す設定ファイル」、はたまた「動作対象のOSの設定条件」なども管理対象の決定している様です。
私たちのテーブルの議論結果は写真のようになりました。前章の時と同じくマインドマップ形式でまとめました。バージョン管理システムによる管理対象は、「実行環境」「開発環境」「依存関係」「テストデータや設定データ」などが上げられました。書籍にはOSのことまで明記されていましたが、さすがにOS等々まるごとバージョン管理!なんて容量的に無理だから、同じ環境を構築できるスクリプトのような物を管理すべきと個人的には考えていました。

LT 「継続的デリバリー読書会によせて」

少し事前に読んでいたので、感じたことをLT資料にまとめて、少し時間をいただいて発表しました。私はもともと製造業のシステム屋なので、製造業における品質管理の重要性についてはいろいろと触れる機会がありました。また、「継続的デリバリー」でも触れられているリーン生産方式はもともとトヨタ生産方式を研究して作られた学問でもあるので、その辺りから、ソフトウェア開発に生かせる内容を拾ってみました。主催の@kyon_mmさんには貴重な時間をいただきありがとうございました。

まとめ

この書籍はとても読みやすく、参考になります。こういった理想を頭に入れておくことは、目標を失わず常に改善していく原動力になります。また、第2回も継続して行われるようなので、この読書会をペースメーカーにして読書を進めていきたいと思っています。
継続的デリバリー読書会 2 #CDStudy

参考

@shinyaa31さんのツイッターまとめ
座席表