SlideShare a Scribd company logo
Rubyコミュニティの文化に学ぶ
               エンタープライズシステム開発の処方箋
              Prescriptions for Enterprise App Development learned from culture of the Ruby community

                                                        アクセンチュア・テクノロジー・ソリューションズ株式会社
                                                                                                                        相澤 歩
Copyright © 2011 Accenture All Rights Reserved. Accenture, its logo, and High Performance Delivered are trademarks of Accenture.   1
アクセンチュア株式会社

                                                  企業戦略、業務改革、システム開発・保守、BPO など
                                                  • コンサルティング
                                                  • テクノロジー
                                                  • アウトソーシング




アクセンチュア・テクノロジー・ソリューションズ株式会社
  • アクセンチュアの戦略的SIを担う、システム開発のスペシャリスト集団として設立
  • アクセンチュアのシステム開発フェーズにおいて中心的な役割を担う




Copyright © 2011 Accenture All Rights Reserved.                                2
自己紹介
相澤 歩 (あいざわ あゆむ)
シニア・システムアナリスト
   • Cloud Initiative / ソリューション・アーキテクト
   • Architecture Innovation/ Rails Team
   北海道札幌市に「Accenture Cloud Application Factory」を開設
    http://www.accenture.com/jp-ja/company/newsroom-japan/pages/news-releases-20100921-b.aspx

                              Force.com、Amazon Web Services を中心としたクラウド基盤を活用
                              した業務システム開発プロジェクトを複数担当。オープンソース
                              ソフトウェアを活用したプロジェクト改善活動を実践しています。
                              • 2009年 社長賞受賞
                              • 2010年 Core Value Award 受賞
                              • 2011年 セールスフォース・ドットコム社 より
                                       Partner Award “Custom Cloud of the Year” 受賞
                                              http://www.salesforce.com/jp/partners/partner_awards.jsp




Copyright © 2011 Accenture All Rights Reserved.                                                          3
Dreamforce ’11 as Diamond Sponsor



     Salesforce.com is proud to welcome Accenture as our one and only diamond sponsor! Accenture makes it
     easy for organizations to harness the cloud for sales, marketing, service, and operations. Check out their
     fabulous value-add offering right here online; then meet with them in person at Dreamforce.




Copyright © 2011 Accenture All Rights Reserved.                                                                   4
Ruby会議2009 ライトニングトーク
レガシーマイグレーションのためのRubyDSLによるJCLの実装
    http://rubykaigi.org/2009/ja/talks/17H05




                                                  http://www.nicovideo.jp/watch/sm8240786

Copyright © 2011 Accenture All Rights Reserved.                                         5
RubyWorld Conference2010
Rubyによるシステム開発運用支援活用の事例
    http://www.rubyworld-conf.org/ja/archives/2010/program/B-1/




Copyright © 2011 Accenture All Rights Reserved.                   6
日本Ruby会議2011
Issue of Enterprise Rubyist
    http://rubykaigi.org/2011/ja/schedule/details/16M06




Copyright © 2011 Accenture All Rights Reserved.           7
CMS for Cloud
Lokka
    http://lokka.org




Copyright © 2011 Accenture All Rights Reserved.   8
$ gem install heroku bundler
     $ git clone git://github.com/komagata/lokka.git
     $ cd lokka
     $ heroku create
     $ git push heroku master
     $ heroku rake db:setup
     $ heroku apps:open



Copyright © 2011 Accenture All Rights Reserved.        9
Object Oriented Programming Language
 Ruby
    http://www.ruby-lang.org




Copyright © 2011 Accenture All Rights Reserved.   10
おはなしすること
健康なシステム開発を遂行するために、
いわゆる“Rubyコミュニティー”で定番となっている
手法とツールを紹介


         • バージョン管理

         • 課題/変更管理

         • 自動化




Copyright © 2011 Accenture All Rights Reserved.   11
Rubyコミュニティの文化に学ぶエンタープライズシステム開発の処方箋
            Prescriptions for Enterprise App Development learned from culture of the Ruby community




バージョン管理
Version Management




Copyright © 2011 Accenture All Rights Reserved.                                                  12
ケース1
バージョン管理の仕組みがうまく機能していない

症状
         •   _yyyymmdd.zip
         •   保存=コミットの区別がない
         •   コミットログに何も書いていない
         •   ブランチコントロールができていない
         •   マージするたび大騒ぎ




Copyright © 2011 Accenture All Rights Reserved.   13
処方
分散バージョン管理システム - Git




                                                  http://git-scm.com

軽量
• 個々のユーザが自分専用のリポジトリをローカルにもつ
• 開発者個人がいつでもブランチがつくれる

コミットの『推敲』
• 強力なrebase機能

Copyright © 2011 Accenture All Rights Reserved.                        14
GitHub                                   特徴
                                         • ユーザ同士がコードでコミュニケーション
                                           できる仕組みを提供
                                         • 公開プロジェクトを手軽にforkし、
                                           改良コードをPull request できる




  http://github.com/




Copyright © 2011 Accenture All Rights Reserved.                     15
社内オープンソース活動
有料アカウントで非公開リポジトリの作成も可能




Copyright © 2011 Accenture All Rights Reserved.   16
Rubyコミュニティの文化に学ぶエンタープライズシステム開発の処方箋
            Prescriptions for Enterprise App Development learned from culture of the Ruby community




課題/変更管理
Issue Tracking




Copyright © 2011 Accenture All Rights Reserved.                                                  17
ケース2
ソースコードの変更理由を追跡するのが難しい
ガントチャート上の進捗線に現実感がない

症状
  • 仕様変更と障害対応が一緒にコミットされる
  • 『なにを変更』したかはわかるが『なぜ』変更したか
    わからない
  • チケットの粒度がばらばら
  • チケットがなかなかクローズしない




Copyright © 2011 Accenture All Rights Reserved.   18
処方
課題追跡システム - Redmine

特徴
• チケットの起票と管理
• シンプルなワークフロー
• バージョン管理システム
  との連携

                                                  http://www.redmine.org/
同様のツール




Copyright © 2011 Accenture All Rights Reserved.                         19
変更の追跡
コミットログにチケット番号を記述
変更理由(チケット)と変更内容(コミット)が関連付けられる




Copyright © 2011 Accenture All Rights Reserved.   20
ワークフロー
• チケットのステータスを管理
• ロールごとに権限を設定




                      Open                    Assigned     On-Going

                                                                      Rejected

                    Finished                      Closed




Copyright © 2011 Accenture All Rights Reserved.                                  21
チケット管理
チケットの記述粒度は、チームの成熟にともなって
自然と決まっていく
ガイドライン
         •   チームにとってちょうどよいサイズを探す
         •   開発初期はラフに
         •   開発終盤はキッチリと
         •   保守フェーズでは厳格に運用




Copyright © 2011 Accenture All Rights Reserved.   22
Rubyコミュニティの文化に学ぶエンタープライズシステム開発の処方箋
            Prescriptions for Enterprise App Development learned from culture of the Ruby community




自動化
Automation




Copyright © 2011 Accenture All Rights Reserved.                                                  23
ケース3
定型化された重要な作業に時間がかかっている
単調だが複雑な作業にかかる工数が大きい

症状
         • 手戻りが発生した場合の時間的ロスが大きい
         • その作業に熟練した担当者にしかわからないコツがある
         • ミスを誘発するような罠がいくつもある

         • これらは開発の終盤によくある




Copyright © 2011 Accenture All Rights Reserved.   24
処方
本質的な価値創造に寄与しない作業を自動化する

自動化アプローチが効果的に機能するフェーズ

         • 結合テスト

         • ステージング

         • パッケージング

         • デプロイ




Copyright © 2011 Accenture All Rights Reserved.   25
結合テストの自動化
レグレッションテストの実行を自動化する

テスト計画のポイント

         •   テストケースの網羅性
         •   テストデータのつくりかた・管理方法
         •   テスト実行方法・ツール
         •   定量的な評価




Copyright © 2011 Accenture All Rights Reserved.   26
ステージング/パッケージング/デプロイの自動化
レグレッションテストの実行を自動化する

ステージング/パッケージング/デプロイのポイント

         • バージョン管理との連動
         • データ構造の移行
         • データの移行




Copyright © 2011 Accenture All Rights Reserved.   27
Rubyコミュニティの文化に学ぶエンタープライズシステム開発の処方箋
            Prescriptions for Enterprise App Development learned from culture of the Ruby community




健康な身体をつくるために
For healthy life




Copyright © 2011 Accenture All Rights Reserved.                                                  28
健康なシステム開発チーム
さまざまな変化に対応していくためには、
開発チームが『健康』であることが必要
チームが健康であるために …
         • すばやいフィードバック
         • 自己組織化
         • 継続的な取り組み




Copyright © 2011 Accenture All Rights Reserved.   29

More Related Content

PDF
15分で分かる NoOps
PDF
【ソフトウェアプロジェクトにおけるツールの活用を考える会】 ソフトウェア開発におけるツール活用 - Team Foundation Server をベース...
PDF
SIerにおくる、アジャイルプロセスの実践
PDF
アーキテクチャとアジャイルプロジェクトをまともに進めるための両輪について-DevLOVE関西 #DevKan
PDF
ULSアジャイル推進室 基幹系システムの再構築におけるDDD事例 20160312
PDF
オープンソースのOTRSで、ITIL準拠の運用管理ができるって、本当ですか?どこから始めればよいですか?OTRS勉強会
PDF
なぜソフトウェアアーキテクトが必要なのか - デブサミ2011
PDF
Jasst12九州 倉貫資料:アジャイル・Ruby・クラウド(ARC)を活用したビジネスにおけるテストの実践 #jasst12Q
15分で分かる NoOps
【ソフトウェアプロジェクトにおけるツールの活用を考える会】 ソフトウェア開発におけるツール活用 - Team Foundation Server をベース...
SIerにおくる、アジャイルプロセスの実践
アーキテクチャとアジャイルプロジェクトをまともに進めるための両輪について-DevLOVE関西 #DevKan
ULSアジャイル推進室 基幹系システムの再構築におけるDDD事例 20160312
オープンソースのOTRSで、ITIL準拠の運用管理ができるって、本当ですか?どこから始めればよいですか?OTRS勉強会
なぜソフトウェアアーキテクトが必要なのか - デブサミ2011
Jasst12九州 倉貫資料:アジャイル・Ruby・クラウド(ARC)を活用したビジネスにおけるテストの実践 #jasst12Q

What's hot (18)

PDF
Ulsアジャイル推進室 エンタープライズアジャイルがやってくる! 20160312
PDF
エンタープライズへのアジャイル開発の導入事例
PDF
チーム×ツール Team Foundation Server & Service 共感しActionできる開発基盤 アルティメイタム【デブサミ 2013 ...
PDF
【16-B-7】TIDAコンソーシアム
PDF
Devlove2012 どうしたら良いシステムが作れるのか
PDF
XP祭り2014「アジャイルを手放して得られたこと」
PDF
新しい契約形態での受託開発サービス
PDF
夏サミ 2012 [B-2]エンタープライズ開発におけるコラボレーション - JIRAによる顧客と開発チームのつなぎ方
PPTX
いまさらアジャイル巡業 In Tokyo アジャイルモデリング
PDF
【18-C-3】システムアーキテクチャ構築の実践手法
PDF
【15-A-4】Redmine + Lychee 導入のアンチパターン
PDF
チケットの利用による経験を活かした開発の可能性
PDF
Agile Japan 2010 「変化を受け入れるアジャイルなプロジェクトマネジメントと現場 <ツール・環境篇>」
PDF
New Integration "X" 新インテグレーションソリューション
PDF
変化の時代における開発者のスキル資産形成について
PDF
リーン開発の本質 公開用
PDF
アジャイル事例紹介
PDF
Bitbucketを活用したコードレビュー改善事例
Ulsアジャイル推進室 エンタープライズアジャイルがやってくる! 20160312
エンタープライズへのアジャイル開発の導入事例
チーム×ツール Team Foundation Server & Service 共感しActionできる開発基盤 アルティメイタム【デブサミ 2013 ...
【16-B-7】TIDAコンソーシアム
Devlove2012 どうしたら良いシステムが作れるのか
XP祭り2014「アジャイルを手放して得られたこと」
新しい契約形態での受託開発サービス
夏サミ 2012 [B-2]エンタープライズ開発におけるコラボレーション - JIRAによる顧客と開発チームのつなぎ方
いまさらアジャイル巡業 In Tokyo アジャイルモデリング
【18-C-3】システムアーキテクチャ構築の実践手法
【15-A-4】Redmine + Lychee 導入のアンチパターン
チケットの利用による経験を活かした開発の可能性
Agile Japan 2010 「変化を受け入れるアジャイルなプロジェクトマネジメントと現場 <ツール・環境篇>」
New Integration "X" 新インテグレーションソリューション
変化の時代における開発者のスキル資産形成について
リーン開発の本質 公開用
アジャイル事例紹介
Bitbucketを活用したコードレビュー改善事例
Ad

Similar to Ruby コミュニティの文化に学ぶエンタープライズシステム開発の処方箋 (20)

PDF
Issues of Rubyists
PDF
SIerとクラウドの付き合い方
PDF
Agile 459 | 11/17 資料
PDF
地図を捨ててコンパスを頼りに進め
PDF
地図を捨ててコンパスを頼りに進め
PDF
チャレンジ基盤としてのチケット駆動開発(旧版)
PDF
雲の上の継続的デリバリー - Cloudforce Japan 2012
PDF
ソフトウェア開発の現場風景
PDF
楽しいゲーム開発管理
PDF
Team Foundation Server ~ 今を生きるエンジニアのための開発基盤とは 【BPStudy #63】
PDF
挑戦の道具としてのチケット駆動開発(長編版)
PDF
Enterprise agile dev ops-and-xr-techonology-adoption-for-fintech-20180324
PDF
Agile japan2010 rakuten様プレゼン資料
PDF
SFL07_K2_Keynote
PDF
ワンクリックデプロイ101 #ocdeploy
PDF
【Agile Conference tokyo 2011】 継続的フィードバック
PDF
雲の上の継続的デリバリー
PDF
20111212勉強会資料
PDF
Why Agile Now ? - leanstartup and ARC
Issues of Rubyists
SIerとクラウドの付き合い方
Agile 459 | 11/17 資料
地図を捨ててコンパスを頼りに進め
地図を捨ててコンパスを頼りに進め
チャレンジ基盤としてのチケット駆動開発(旧版)
雲の上の継続的デリバリー - Cloudforce Japan 2012
ソフトウェア開発の現場風景
楽しいゲーム開発管理
Team Foundation Server ~ 今を生きるエンジニアのための開発基盤とは 【BPStudy #63】
挑戦の道具としてのチケット駆動開発(長編版)
Enterprise agile dev ops-and-xr-techonology-adoption-for-fintech-20180324
Agile japan2010 rakuten様プレゼン資料
SFL07_K2_Keynote
ワンクリックデプロイ101 #ocdeploy
【Agile Conference tokyo 2011】 継続的フィードバック
雲の上の継続的デリバリー
20111212勉強会資料
Why Agile Now ? - leanstartup and ARC
Ad

More from Ayumu Aizawa (20)

PDF
Introducing Fn Project
PDF
Heroku HTTP API Design Guide
PDF
PaaSに適したアプリケーション設計 がもたらすメリット
PDF
Heroku
PDF
Heroku Changelog in 2013
PDF
Connected Products
PDF
Heroku Update Jul, 2013
PDF
Heroku Update
PDF
Heroku - Forget Servers!!
PDF
Heroku Getting Started
PDF
Heroku Postgres
PDF
Using Ruby2.0 on Heroku
PDF
Enterprise Heroku for Java
PDF
Heroku
PDF
カスタムアプリケーションプラットフォーム Salesforce Heroku ~ ソーシャルアプリケーションを支える技術 ~
PDF
Herokuのご紹介
PDF
(Ruby + Agile) x Cloud = Like!
PDF
Heroku Inside
PDF
Heroku Introduction
PDF
Herokuのご紹介
Introducing Fn Project
Heroku HTTP API Design Guide
PaaSに適したアプリケーション設計 がもたらすメリット
Heroku
Heroku Changelog in 2013
Connected Products
Heroku Update Jul, 2013
Heroku Update
Heroku - Forget Servers!!
Heroku Getting Started
Heroku Postgres
Using Ruby2.0 on Heroku
Enterprise Heroku for Java
Heroku
カスタムアプリケーションプラットフォーム Salesforce Heroku ~ ソーシャルアプリケーションを支える技術 ~
Herokuのご紹介
(Ruby + Agile) x Cloud = Like!
Heroku Inside
Heroku Introduction
Herokuのご紹介

Ruby コミュニティの文化に学ぶエンタープライズシステム開発の処方箋