• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
RAD Studioで実践する継続的インテグレーション アプリとデベロッパーの価値を拡張するエッセンス #dcamp_jp
 

RAD Studioで実践する継続的インテグレーション アプリとデベロッパーの価値を拡張するエッセンス #dcamp_jp

on

  • 1,969 views

2014年4月22日に開催された 28th Embarcadero Developer Camp 【A5】のセッション資料です。

2014年4月22日に開催された 28th Embarcadero Developer Camp 【A5】のセッション資料です。
継続的インテグレーションから継続的デリバリーへの本質とコスト構造の変化、RAD Studio と Atlassian での実践について。

Statistics

Views

Total Views
1,969
Views on SlideShare
323
Embed Views
1,646

Actions

Likes
1
Downloads
3
Comments
0

4 Embeds 1,646

http://re-workstyle.com 1284
http://softwareengineeringplatform.com 360
http://s.deeeki.com 1
http://webcache.googleusercontent.com 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    RAD Studioで実践する継続的インテグレーション アプリとデベロッパーの価値を拡張するエッセンス #dcamp_jp RAD Studioで実践する継続的インテグレーション アプリとデベロッパーの価値を拡張するエッセンス #dcamp_jp Presentation Transcript

    • RAD Studio で実践する
 継続的インテグレーション アプリとデベロッパーの価値 長沢 智治 テクニカル エバンジェリスト アトラシアン株式会社 re-workstyle.com @tomohn を拡張するエッセンス
    • アプリとデベロッパーの価値
    • ビジネスとアプリケーションの進化 Business Apps Business Apps Business Apps C/S Web サービス マルチデバイス + サービス 90s 00s 10s ✓ コード品質 ✓ 開発者中心 ✓ 分業 ✓ サービス品質 ✓ 開発チーム中心 ✓ 分業から協調 ✓ ビジネス品質 ✓ 開発と運用 ✓ 協調
    • ビジネスを駆動するアプリケーションへ BUILD MEASURE LEARN 創造 ¦ 成果 ¦ 変革 Business Apps
    • I ビジネスを駆動するプラクティス Business Apps 継続的デリバリー Small  Batch Feedback  loop Acceptance  Test DVCS Deployment Production  Ready DevOpsMTTR Cycle  Time Customer  needs Design  for  Operations Cloud AgileeXtreme  Programing Scrum TDDC Time  Box Backlog Value  Up Pair  Programming Retrospective Burn  down DoD Task  Board Service  Desk
    • IContinuous ntegration 継続的インテグレーション
    • 継続的インテグレーション CI: Continuous Integration   アプリケーション作成時の
 品質改善や納期の短縮のための習慣のことです。   XP のプラクティスの一つでビルドやテスト、
 インスペクションなどを継続的に実行していく
 ことを意味する。 ウィキペディア
    • 品質改善 納期の短縮 習慣ビルド 継続的
    • 習 慣 ソフトウェア開発における心臓はなにか? チームの循環器はなにか?
    • ソフトウェア開発 ∼ アイデアを価値に転換する Software Delivery
    • 開発とビルドのリズムとコスト Develop Build 1 : 10 : 100 の法則   ✓ 開発: コスト ×   1 ✓ ビルド: コスト ×  10 ✓ テスト: コスト × 100 テストを書こう!頻繁にコミットしよう! (DVCS)
    • 開発とビルドのリズムとコストの蓄積 Develop Build 1 : 10 : 100 の法則   ✓ 開発: コスト ×   1 ✓ ビルド: コスト ×  10 ✓ テスト: コスト × 100
    • 開発とビルドのリズムとコストの改善 Develop Build 継続的ビルドによる品質改善とデリバリーの短縮 1 : 10 : 100 の法則   ✓ 開発: コスト ×   1 ✓ ビルド: コスト ×  10 ✓ テスト: コスト × 100 1 10
    • 1 : 10 : 100 の法則   ✓ 開発: コスト ×   1 ✓ ビルド: コスト ×  10 ✓ テスト: コスト × 100 開発とビルドのリズムからデプロイのリズムへ Develop Build ✓ デプロイ: コスト ×100 Deploy 1 10
    • 開発とビルドのリズムからデプロイのリズムへ Develop Build DEVELOPMENT TESTING PRODUCTION Deploy
    • 開発とビルドのリズムからデプロイのリズムへ Develop Build DEVELOPMENT TESTING PRODUCTION Deploy ! !
    • 開発とビルドのリズムからデプロイのリズムへ Develop Build DEVELOPMENT TESTING PRODUCTION Deploy !
    • 開発とビルドのリズムからデプロイのリズムへ Develop Build DEVELOPMENT TESTING PRODUCTION Deploy ! ! !
    • 開発者のコード変更は直接デリバリーへ Develop Build DEVELOPMENT TESTING PRODUCTION Deploy ! ! ! アイデアとバグを
 コードに転換 手を抜けないコード
 の品質の作りこみ 継続的インテグレーション VCS + CI (+BTS/ITS) デプロイの自動化 リリース管理 フィードバックの
 収集と適切な反映
    • DEVELOPMENT TESTING PRODUCTION ! ! ! 1 : 10 : 100 の法則   ✓ 開発: コスト ×   1 ✓ ビルド: コスト ×  10 ✓ テスト: コスト × 100 ✓ デプロイ: コスト ×100 1 5 10 開発者のコード変更は直接デリバリーへ Develop Build Deploy
    • 開発者とアプリ、要求とコードとビルドをつなぐ Develop Build Deploy ! ! DEV TEST PROD 開発者同士: チーム同士: 開発者と、 • デザイナー • テスター • マネージャー 利害関係者: 開発チームと、 • 企画 • 運用 • 顧客 VCS CI ITS/BTS ITS/BTS DEPLOY ITS/BTS
    • 開発者とアプリ、要求とコードとビルドをつなぐ Develop Build Deploy ! ! DEV TEST PROD VCS CI ITS/BTS ITS/BTS DEPLOY ITS/BTS開発者同士: チーム同士: 開発者と、 • デザイナー • テスター • マネージャー 利害関係者: 開発チームと、 • 企画 • 運用 • 顧客
    • アトラシアン製品にみる 開発支援ツールの進化とカバー範囲
    • 開発者とアプリ、要求とコードとビルドをつなぐ Develop Build Deploy ! ! DEV TEST PROD チーム内外のコミュニケーション インフラ タイムラインでアクティビティを通知、対処の円滑化 ライブ ドキュメント共有 企画や仕様書を陳腐化させない。ドキュメントから協調、思考と経験の形式知化 BST / ITS: 要求、バグ、タスクの追跡, 変更管理 ドキュメントやソースコードの変更要素 (Issues) の追跡と管理 各種の成果物の粒度の調整と各成果物をつなぐ重要な役割 開発者とアプリの価値をわかりやすく示すのに欠かせない DVCS クライアント 無償のデファクトスタンダード DVCS リポジトリ
 コードレビューや連携可能 なリポジトリ管理 継続的インテグレーション
 技術依存しない自動ビルドツール ビルド管理 継続的デプロイメント
 自動デプロイとデプロイ状況の管理 開発者同士: チーム同士: 開発者と、 • デザイナー • テスター • マネージャー 利害関係者: 開発チームと、 • 企画 • 運用 • 顧客
    • Demo RAD Studio + Atlassian 製品での 継続的インテグレーション
    • 開発者とアプリ、要求とコードとビルドをつなぐ Develop Build Deploy ! ! DEV TEST PROD チーム内外のコミュニケーション インフラ タイムラインでアクティビティを通知、対処の円滑化 ライブ ドキュメント共有 企画や仕様書を陳腐化させない。ドキュメントから協調、思考と経験の形式知化 BST / ITS: 要求、バグ、タスクの追跡, 変更管理 ドキュメントやソースコードの変更要素 (Issues) の追跡と管理 各種の成果物の粒度の調整と各成果物をつなぐ重要な役割 開発者とアプリの価値をわかりやすく示すのに欠かせない DVCS クライアント 無償のデファクトスタンダード DVCS リポジトリ
 コードレビューや連携可能 なリポジトリ管理 継続的インテグレーション
 技術依存しない自動ビルドツール ビルド管理 継続的デプロイメント
 自動デプロイとデプロイ状況の管理 開発者同士: チーム同士: 開発者と、 • デザイナー • テスター • マネージャー 利害関係者: 開発チームと、 • 企画 • 運用 • 顧客
    • 開発者とアプリ、要求とコードとビルドをつなぐ Develop Build Deploy ! ! DEV TEST PROD チーム内外のコミュニケーション インフラ タイムラインでアクティビティを通知、対処の円滑化 ライブ ドキュメント共有 企画や仕様書を陳腐化させない。ドキュメントから協調、思考と経験の形式知化 BST / ITS: 要求、バグ、タスクの追跡, 変更管理 ドキュメントやソースコードの変更要素 (Issues) の追跡と管理 各種の成果物の粒度の調整と各成果物をつなぐ重要な役割 開発者とアプリの価値をわかりやすく示すのに欠かせない DVCS クライアント 無償のデファクトスタンダード DVCS リポジトリ
 コードレビューや連携可能 なリポジトリ管理 継続的インテグレーション
 技術依存しない自動ビルドツール ビルド管理 継続的デプロイメント
 自動デプロイとデプロイ状況の管理 開発者同士: チーム同士: 開発者と、 • デザイナー • テスター • マネージャー 利害関係者: 開発チームと、 • 企画 • 運用 • 顧客 RAD Studio (Delphi, C++Builder) でのテスト ✓ テスト容易性の高い設計と実装 ✓ ビューとロジックの分離 (MVC, MVVM) ✓ デバッグ実行 ≠ テスト ✓ テスティング フレームワークの活用 ✓ DUnit ✓ DUnitX ✓ DUnit ✓ DUnit: xUnit 互換の Delphi ユニットテスト ✓ RAD Studio で標準搭載 ✓ IDE からのテスト実行に特化 ✓ GUI とコマンドライン実行 ✓ テスト結果は対話的 (ログなし)
    • 開発者とアプリ、要求とコードとビルドをつなぐ Develop Build Deploy ! ! DEV TEST PROD チーム内外のコミュニケーション インフラ タイムラインでアクティビティを通知、対処の円滑化 ライブ ドキュメント共有 企画や仕様書を陳腐化させない。ドキュメントから協調、思考と経験の形式知化 BST / ITS: 要求、バグ、タスクの追跡, 変更管理 ドキュメントやソースコードの変更要素 (Issues) の追跡と管理 各種の成果物の粒度の調整と各成果物をつなぐ重要な役割 開発者とアプリの価値をわかりやすく示すのに欠かせない DVCS クライアント 無償のデファクトスタンダード DVCS リポジトリ
 コードレビューや連携可能 なリポジトリ管理 継続的インテグレーション
 技術依存しない自動ビルドツール ビルド管理 継続的デプロイメント
 自動デプロイとデプロイ状況の管理 開発者同士: チーム同士: 開発者と、 • デザイナー • テスター • マネージャー 利害関係者: 開発チームと、 • 企画 • 運用 • 顧客 DUnit でのテストの作成 ウィザードによるテストの作成
    • 開発者とアプリ、要求とコードとビルドをつなぐ Develop Build Deploy ! ! DEV TEST PROD チーム内外のコミュニケーション インフラ タイムラインでアクティビティを通知、対処の円滑化 ライブ ドキュメント共有 企画や仕様書を陳腐化させない。ドキュメントから協調、思考と経験の形式知化 BST / ITS: 要求、バグ、タスクの追跡, 変更管理 ドキュメントやソースコードの変更要素 (Issues) の追跡と管理 各種の成果物の粒度の調整と各成果物をつなぐ重要な役割 開発者とアプリの価値をわかりやすく示すのに欠かせない DVCS クライアント 無償のデファクトスタンダード DVCS リポジトリ
 コードレビューや連携可能 なリポジトリ管理 継続的インテグレーション
 技術依存しない自動ビルドツール ビルド管理 継続的デプロイメント
 自動デプロイとデプロイ状況の管理 開発者同士: チーム同士: 開発者と、 • デザイナー • テスター • マネージャー 利害関係者: 開発チームと、 • 企画 • 運用 • 顧客 procedure  TestTCalc.TestAdd_Case1;      var          _result  :  System.Integer;          y:  System.Integer;          x:  System.Integer;      begin          x  :=  1;          y  :=  1;          _result  :=  aTCalc.Add(x,  y);          CheckEquals(x+y,  _result);      end; DUnit でのテストロジックの記述 テスト対象の実行 テスト対象の検証
    • 開発者とアプリ、要求とコードとビルドをつなぐ Develop Build Deploy ! ! DEV TEST PROD チーム内外のコミュニケーション インフラ タイムラインでアクティビティを通知、対処の円滑化 ライブ ドキュメント共有 企画や仕様書を陳腐化させない。ドキュメントから協調、思考と経験の形式知化 BST / ITS: 要求、バグ、タスクの追跡, 変更管理 ドキュメントやソースコードの変更要素 (Issues) の追跡と管理 各種の成果物の粒度の調整と各成果物をつなぐ重要な役割 開発者とアプリの価値をわかりやすく示すのに欠かせない DVCS クライアント 無償のデファクトスタンダード DVCS リポジトリ
 コードレビューや連携可能 なリポジトリ管理 継続的インテグレーション
 技術依存しない自動ビルドツール ビルド管理 継続的デプロイメント
 自動デプロイとデプロイ状況の管理 開発者同士: チーム同士: 開発者と、 • デザイナー • テスター • マネージャー 利害関係者: 開発チームと、 • 企画 • 運用 • 顧客 DUnit でのテストの実行 テストの実行 テスト結果がファイルに出力できない = 継続的インテグレーションで検証困難!
    • 開発者とアプリ、要求とコードとビルドをつなぐ Develop Build Deploy ! ! DEV TEST PROD チーム内外のコミュニケーション インフラ タイムラインでアクティビティを通知、対処の円滑化 ライブ ドキュメント共有 企画や仕様書を陳腐化させない。ドキュメントから協調、思考と経験の形式知化 BST / ITS: 要求、バグ、タスクの追跡, 変更管理 ドキュメントやソースコードの変更要素 (Issues) の追跡と管理 各種の成果物の粒度の調整と各成果物をつなぐ重要な役割 開発者とアプリの価値をわかりやすく示すのに欠かせない DVCS クライアント 無償のデファクトスタンダード DVCS リポジトリ
 コードレビューや連携可能 なリポジトリ管理 継続的インテグレーション
 技術依存しない自動ビルドツール ビルド管理 継続的デプロイメント
 自動デプロイとデプロイ状況の管理 開発者同士: チーム同士: 開発者と、 • デザイナー • テスター • マネージャー 利害関係者: 開発チームと、 • 企画 • 運用 • 顧客 unit  TestTCalcUnit;     interface   uses          TestFramework,  …,  XMLTestRunner2;   type          //  テストメソッド DUnit でのテストロジックの記述 XMLTestRunner2.pas の読み込みにより NUnit 互換ファイルを出力 Initialization          RegisterTest  (TestTCalc.Suite);     ! With  XMLTestRunner2.RunRegisteredTests  do   Free;   end.
    • 開発者とアプリ、要求とコードとビルドをつなぐ Develop Build Deploy ! ! DEV TEST PROD チーム内外のコミュニケーション インフラ タイムラインでアクティビティを通知、対処の円滑化 ライブ ドキュメント共有 企画や仕様書を陳腐化させない。ドキュメントから協調、思考と経験の形式知化 BST / ITS: 要求、バグ、タスクの追跡, 変更管理 ドキュメントやソースコードの変更要素 (Issues) の追跡と管理 各種の成果物の粒度の調整と各成果物をつなぐ重要な役割 開発者とアプリの価値をわかりやすく示すのに欠かせない DVCS クライアント 無償のデファクトスタンダード DVCS リポジトリ
 コードレビューや連携可能 なリポジトリ管理 継続的インテグレーション
 技術依存しない自動ビルドツール ビルド管理 継続的デプロイメント
 自動デプロイとデプロイ状況の管理 開発者同士: チーム同士: 開発者と、 • デザイナー • テスター • マネージャー 利害関係者: 開発チームと、 • 企画 • 運用 • 顧客 1 企画、アイデアの顕在化と実施計画 2 プロジェクト計画とタスクの割り出し
    • 開発者とアプリ、要求とコードとビルドをつなぐ Develop Build Deploy ! ! DEV TEST PROD チーム内外のコミュニケーション インフラ タイムラインでアクティビティを通知、対処の円滑化 ライブ ドキュメント共有 企画や仕様書を陳腐化させない。ドキュメントから協調、思考と経験の形式知化 BST / ITS: 要求、バグ、タスクの追跡, 変更管理 ドキュメントやソースコードの変更要素 (Issues) の追跡と管理 各種の成果物の粒度の調整と各成果物をつなぐ重要な役割 開発者とアプリの価値をわかりやすく示すのに欠かせない DVCS クライアント 無償のデファクトスタンダード DVCS リポジトリ
 コードレビューや連携可能 なリポジトリ管理 継続的インテグレーション
 技術依存しない自動ビルドツール ビルド管理 継続的デプロイメント
 自動デプロイとデプロイ状況の管理 開発者同士: チーム同士: 開発者と、 • デザイナー • テスター • マネージャー 利害関係者: 開発チームと、 • 企画 • 運用 • 顧客 4 開発の実施 3 開発作業の 起動 5 継続的インテグレーション
    • 開発者とアプリ、要求とコードとビルドをつなぐ Develop Build Deploy ! ! DEV TEST PROD チーム内外のコミュニケーション インフラ タイムラインでアクティビティを通知、対処の円滑化 ライブ ドキュメント共有 企画や仕様書を陳腐化させない。ドキュメントから協調、思考と経験の形式知化 BST / ITS: 要求、バグ、タスクの追跡, 変更管理 ドキュメントやソースコードの変更要素 (Issues) の追跡と管理 各種の成果物の粒度の調整と各成果物をつなぐ重要な役割 開発者とアプリの価値をわかりやすく示すのに欠かせない DVCS クライアント 無償のデファクトスタンダード DVCS リポジトリ
 コードレビューや連携可能 なリポジトリ管理 継続的インテグレーション
 技術依存しない自動ビルドツール ビルド管理 継続的デプロイメント
 自動デプロイとデプロイ状況の管理 開発者同士: チーム同士: 開発者と、 • デザイナー • テスター • マネージャー 利害関係者: 開発チームと、 • 企画 • 運用 • 顧客 ! ! ! ! DEV TEST PROD
    • 関連リソース Delphi と DUnit での継続的デリバリーについて
 http://re-workstyle.com/articles/continuous-integration-with-delphi-and-dunit/ RAD Studio での Git 利用について
 http://re-workstyle.com/articles/rad-studio-git/ DUnit の概要
 http://docwiki.embarcadero.com/RADStudio/XE5/ja/DUnit_%E3%81%AE %E6%A6%82%E8%A6%81 DUnit での NUnit 互換結果ファイル出力 (XMLTestRunner2.pas)
 http://cc.embarcadero.com/Item/28239 DUnitX
 http://www.finalbuilder.com/Resources/Blogs/PostId/697/introducing-dunitx
    • about Atlassian
    • ♡We Software
    • ♡We Software ビジネス / 企画 運用 / ビジネス 開発 / テスト チーム / マネージメント Atlassian Solution
    • ♡We Software ユニークなビジネスモデル ビジネス モデル 成長し続ける ✓ 営業 0 名 ✓ エキスパートによる付加価値 ✓ 開発にフォーカス ✓ 枯れた分野で急成長 ✓ ユーザーの支持が母体 ✓ イノベーションへの貢献
    • アトラシアンの文化を体験しに、遊びに来てください! Google Maps: 「アトラシアン」 マリノスタウン内 最寄り駅: 各線 横浜駅から徒歩 10分  みなとみらい線 新高島から徒歩 5 分
    • ♡We Software アトラシアンの文化を体験しに、遊びに来てください!
    • ♡We Software アトラシアン製品 10 ユーザー $10 から スターターライセンスは、全額をチャリティーに寄付 無償提供 OSS コミュニティや、クラスルームに無料で提供 全製品を無料で評価 30日フル機能を評価 オンプレミスとクラウド ダウンロード版とオンデマンド版を提供
    • 無料で講演いたします メール:   tnagasawa@atlassian.com   Twitter:   @tomohn   Facebook:  Tomoharu.Nagasawa 出張セミナーなどお気軽にご連絡ください。