こんな開発から あんな開発に! Visual Studio 2012+Team Foundation Server 2012活用でどんだけ違う??
自己紹介 • HN:ぶらっく(@__Black) ※広島在住 ぶらっくの技術メモ http://blackssi.cocolog-nifty.com/blog/ • 金融系業務パッケージ担当SE • TFS使い始めてまだ2年ぐらい? • TFSUGスタッフです
TFSUG宣伝 • 2/25(月) 第16回TFSUG大阪vol.2 19:00~21:00 • 3/2(土) CLR/H + TFSUG 共催 ALMデイ 13:00~18:30
さっそくですが、 本当のタイトルは 違います!
絶望的デリバリーから 継続的デリバリーへ TFSの目的は開発者を革新に導くこと・・・ 俺は変革しようとしている
継続的デリバリーとは • 継続的なソフトウェアのデリバリー/ 信頼できるソフトウェアリリースのための ビルド・テスト・デプロイメントの自動化
継続的デリバリー8つの原則 • ソフトウェアをリリースするための反復可能で 信頼できるプロセスを作る • ほとんどすべてを自動化する • すべてバージョン管理に入れる • 痛みを伴うものはこまめに実施し、 痛い思いは早めに • 品質を作りこむ • 完了した=リリースした • 誰もがデリバリープロセスに対して責任を負う • 継続的改善
絶望的デリバリーとは 空目から誕生した言葉 せっかくなので、具体例を作ってみましたw
絶望的デリバリー8つの例(?) • ソフトウェアのリリースは複数の端末で 毎回手作業 • ほとんどすべてが手動 (プログラムをエクスプローラーでコピー) • 現地にしか設定ファイルがない • 毎回毎回現地一発勝負 • 品質は動かしたらわかる • 完了した=プログラムをビルドした • 誰もが責任から逃げる • 継続的苦痛
こんな開発してませんか? とりあえず実装してみる テストは手動で Excelで作業内容を管理 バージョン管理はフォルダに ナンバリング/日付入れてます(キリッ
これの何がダメ?? とりあえず実装してみる テストは手動で Excelで作業内容を管理 バージョン管理はフォルダに ナンバリング/日付入れてます(キリッ
これの何がダメ?? とりあえず実装してみる ・「こんな仕様じゃない」と怒られる ・「抜け」が出てくる
これの何がダメ?? テストは手動で ・テストに時間がかかる ・後で変更したときのテストが大変 (時間がかかる/もう忘れたw)
これの何がダメ?? Excelで作業内容を管理 ・管理内容別にExcelファイル 進捗/不具合内容/開発効率... ・入れる項目大杉 (管理番号とか管理番号とか...) ・「読み取り専用で開きますか?」
これの何がダメ?? バージョン管理はフォルダに ナンバリング/日付入れてます(キリッ ・「誰かつついてる??」 ・変更差分がわからない ・どの作業でどのファイルを修正したっけ?
絶望から希望(継続的)に テスト駆動開発(TDD) 自動テスト 作業項目をTFSに登録 当然、バージョン管理もTFS
何がいいの? テスト駆動開発(TDD) 自動テスト バージョン管理もTFS 作業項目をTFSに登録
何がいいの? テスト駆動開発(TDD) ・仕様がハッキリする ・プログラム構造がハッキリする →勘違い/仕様不明確による 手戻りがなくなる
何がいいの? 自動テスト ・テストに時間がかからない ・後で変更したときのテストも容易 →安心して開発 「自動テストは開発者の躾」
何がいいの? バージョン管理もTFS ・排他ロック/ロックなし+マージ ・作業に対して変更ソースを「関連づけ」 →できて当たり前 計測のために「関連付け」は重要
何がいいの? 作業項目をTFSに登録 ・すべてはTFSの中に レポートは自動で作成 ・入れる項目は変わりません(たぶん) ・複数人で同時に編集可能 編集するための待ち時間なし →報告資料の作成時間短縮
なぜこんなことをするのか? スキルアップ/自動化による時間短縮で 捻出した時間を有意義な行為に割り当てる ・さらに「カイゼン」を行う ・新たなスキルを身に付ける ・家族サービス(?) これが次のサイクルを生み出す →持続可能な開発 個人→組織
なぜこんなことをするのか? 第1回業開中心会議:2013/1/26(土)開催 https://itmedia.smartseminar.jp/public/seminar/view/465 岩永さんのセッション超重要!!
そして、その先へ... 開発の自動化(継続的インテグレーション)から 提供の自動化(継続的デリバリー)へ
こんな開発をするために... Visual StudioとTeam Foundation Server (Team Foundation Service)は、 開発者が目指すべき開発作業が 具現化されたもの 継続可能な開発/継続的な「カイゼン」 まずは自身の変革を!