Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Prescriptions for Enterprise App Development le...

Prescriptions for Enterprise App Development learned from culture of the Ruby community

Ayumu AIZAWA

October 04, 2011
Tweet

More Decks by Ayumu AIZAWA

Other Decks in Programming

Transcript

  1. Copyright © 2011 Accenture All Rights Reserved. 1 Copyright ©

    2011 Accenture All Rights Reserved. Accenture, its logo, and High Performance Delivered are trademarks of Accenture. Rubyコミュニティの文化に学ぶ エンタープライズシステム開発の処方箋 Prescriptions for Enterprise App Development learned from culture of the Ruby community アクセンチュア・テクノロジー・ソリューションズ株式会社 相澤 歩
  2. Copyright © 2011 Accenture All Rights Reserved. 2 アクセンチュア株式会社 企業戦略、業務改革、システム開発・保守、BPO

    など • コンサルティング • テクノロジー • アウトソーシング アクセンチュア・テクノロジー・ソリューションズ株式会社 • アクセンチュアの戦略的SIを担う、システム開発のスペシャリスト集団として設立 • アクセンチュアのシステム開発フェーズにおいて中心的な役割を担う
  3. Copyright © 2011 Accenture All Rights Reserved. 3 相澤 歩

    (あいざわ あゆむ) シニア・システムアナリスト • Cloud Initiative / ソリューション・アーキテクト • Architecture Innovation/ Rails Team 北海道札幌市に「Accenture Cloud Application Factory」を開設 Force.com、Amazon Web Services を中心としたクラウド基盤を活用 した業務システム開発プロジェクトを複数担当。オープンソース ソフトウェアを活用したプロジェクト改善活動を実践しています。 • 2009年 社長賞受賞 • 2010年 Core Value Award 受賞 • 2011年 セールスフォース・ドットコム社 より Partner Award “Custom Cloud of the Year” 受賞 自己紹介 http://www.accenture.com/jp-ja/company/newsroom-japan/pages/news-releases-20100921-b.aspx http://www.salesforce.com/jp/partners/partner_awards.jsp
  4. Copyright © 2011 Accenture All Rights Reserved. 4 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.
  5. Copyright © 2011 Accenture All Rights Reserved. 7 Issue of

    Enterprise Rubyist http://rubykaigi.org/2011/ja/schedule/details/16M06 日本Ruby会議2011
  6. Copyright © 2011 Accenture All Rights Reserved. 9 $ 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
  7. Copyright © 2011 Accenture All Rights Reserved. 11 健康なシステム開発を遂行するために、 いわゆる“Rubyコミュニティー”で定番となっている

    手法とツールを紹介 • バージョン管理 • 課題/変更管理 • 自動化 おはなしすること
  8. Copyright © 2011 Accenture All Rights Reserved. 12 Rubyコミュニティの文化に学ぶエンタープライズシステム開発の処方箋 Prescriptions

    for Enterprise App Development learned from culture of the Ruby community バージョン管理 Version Management
  9. Copyright © 2011 Accenture All Rights Reserved. 13 バージョン管理の仕組みがうまく機能していない 症状

    • _yyyymmdd.zip • 保存=コミットの区別がない • コミットログに何も書いていない • ブランチコントロールができていない • マージするたび大騒ぎ ケース1
  10. Copyright © 2011 Accenture All Rights Reserved. 14 分散バージョン管理システム -

    Git 軽量 • 個々のユーザが自分専用のリポジトリをローカルにもつ • 開発者個人がいつでもブランチがつくれる コミットの『推敲』 • 強力なrebase機能 処方 http://git-scm.com
  11. Copyright © 2011 Accenture All Rights Reserved. 15 特徴 •

    ユーザ同士がコードでコミュニケーション できる仕組みを提供 • 公開プロジェクトを手軽にforkし、 改良コードをPull request できる GitHub http://github.com/
  12. Copyright © 2011 Accenture All Rights Reserved. 17 Rubyコミュニティの文化に学ぶエンタープライズシステム開発の処方箋 Prescriptions

    for Enterprise App Development learned from culture of the Ruby community 課題/変更管理 Issue Tracking
  13. Copyright © 2011 Accenture All Rights Reserved. 18 ソースコードの変更理由を追跡するのが難しい ガントチャート上の進捗線に現実感がない

    症状 • 仕様変更と障害対応が一緒にコミットされる • 『なにを変更』したかはわかるが『なぜ』変更したか わからない • チケットの粒度がばらばら • チケットがなかなかクローズしない ケース2
  14. Copyright © 2011 Accenture All Rights Reserved. 19 課題追跡システム -

    Redmine 特徴 • チケットの起票と管理 • シンプルなワークフロー • バージョン管理システム との連携 同様のツール 処方 http://www.redmine.org/
  15. Copyright © 2011 Accenture All Rights Reserved. 21 • チケットのステータスを管理

    • ロールごとに権限を設定 ワークフロー Open Assigned On-Going Finished Closed Rejected
  16. Copyright © 2011 Accenture All Rights Reserved. 22 チケットの記述粒度は、チームの成熟にともなって 自然と決まっていく

    ガイドライン • チームにとってちょうどよいサイズを探す • 開発初期はラフに • 開発終盤はキッチリと • 保守フェーズでは厳格に運用 チケット管理
  17. Copyright © 2011 Accenture All Rights Reserved. 24 定型化された重要な作業に時間がかかっている 単調だが複雑な作業にかかる工数が大きい

    症状 • 手戻りが発生した場合の時間的ロスが大きい • その作業に熟練した担当者にしかわからないコツがある • ミスを誘発するような罠がいくつもある • これらは開発の終盤によくある ケース3
  18. Copyright © 2011 Accenture All Rights Reserved. 26 レグレッションテストの実行を自動化する テスト計画のポイント

    • テストケースの網羅性 • テストデータのつくりかた・管理方法 • テスト実行方法・ツール • 定量的な評価 結合テストの自動化
  19. Copyright © 2011 Accenture All Rights Reserved. 27 レグレッションテストの実行を自動化する ステージング/パッケージング/デプロイのポイント

    • バージョン管理との連動 • データ構造の移行 • データの移行 ステージング/パッケージング/デプロイの自動化
  20. Copyright © 2011 Accenture All Rights Reserved. 28 Rubyコミュニティの文化に学ぶエンタープライズシステム開発の処方箋 Prescriptions

    for Enterprise App Development learned from culture of the Ruby community 健康な身体をつくるために For healthy life
  21. Copyright © 2011 Accenture All Rights Reserved. 29 さまざまな変化に対応していくためには、 開発チームが『健康』であることが必要

    チームが健康であるために … • すばやいフィードバック • 自己組織化 • 継続的な取り組み 健康なシステム開発チーム