HIGIS 3/プレゼンテーション資料/J_GrayA.ppt

Similar documents
スライド 1


アジャイル開発ソリューション

PowerPoint プレゼンテーション

HIGIS 3/プレゼンテーション資料/J_GrayA.ppt

はじめに 本ドキュメントは Redmine を使用して稼働する定量的プロジェクト管理ツール ( 以下 IPF と略します ) のヘルプです IPF の操作に関わる機能を解説しており Redmine 及び構成管理ツール (Subversion Git) の標準機能については 本ヘルプの記載対象外として

2015 TRON Symposium セッション 組込み機器のための機能安全対応 TRON Safe Kernel TRON Safe Kernel の紹介 2015/12/10 株式会社日立超 LSIシステムズ製品ソリューション設計部トロンフォーラム TRON Safe Kernel WG 幹事

Microsoft PowerPoint - 配布用資料.ppt

PowerPoint プレゼンテーション

Microsoft PowerPoint - ID005(R02).pptx

セミナータイトル    ~サブタイトル~

スライド 1

5-3- 応統合開発環境に関する知識 1 独立行政法人情報処理推進機構

WBS テンプレート 2009/8/4 NO 作業項目 計画分析設計開発 SA UI SS PS PG PT テスト IT ST 運用 OT 保守 OM 作業概要 成果物 計画 プロジェクト編成 * プロジェクト責任者 メンバー ( システム部門 現場部門 外

5-3- 基統合開発環境に関する知識 1 独立行政法人情報処理推進機構

PowerPoint プレゼンテーション

Agile 開発におけるプロジェクト管理の課題 リアルタイムなタスク管理 反復開発計画 ( イテレーション スプリント,..) が頻繁に変更される 機能追加やバグ修正 リファクタリングによるソースコード修正に対応したタスク管理が必要 ソースコードの二重管理 リリース済みのソースコードと 開発中のソー

開発・運用時のガイド JDK8への移行に伴う留意点 [UNIX]

アジャイル開発入門

untitled

<4D F736F F F696E74202D E A92E897CA D E83678AC7979D B838B5F F947

SAS_user_2015_fukiya02

第 3 回 TERAS 成果報告会 TERAS V3 紹介と今後の展開 Tool Environment for Reliable and Accountable Software 一般社団法人 TERAS 理事開発委員長渡辺政彦 2014 年 3 月 12 日

Microsoft Visual Studio 2010 Professional Data Sheet

bebras_slide.pptx

平成22年度「技報」原稿の執筆について

スライド 1

効率の良いテストシナリオ? テストの進め方 テストプロセス テストの設計 より少ないテストケースで より多くのバグを見つける Mercury Interactive Japan KK all rights reserved. 2

4-4- 応スクリプト言語に関する知識 コードの作成や修正が容易とされるスクリプト言語のうち 特に Ruby について学習し 応用的なアプリケーション開発の手法を習得する Ⅰ. 概要フレームワークによる Web アプリケーション開発やデータベース操作について学習する Ⅱ. 対象専門分野職種共通 Ⅲ.

Oracle TimesTenについて

プロダクトオーナー研修についてのご紹介

IT 産業を取り巻く環境の変化 ネットワークの普及 競争の激化ビジネスモデルの革新トラブルの多発 期待 ニーズ システムへの要求が増大 安全 安心への要請が増大 低コスト 短納期開発 多機能化 高性能化 信頼できるマネジメント トラブル未然抑止 リスクの増大 理想 不適切な見積 生産性の見誤り 人海

目次 リリースノートについて... 1 リリースノートの内容... 1 フィードバックについて 主な機能強化 サービス課題管理機能 スコープ管理機能 サービス課題管理機能 スコープ管理機能 プロジ

Software Engineering Center Information-technology Promotion Agency, Japan SEC 主催セミナー ( 東京 ) 2012 年 11 月 12 日 定量的プロジェクト管理ツールの概要 独立行政法人情報処理推進機構技術本部ソフトウ

13 ソフトウェア工学 Software Engineering ソフトウェアプロセス SOFTWARE PROCESS ソフトウェアプロセスとは ソフトウェアプロセス : ソフトウェアプロダクト ( 製品 ) を作り出すための, 互いに関連する活動 (activity) の集合 ソフトウェアプロセ

HIGIS 3/プレゼンテーション資料/J_GrayA.ppt

PowerPoint プレゼンテーション

お客様からの依頼内容とその現状

開発者向けクラウドサービスを活用したリッチな Web/ モバイル アプリケーションの構築手法 杉達也 Fusion Middleware 事業統括本部担当ディレクター [2013 年 4 月 9 日 ] [ 東京 ]

日経ビジネス Center 2

<4D F736F F F696E74202D208A4A94AD82C6895E977082F082C282C882AE B8DC C E >

スキル領域 職種 : ソフトウェアデベロップメント スキル領域と SWD 経済産業省, 独立行政法人情報処理推進機構

(Microsoft PowerPoint - Java\221\3462\225\224\211\357\224\255\225\\\216\221\227\ ppt)

2

4.7.4 プロセスのインプットおよびアウトプット (1) プロセスへのインプット情報 インプット情報 作成者 承認者 備 考 1 開発に関するお客様から お客様 - の提示資料 2 開発に関する当社収集資 リーダ - 料 3 プロジェクト計画 完了報 リーダ マネージャ 告書 ( 暫定計画 ) 4

(Microsoft PowerPoint - \203A\203W\203\203\203C\203\213\212J\224\255_ ppt)

スピーカースライド作成前の確認シート例

Microsoft Word 基_シラバス.doc

スライド 1

スクラムと監査についての一考 システム監査人協会近畿支部 近藤博則

授業計画書

2 概要 市場で不具合が発生にした時 修正箇所は正常に動作するようにしたけど将来のことを考えるとメンテナンス性を向上させたいと考えた リファクタリングを実施して改善しようと考えた レガシーコードなのでどこから手をつけて良いものかわからない メトリクスを使ってリファクタリング対象を自動抽出する仕組みを

Microsoft Word - ESX_Restore_R15.docx

Microsoft PowerPoint - ●SWIM_ _INET掲載用.pptx

Software Engineering Center Information-technology Promotion Agency, Japan IPA 2012 年 11 月 日日 定量的プロジェクト管理ツールの概要 独立行政法人情報処理推進機構

Microsoft PowerPoint - 【最終提出版】 MATLAB_EXPO2014講演資料_ルネサス菅原.pptx

変更要求管理テンプレート仕様書

(Microsoft PowerPoint - HP\227pWASABI\217\320\211\356\216\221\227\277.ppt)

目次 ペトリネットの概要 適用事例

報道関係者各位 プレスリリース 2019 年 01 月 15 日 株式会社ネオジャパン グループウェア desknet's NEO バージョン 5.2 を 1 月 15 日に提供開始 ~ 業務アプリ作成ツール AppSuite との連携を強化 他にも AppSuite 連携 API 公開など多数の機

PowerPoint プレゼンテーション

個人依存開発から組織的開発への移行事例 ~ 要求モデル定義と開発プロセスの形式化 による高生産性 / 高信頼性化 ~ 三菱電機メカトロニクスソフトウエア ( 株 ) 和歌山支所岩橋正実 1

Copyright IPA Copyright IPA Copyright IPA モジュール A モジュール B モジュール C モジュール D 全体規模想定到達規模 規模計画値 4W 平均生産性 ( 右目盛 ) Copyright IPA が提供する定量関連のコンテンツ ツール群 データ提供企業

JP1 Version 12

開発ツールのコラボレーション機能を検証する

障害管理テンプレート仕様書

0. はじめに Redmine って何だろう... 5 Redmine とは... 5 機能概要 Redmine をはじめる準備をしよう ( 管理者 )... 7 ログイン... 7 admin ユーザのパスワード変更 Redmine でユーザを追

CodeGear Developer Camp

スライド 1

プレゼンタイトルを入力してください

McAfee ENS 移行プロセス概要

プレゼンタイトルを入力してください

ジョブ管理ソフトウェア LoadStar Scheduler ご紹介資料 ~ システム運用品質の向上とコスト削減を実現 ~

Contents 概要 利用イメージ 運用シーン 制限事項 / 補足事項 2

Oracle SQL Developer Data Modeler

Techno-AirPlas による Application 開発

Managing and Sharing MATLAB Code

An introduction and future of Ruby coverage library

目的 概要 全体像 概念図 用語の定義 用語 説明 用語 説明 用語 説明 用語 説明 参考資料

Microsoft PowerPoint - FormsUpgrade_Tune.ppt

Microsoft Word - ESxR_Trialreport_2007.doc

エンジニアリング・サービスから見たMBD導入の成功・失敗

NEXCESS基礎コース01 組込みソフトウェア開発技術の基礎 ソフトウェア開発プロセス編

挑 戦! 大 規 模 システムをRubyで 構 築 Contents 1. 日 立 ソリューションズのRubyへの 取 組 み 2. 大 規 模 システム 開 発 事 例 紹 介

PGRelief C/C++ 強化ポイント説明書

SystemDirector Developer's Studio(V3.2) 適用ガイド

ISO 9001:2015 改定セミナー (JIS Q 9001:2015 準拠 ) 第 4.2 版 株式会社 TBC ソリューションズ プログラム 年版改定の概要 年版の6 大重点ポイントと対策 年版と2008 年版の相違 年版への移行の実務

自己紹介 日本電気株式会社情報 ナレッジ研究所 須堯一志 ( すぎょうかずし ) 主にネットワークのプロトコルを開発している技術者 1997 年に IPv6 のプロトコルスタック開発を通じてオープンソース開発に関わる 2009 年頃から OpenFlow に関わる 2011 年 Trema がオープ

Using VectorCAST/C++ with Test Driven Development

InspectionXpert for SolidWorksのご紹介

Microsoft Word - 【CTG0000-D】ソフトウェア開発技法_ティーチングガイド.doc

PowerPoint プレゼンテーション

作成履歴 バージョン日時作成者 変更者変更箇所と変更理由 年 4 月 17 日平成太郎新規作成 プロジェクト計画の全体概要 本書に記載するプロジェクト作業の概要を簡単に記述します 本書の内容の概要がこの部分で大まかに理解できます ] 本計画書の位置づけ プロジェクトにおいて本書

FUJITSU Cloud Service ヘルプデスクサービス仕様書

<4D F736F F F696E74202D E291AB8E9197BF A F82CC8A A390698DF42E707074>

Microsoft PowerPoint - B3-3_差替版.ppt [互換モード]

プロジェクトマネジメント知識体系ガイド (PMBOK ガイド ) 第 6 版 訂正表 - 第 3 刷り 注 : 次の正誤表は PMBOK ガイド第 6 版 の第 1 刷りと第 2 刷りに関するものです 本 ( または PDF) の印刷部数を確認するには 著作権ページ ( 通知ページおよび目次の前 )

お客さまのデジタルトランスフォーメーションを加速する「アジャイル開発コンサルティングサービス」を提供開始

要求仕様管理テンプレート仕様書

テクノロジー・リフレッシュ7(TR7):IBM iでRubyがサポートされます

Transcription:

SPI Japan 2014 2014/10/15 株式会社日立ソリューションズ技術開発本部 Ruby センタ 細美彰宏 Hitachi Solutions, Ltd. 2014. All rights reserved.

Contents 1. Rubyの紹介 2. 日立ソリューションズの取り組み 3. Ruby 開発の課題と改善 4. 適用事例 5. まとめ Hitachi Solutions, Ltd. 2014. All rights reserved. 1

1. Ruby の紹介 Hitachi Solutions, Ltd. 2014. All rights reserved. 2

1-1 Ruby の紹介 1 Ruby: 日本発のオブジェクト指向スクリプト言語 まつもとゆきひろ氏が開発し 公開 (1993 年 ~) - コミュニティによる開発のオープンソース言語 - BSDL と Ruby ライセンスのデュアルライセンス 特徴 - オブジェクト指向 動的型付け インタプリタ型 - シンプルな文法 高い生産性と保守性 - Java に比べて ソースコードを短く記述可能 標準化活動 - 2011 年 3 月 JIS 規格 (JIS X 3017) 制定 - 2012 年 4 月 国際規格化 (ISO/IEC 30170) Hitachi Solutions, Ltd. 2014. All rights reserved. 3

1-2 Ruby の紹介 2 Ruby on Rails:Web アプリケーションフレームワーク David Heinemeier Hansson 氏が開発し公開 (2004 年 ~) - フルスタックの Web アプリケーションフレームワーク - MIT ライセンス 動画 Creating a weblog in 15 minutes で注目 - 高い生産性 基本理念 - 同じことを繰り返さない (DRY:Don t Repeat Yourself) - 設定より規約 (CoC:Convention over Configuration) 利用事例 - 海外 :Basecamp Twitter Hulu GitHub など - 国内 : クックパッド 食べログ など Hitachi Solutions, Ltd. 2014. All rights reserved. 4

2. 日立ソリューションズの取り組み Hitachi Solutions, Ltd. 2014. All rights reserved. 5

2-1 日立ソリューションズの取り組み 1 早い時期から組織的にアクション Ruby 開発の改善活動と 大規模とアジャイル型開発の 2 事例を紹介 大規模のシステム開発にも Ruby 適用を挑戦 中小規模の開発を中心に促進実践を通して 実績とノウハウを蓄積 2009 年 Ruby 普及促進を目的に専門組織 Ruby センタを設立 (12 月 ) 2008 年 社内システムに Ruby on Rails を適用して 生産性や拡張性を評価 (4 月 ~) Ruby 発祥の地 島根県松江市に事務所開設 (10 月 ) Hitachi Solutions, Ltd. 2014. All rights reserved. 6

2-2 日立ソリューションズの取り組み 2 業務システムを Ruby で実装して評価 (2008 年 ) 業務システムの一部 (4 画面 ) を Java と Ruby で実装して比較 仕様書 テスト項目は同じものを使用 開発規模が大幅に削減できることを確認 開発規模発生不良不良修正工数総工数 [step] [ 件 ] [h/ 件 ] [h] 1/4 変化なし 1/3 1/3 Java Ruby Java Ruby Java Ruby Java Ruby 総工数はプログラミングと単体テスト工程のみ Hitachi Solutions, Ltd. 2014. All rights reserved. 7

2-3 日立ソリューションズの取り組み 3 専門組織 Ruby センタ Ruby/Rails を使ったシステム開発に対応する専門組織 - 顧客提案 見積支援 技術問合せ 技術者育成 開発技術の整備 - 開発ノウハウの蓄積 開発ガイドの整備 - 共通ライブラリやツール開発 開発環境の構築 Ruby/Rails のサポートサービス - 問題解決支援 - セキュリティ情報配信 新規リリースの情報提供 Ruby 推進団体との協調 Hitachi Solutions, Ltd. 2014. All rights reserved. 8

3. Ruby 開発の課題と改善 Hitachi Solutions, Ltd. 2014. All rights reserved. 9

3-1 Ruby 開発の課題と改善 1 大規模適用への課題 大規模システムの Ruby 開発実績が少なく 未整備 - プロジェクト個別に開発方法 環境を用意 - 多人数での Ruby 開発方法が未整備 Ruby 技術者不足 - Java 技術者に比べると 圧倒的に少数 - 多人数の開発体制の構築が困難 2 大規模適用のための改善策 大規模システムの Ruby 開発手法と開発環境の整備 - 過去の開発実績でのノウハウをベースに整備 - 比較的新しい技術やツールの導入を方針に Ruby 経験の浅い要員のために 開発作業ガイドで標準化 Hitachi Solutions, Ltd. 2014. All rights reserved. 10

3-2 Ruby 開発手順 3 Ruby 開発手順 プロジェクトの立ち上げから設計 実装 テストまでの手順 多人数で開発するため レビューをルール化 テスト自動化 継続的インテグレーションの適用を推奨 # 主な文書 概要 1 開発ガイド 設計 実装 テストでの作業手順とルール 等 2 設計留意事項 Railsの特性に合った設計のための留意事項 3 コーディング規約 Ruby/Rails 命名規約 実装規約や推奨事項 4 品質管理ガイド Ruby/Railsを使った開発における品質管理 5 性能対策ガイド 性能問題発生時の解析方法と対策方法 6 適用チェックリスト Ruby/Rails 適用可否チェックリスト 7 体制構築ガイド 推奨する開発体制と必要な技術スキル Hitachi Solutions, Ltd. 2014. All rights reserved. 11

3-3 Ruby 開発手順 : 実装手順 Ruby ソースコードと RSpec テストコードのセットで作成 テストの C0 カバレッジ 90% をコーディング完了基準に設定 (RSpec:BDD のテストフレームワーク ) 構成管理の手順をガイドで提供 開発中 リモートリポジトリへの反映 ( 変更 ) でビルドを実行 テスト工程では 定期的 ( 少なくとも 1 回 / 日 ) に実行 Hitachi Solutions, Ltd. 2014. All rights reserved. 12

3-4 Ruby 開発手順 : コードレビュー チケット管理システムを活用したレビュー手順 レビュー観点 : 規約の遵守 冗長なコードの排除 複雑性 行数などのメトリクス セキュリティ脆弱性 など チケットのステータス ( 新規 進行中 など ) を決めて チケット管理システムのワークフローを定義 Hitachi Solutions, Ltd. 2014. All rights reserved. 13

3-5 Ruby 開発環境 OSS を活用 すぐに使える状態で提供 < 開発者が共通に利用する環境 > 継続的インテグレーションサーバ :Jenkins 定期的にソースを取得 バージョン管理システム Git Subversion 自動テスト 静的解析 ステップ数計測を日々実行して レポート 関連付け 更新の連携 タスク バグのトラッキングと情報共有 (Wiki) チケット管理システム Trac Redmine < 開発者の PC に構築する作業環境 > 仮想マシン (Ruby アプリの動作確認環境 ) CentOS Ruby Ruby on Rails Git Subversion PostgreSQL 実装 疎通確認 コードレビュー 自動テスト 静的解析の結果確認 チケットの登録 確認等 チェック機能や文字列変換等 日本の企業システムで使用頻度の高い部品群を提供 Hitachi Solutions, Ltd. 2014. All rights reserved. 14

4. 適用事例 Hitachi Solutions, Ltd. 2014. All rights reserved. 15

4-1 適用事例 1 1 大規模 Web システム開発 行政関連のデータを一元管理して 効率的に運営するための業務システムを Ruby で再構築 機能追加 制度改正時の対応効率化を目的に Ruby 化 - Java/C 言語で構築した現行システムは 度重なる改造と機能追加で複雑化 - 保守性向上を狙って Ruby へ移行 開発期間 2011/9~2013/4 Hitachi Solutions, Ltd. 2014. All rights reserved. 16

4-2 適用事例 1: 大規模 Web システム開発 2 開発スケジュール 要件定義基本設計 詳細設計 フ ロク ラミンク 単体テスト 結合テスト 総合テスト 運用テスト 本運用 Ruby の特徴である高い開発効率と保守性を活かして 2 フェーズに分けて開発 2011 年 2012 年 2013 年 9 10 11 12 1 2 3 4 5 6 7 8 9 10 11 12 1 2 3 4 フェーズ 1 現行システムの Ruby 化 フェーズ 2 仕様変更の取り込み Hitachi Solutions, Ltd. 2014. All rights reserved. 17

4-3 適用事例 1: 大規模 Web システム開発 3 開発規模 開発規模を現行システムの約 1/5 に削減 - ただし テストコードを含まない # 項目現行システム ( 参考 ) 開発対象 1 開発言語 オンライン機能 :Java バッチ機能 :C 言語 Ruby Ruby on Rails 2 画面数 270 画面 300 画面 3 帳票数 60 帳票 60 帳票 4 バッチ処理数 30 本 30 本 5 テーブル数 90 テーブル 100 テーブル 6 ステップ規模約 500Kstep 約 100Kstep Hitachi Solutions, Ltd. 2014. All rights reserved. 18

4-4 適用事例 1: 大規模 Web システム開発 4 品質安定化 テスト方針 - テスト自動化を導入 日々 チェックして 品質を確保 - テストコード作成基準 C0 カバレッジ 100% テスト自動化とリファクタリングによる品質の安定化 - デグレードの早期検出と対策による品質維持 向上 - Ruby/Rails とテスト自動化によって 変更の影響範囲特定が容易に ( コードの変更が怖くない ) カバレッジ 100% 達成重視により テストコードが肥大化 - テスト作成基準の見直し (100% 90%) 500Ks Java/C 言語 ( 現行システム ) 1/5 テストコード 100 Ks Ruby Hitachi Solutions, Ltd. 2014. All rights reserved. 19

4-5 適用事例 2 1 アジャイル型開発 教務関連のデータを Excel で管理していたが 対象範囲が広がり 管理業務が困難になり システム化 早くリリースしたい ニーズを具体化しながら 徐々に機能追加したいという要望があり 有効性検証も含め アジャイルを適用 - 開発途中で動くシステムを見せ ユーザに仕様確認 - アジャイルと Ruby の親和性の検証 開発期間 :2010/9~2011/2-1 ヶ月のスプリントを 3 回実施 +1 回予備 < 計画 > < 実績 > 項目 1 2 3 計 ストーリー 7 7 7 21 タスク 48 32 49 129 項目 1 2 3 計 ストーリー 5 4 7 16 タスク 35 22 49 106 Hitachi Solutions, Ltd. 2014. All rights reserved. 20

4-6 適用事例 2: アジャイル型開発 2 開発の概要 ビジネス要件 項目 1 2 3 計 ストーリー 7 7 7 21 タスク 48 32 49 129 日次スクラムミーティング バーンダウンチャート プロダクトバックログ スプリント計画 目標決定 実現するストーリー選択 システムを実現するために必要な全ての機能 成果物の一覧 プロダクトオーナーによって 実施有無と優先順位付け スプリントバックログ スプリント スプリントで行うストーリーの一覧 タスクに分解し 各タスクの作業時間を見積もる デモを実施して フィードバック 実行可能なシステム (23 画面 6 帳票 ) ふりかえりミーティング Hitachi Solutions, Ltd. 2014. All rights reserved. 21

4-7 適用事例 2: アジャイル型開発 3 バーンダウンチャートの傾向 残りのタスク量 スプリント 1 遅延傾向であるが 判断が遅い 更新不徹底のため 時間進捗が見えない 凡例 : 計画実績 計画を見直して ストーリーを持ち越し 正確な進捗管理ができていない 開始時 チケット管理システムに障害発生 タスク分解の粒度にバラつき タスク状態の日次更新が不徹底 残りのタスク量 スプリント 3 時間 凡例 : 計画実績 チームの習熟度が上がり 開発がスムースに進行 適切なタスク分割 優先度付けにより 進捗管理ができるように 1 タスクは 1 日で完了する作業を基準に設定 Hitachi Solutions, Ltd. 2014. All rights reserved. 22

4-8 適用事例 2: アジャイル型開発 4 プロジェクトメンバのコメント エンドユーザ ユーザニーズの掘り起こしに 今回の手法は有効 漠然とした要求から 形になったことは評価できる 早い段階で 動くシステムからフィードバックが得られ ユーザ要件を掘り起こしやすい 反面 要望 仕様変更が多発するため バックログの管理が大切 変更や追加要望に対して柔軟な対応が期待できる点で Ruby とアジャイルは親和性が高い 開発者 Hitachi Solutions, Ltd. 2014. All rights reserved. 23

5. まとめ Hitachi Solutions, Ltd. 2014. All rights reserved. 24

5-1 まとめ 1 大規模向け Ruby 開発手法と開発環境の整備 Ruby 開発手法と開発環境を整備して 適用推進 - 大規模システムとアジャイル型開発 今後も継続整備 - 適用プロジェクトからフィードバックを受けて改善 2 今後の課題 Ruby および大規模開発 アジャイルの両方を理解する技術者の育成 Ruby+ 大規模開発 + アジャイル型開発の 開発手法の検討 Hitachi Solutions, Ltd. 2014. All rights reserved. 25

END Ruby を使った開発プロジェクトでの取り組み 株式会社日立ソリューションズ技術開発本部 Ruby センタ 細美彰宏 Java は Oracle Corporation およびその子会社 関連会社の米国およびその他の国における登録商標です Rails および Ruby on Rails は David Heinemeier Hansson 氏による登録商標です Twitter は Twitter,Inc. の登録商標です Hulu は Hulu,LLC の登録商標です Subversion は CollabNet,Inc. の登録商標です CentOS は CentOS ltd の商標または登録商標です PostgreSQL は PostgreSQL の米国およびその他の国における商標または登録商標です その他 本資料に記載の会社名 製品名はそれぞれの会社の商標もしくは登録商標です Hitachi Solutions, Ltd. 2014. All rights reserved.