マーチン・ファウラー氏が語る、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

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

あわせて読みたい

DevOps アジャイル開発 システム開発




タグクラウド

クラウド
AWS / Azure / Google Cloud
クラウドネイティブ / サーバレス
クラウドのシェア / クラウドの障害

コンテナ型仮想化

プログラミング言語
JavaScript / Java / .NET
WebAssembly / Web標準
開発ツール / テスト・品質

アジャイル開発 / スクラム / DevOps

データベース / 機械学習・AI
RDB / NoSQL

ネットワーク / セキュリティ
HTTP / QUIC

OS / Windows / Linux / 仮想化
サーバ / ストレージ / ハードウェア

ITエンジニアの給与・年収 / 働き方

殿堂入り / おもしろ / 編集後記

全てのタグを見る

Blogger in Chief

photo of jniino

Junichi Niino(jniino)
IT系の雑誌編集者、オンラインメディア発行人を経て独立。2009年にPublickeyを開始しました。
詳しいプロフィール

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

最新記事10本