マーチン・ファウラー氏が語る、21世紀のソフトウェアデザインとしてのアジャイル開発(後編)。Agile Conference tokyo 2011

2011年7月26日

アジャイル開発に関する論客の一人マーチン・ファウラー氏は、7月20日にテクノロジックアートが主催したイベント「Agile Conference tokyo 2011」で「21世紀のソフトウェアデザイン」をテーマに基調講演を行いました。

fig

前編に続いて、ファウラー氏の基調講演の様子を紹介しましょう。

(本記事は「マーチン・ファウラー氏が語る、、21世紀のソフトウェアデザインとしてのアジャイル開発(前編)。Agile Conference tokyo 2011」の続きです)

継続的インテグレーション

アジャイル開発の中で重要な「継続的インテグレーション」と「継続的デリバリ」について話そう。まずは継続的インテグレーション。

fig

複数のプログラマが集まって開発しているソフトウェアでは、それぞれのプログラマのコードをマージする作業に苦労する現場を多く見てきた。

あるソフトウェアプロダクトに二人のプログラマがいたとすると、コードを2つに分岐し、その分岐をそれぞれのプログラマが開発を進めていく。しかしコードをマージしようとするときには大変な作業になる。同じ個所を変更していてバッティングする可能性もある。

マージのためのツールを使えば作業は容易にはなるが、コードの見かけはマージできても、意味として本当に問題なくマージされているかどうかはテストして確認するしかない。

しかし、「マージは難しい」とあまり信じ込むのもよくない

マージは分岐から時間がたつほどに難しくなる、であれば、難しくなる前に、頻繁にマージをすればいい。これを「Continuous Integration」(継続的インテグレーション)と呼んでいる。

fig

継続的インテグレーションでは、どんな小さな変更もメインラインに反映するため、小さい規模のマージがひんぱんに発生する。すると、最後に賭けのように、さあどうだ、という大規模なマージをする必要がなくなる。そこに継続的インテグレーションの意味がある。

継続的インテグレーションのもうひとつのアドバンテージは、例えば二人のプログラマがそれぞれ開発しているコードのどこかに非互換性があったとする、そこに両者がいつ気がつくか? 継続的インテグレーションによって両者がひんぱんにマージをし、コミュニケーションをしていれば早期に発見できるだろう。そうでなければ、最後の方になって発見することになるかもしれない。

もう1つメリットがある。コードのリファクタリングをしようというとき、何かを変更するとマージのとき大変だからと慎重になってしまえば、コードの品質を高める機会が減る。何か問題があればすぐにそれを検知できる、という継続的インテグレーションの環境は、品質面でのメリットもある。

継続的デリバリ

継続的インテグレーションだけでなく、継続的デリバリの話もしよう。

継続的インテグレーションは、開発の途中での問題の早期発見、早期治療の手段といえる。しかしなら、そのコードが実際の運用環境で動作するとは限らない。開発環境と運用環境は違うことがあるからだ。

コードが運用環境に対応しているか(プロダクションレディか)を確認するにはテストが必要だ。テストを行えば、コードに問題がないという自信や安心が得られる。しかしテストには時間がかかるため、テストをするほど完成とデリバリが遅れる。そこにはバランスをとる必要がある。

そこで、シーケンスを作り、コンパイルとユニットテストからプロダクションまでをいくつかに分割して、デプロイメントパイプライン(Deployment Pipeline)を作るのはどうだろう。

fig

そして、パイプラインのテストは可能な限り自動化すべきだ。いつでもテストができるように完璧に自動テスト化する事をおすすめする。


このエントリーをはてなブックマークに追加 Bookmark this on Delicious     fig Follow Me  fig RSS

タグ : アジャイル開発 , システム開発

次の記事
日本のアジャイルムーブメントに、何が起きていたのか、何が起きているのか
前の記事
マーチン・ファウラー氏が語る、21世紀のソフトウェアデザインとしてのアジャイル開発(前編)。Agile Conference tokyo 2011

Loading...

Blogger in Chief

photo of jniino Junichi Niino(jniino)
IT系の雑誌編集者、オンラインメディア発行人を経て独立。新しいオンラインメディアの可能性を追求しています。
詳しいプロフィール


Publickeyの新着情報をチェックしませんか?
Twitterで : @Publickey
RSSリーダーで : Feed





アクセスランキング - 過去7日間

  1. 大規模UIをJavaScriptで実現するた…
  2. ジョインが70倍高速で、Memcached …
  3. Music for Programming。…
  4. デブサミ10周年に寄せて。IT情報の発信源は…
  5. 平鍋氏「アジャイル開発の10年と今後を語ろう…
  6. 物理サーバを最短10分で調達。「さくらの専用…
  7. データセンター向けサーバとして注目の高密度サ…
  8. インド、12億の全国民をバイオメトリクスでデ…
  9. 「Linuxエンジニアの給与は上昇中」と、L…
  10. 連載マンガ:Mr. Admin 旅行先でシス…
  11. ネットワーク仮想化のNiciraが日本市場に…
  12. 今後5年のあいだにIT業界に大きなインパクト…
  13. OpenFlow/SDNへの準備ができていな…
  14. 特許庁の基幹システムはなぜ失敗したのか。元内…
  15. 次の10年、「統計分析」こそテクノロジー分野…

最新記事 10本

バックナンバー



アルファブロガー・アワード2010受賞 Publickeyはアルファブロガー・アワード 2010を受賞しました! いつもご愛読ありがとうございます。









blog comments powered by Disqus