• 検索結果がありません。

2012 年度 SEC セミナー資料適用が進み始めたアジャイル開発 NEC における非ウォータフォール 開発に対する取組み 2012 年 10 月 24 日 日本電気株式会社ソフトウェア生産革新部長岩崎新一

N/A
N/A
Protected

Academic year: 2021

シェア "2012 年度 SEC セミナー資料適用が進み始めたアジャイル開発 NEC における非ウォータフォール 開発に対する取組み 2012 年 10 月 24 日 日本電気株式会社ソフトウェア生産革新部長岩崎新一"

Copied!
37
0
0

読み込み中.... (全文を見る)

全文

(1)

NECにおける非ウォータフォール

開発に対する取組み

2012年10月24日

日本電気株式会社

ソフトウェア生産革新部長 岩崎 新一 2012年度 SECセミナー資料 適用が進み始めたアジャイル開発

(2)

目次

1.はじめに 2.アジャイル開発への取り組みについて 3.大規模・分散・ミッションクリティカルシステムにおける 非ウォーターフォール型開発について 4.おわりに

(3)
(4)

非ウォーターフォール型開発方式への対応必要性

▌ 事業環境激変による『フレキシブル&スピード開発』への対応 ▌ グローバルにおけるアジャイル開発隆盛への対応 開発型 開発手法 計画駆動開発 ウォーターフォール型開発 スパイラル開発 インクリメンタル開発・イテラティブ開発 Rational Unified Process (RUP) Enterprise Unified Process (EUP) SWAT2.0 プロトタイピング開発 RapidApplication Development(RAD) Operational Prototyping(OP) アジャイル型開発

Scrum、Crystal Clear 、Extreme Programming (XP) Lean Development、Feature Driven Development (FDD) Dynamic Systems Development Method (DSDM)

Adaptive Software Development (ASD) Evolutionary Project Management(Evo) セル生産、ユニケージ パッケージ利用開発 フィットアンドギャップ分析 非ウ ォ ー タ フ ォ ー ル 開発

(5)

国内外のアジャイル開発トレンド

海外に お け る ア ジ ャ イ ル 開発の 状況 会社別導入状況 適用済み 80% 未適用 15% 不明 5% PJ導入率別 半数未満 60% 半数以上 40% ウォーターフォール型 92% 反復型 5% その他 3% (アジャイル含む) 国内の 開発方法論の 状況

【出典】2011年11月 VERSION ONEによる調査 http://www.versionone.com/state_of_agile_development_survey/11/

(6)

アジャイル開発と対象領域

▐ 「ソフトウェア(以降、SWと略記する場合あり)」の多様化・多面性 ▐ アジャイル開発の適用が容易な領域、極めて難しい領域も存在 アプリケーションソフトウェア (アプリケーションフレームワーク) システムソフトウェア ミドルウェア・DB 基本ソフトウェア エンタープライズ系 アプリケーションソフトウェア (アプリケーションフレームワーク) システムソフトウェア ミドルウェア・DB 基本ソフトウェア 組込みソフトウェア系 ミッションクリティカル性 超大 規模 小規模 低い 極めて重要 低い 極めて重要 アプリケーションソフトウェア (アプリケーションフレームワーク) システムソフトウェア ミドルウェア・DB 基本ソフトウェア Netビジネス型SW系 極めて重要 低い

(7)

開発プロセスを考える上での考慮事項

マネジメント系とエンジニアリング系に大別

本項ではエンジニアリング系施策のみについて言及

人間マネジメント系施策 プロジェクト管理 管理プロセス 就業管理 など エンジニアリング系施策 開発環境 開発プロセス 開発規則 など バランスが重要

(8)

従来施策とアジャイル開発プラクティスの整合

▐ NECが従来推進してきた施策との整合を検討し、実施中 エンジニアリング 観点 開発場所 個別最適 全体最適 分散 (グローバル分散) 一カ所 アジャイル 開発 SW生産革新活動 • グローバル標準化 • 全体最適化施策 • SWファクトリ • CMMI推進 など

(9)

統合的な「フレキシブル&スピード開発」方式へ

▐ 全ての領域で『フレキシブル&スピード開発』追求が必要 ⇒ ピュアなアジャイル開発も包含 アジャイル 開発向き領域 規模 大 小 大 ミッションクリティカル性 小 NECビジネス の重点領域 ※ITサービス キャリアネットワーク 社会インフラ系システム 組込みソフト領域 など NECビジネス の重要領域 ※社会インフラ系デバイス エネルギー系デバイス など B i g l o b e の サ ー ビ ス A P の 一 部、 情報系W e b A P の 一部 な ど 全体として 『NECの非ウォータフォール開発手法』 として強化を進めている

(10)

本日のご説明領域

▐ アジャイル開発向け領域での取り組み ▐ 大規模・ミッションクリティカル領域における施策 規模・分散 大 大 ミッションクリティカル性 小 アジャイル開発向け 領域での取り組み 大規模・ミッションクリティカル 領域における施策

(11)

2.アジャイル開発への取り組み

について

(12)

アジャイル開発への対応状況

変化に強く、俊敏な開発を実現すると言われるア

ジャイル開発に対して、NECでは以前より注目

グローバル開発、アジリティ向上のため対応を推進

各組織ごとで様々な取り組みが進んでいることが判明

全社横串のタスクフォースを設置し本格的活動を開始

先行事例を元に、アジャイル開発ガイドを開発

⇒ パイロットプロジェクト適用を通して内容拡充

(13)

開発ガイドで採用したアジャイル開発手法

▌ 最も普及しているスクラムをベースに開発 スクラム スクラム+XP カスタムプロセス 不明 その他

52%

14%

9% 8% 17% 「スクラム」と「スクラム+XP」を 合わせると全体の66%

出典: State of Agile Survey 2011

(14)

開発方法論開発の方針

スクラム

XP

要件管理(プロダクトバックログ) イテレーション管理(スプリント) プロセス改善の仕組み(ふりかえり) 役割定義(P.O./S.M./チーム) 継続的インテグレーション テスト駆動開発 リファクタリング ソースコードの共同所有 ペアプログラミング ソフトウェア品質会計 上工程品質会計 テスト工程品質会計 バグ収束判定 バグ分析 バグ傾向分析 1+n施策 * ソフトウェア品質会計:NEC独自のソフトウェア品質管理手法 エ ッ セ ン ス を 抽出 ▐ 現在もっとも普及している手法であるスクラムを中核に策定(XPの一部も採用) ▐ 弊社が長年培ってきた ソフトウェア品質会計*のエッセンスを追加 アジャイル開発の俊敏性に品質視点を追加

(15)

品質会計<ソフトウェア品質管理手法>

▌ 設計・製造工程で作り込んだバグを負債とみなし、レビュー・テストに よるバグ摘出によりこの負債を返済し、負債が0となった時点で出荷 設計・製造過程 レビュー・テスト 製品 バグ 作り込み 製品 バグ 摘出 バグ  品質会計は、NEC全体に適用されているNEC独自の品質管理手法  出荷直前に実施すべき項目が残っていないかを考える指標としてバ グ件数を使用  品質会計のなかでも、上工程品質会計が品質向上の鍵

(16)

アジャイル開発ガイドの全体構成

アジャイル開発概要

6つのプロセスの説明

リリース計画の変更

アジャイル開発プラクティス

N回繰り返し(あまり多くしない;3回程度を推奨)

(17)

チーム構成

スクラムマスター 品質保証担当 実現したい要件の管理を行い、要件の内容や優先度の最終 決定権を持つ。 プロダクトオーナー 開発チーム 要件に従って設計・製造・テストを行う。 3~9人で構成するのが望ましい。 プロダクトオーナーと開発チームが正しくスクラムを実践する ための支援を行う。 品質が作りこまれている状況を確認する。 ビジネスとしては第三者的な立場から品質評価が必要。

(18)
(19)

3種類のスプリント

スプリントの種類 説明 主な実施内容 準備スプリント 開発を始めるための 準備を行う アーキテクチャの設計 開発環境の準備 各種規約準備 開発スプリント ストーリー毎の開発を 行い、正常動作するよ うに品質を作りこむ 要件の詳細定義 設計 実装と単体テスト 機能テスト リリーススプリント 製品をリリースするた めに必要な作業を行 う リグレッションテスト システムテスト ドキュメントの作成と更新 リリース物の配布準備

(20)

アジャイル開発特化型の人材育成について

▌ 開発を行う要員と普及を行う要員の2階層に分けて育成 ▌ 育成のための教育メニューを整備中 ▌ 従来社内人材育成制度と連携しキャリアパスの設定 人材タイプ 役割 育成するスキル アジャイル エバンジェリスト 外部折衝、社内普及推進 アジャイル開発への理解 担当組織のビジネス理解 アジャイルコーチ アジャイル開発PJの初期の 立ち上げ支援 下の3つの人材タイプの包括的なスキル スクラムマスター スクラムのプロセスの実践 スクラム、ファシリテーションスキル プロダクトオーナー 責任やシステムのビジネス価 値を高める 要求開発 プロジェクト管理 開発者 スクラムや開発プラクティス を用いた開発の実践 スクラム、開発プラクティス、品質、分散 開発、ツール適用、ユーザ中心設計、 【 普 及 】 【 開 発 】

(21)

3.大規模・分散・ミッションクリティカル

システムにおける非ウォーターフォール

(22)

アジャイル開発の課題

▌ 国内SIにおいて、アジャイル開発は極めて限定的

⇒ アジャイル開発に適する条件を満たすことが困難であることが阻害要因

(23)

(参考) 海外におけるアジャイル開発の普及要因

▌ アジャイルは米国発:IT技術者がユーザ企業に多いため、主体的にコントロールできる ▌ ブラジルは米国からの受託が多くタイムゾーンが同じであるためコミュニケーションが活発 ▌ 米国、中国、ブラジルではIT関連職の人気や給与が高いため流動性が高く技術が普及し やすい 【出典】 IPA/SEC 「非ウォーターフォール型開発の 普及要因と適用領域の拡大に関する調査」 (元データはIPA「グローバル化を支えるIT人材確保・育成施策に関する調査」)

(24)

大規模・分散・ミッションクリティカル領域における施策 ▐ アジャイル開発のプラクティス、他の非ウォータフォール開発プラクティスに おいて大規模・分散・ミッションクリティカル領域に適しているというデータ はない ▐ できればアジャイル開発 プラクティスで統合できる ことが望ましい 規模・分散 大 大 ミッションクリティカル性 小 アジャイル開発向け 領域での取り組み 大規模・ミッションクリティカル 領域における施策

(25)

大規模・分散開発にアジャイル開発を適用するための考え方

大規模システムのアジリティ向上にはアーキテクチャを

管理することが重要

⇒その上でユーザニーズの反映を考慮した小規模案件化戦 略が必要

プランA.UI系・画面系中心アプローチ

⇒ エンドユーザがディシジョンできる、変更が多いなどの理由 により、アジャイルがうまく機能する代表格

プランB.フィーチャー・ストリーによる小規模化

プランC.アーキテクチャ見直しによる小規模化

(26)

アジャイル開発のチーム分割

▌ コンポーネントチームとフィーチャーチーム  コンポーネントチームでは1つのストーリー実現に複数チーム同時作業が必要  フィーチャーチームではストーリー実現においてチーム間の依存関係が少ない プロダクト バックログ コンポー ネントA コンポー ネントB コンポー ントC Aコンポーネント チーム Bコンポーネント チーム Cコンポーネント プロダクトオーナー コンポーネントチームによる構成 ストーリー① ストーリー② ストーリー③ ストーリー④ ストーリー⑤ プロダクト バックログ コンポー ネントA コンポー ネントB コンポー ントC フィーチャー チーム フィーチャー チーム フィーチャー プロダクトオーナー フィーチャーチームによる構成 ストーリー① ストーリー② ストーリー③ ストーリー④ ストーリー⑤ システム システム

(27)

プランC.アーキテクチャ見直しによる小規模化 (1) システムをアジャイル開発ができるレベルまで分解  アジャイル開発が機能する10名前後で開発できるところまで分割 ※ サブシステム⇒サブサブシステム⇒モジュールレベルまで分解  サブシステム、モジュールの独立性が重要 (2) 対象システムのモジュール独立性のアセスメント  現状のモジュールの状況を構造メトリクス*にて数値化 ⇒改善目標を策定 (3) 特定領域のアジャイル化方針策定  変化が大きいサブシステム、モジュールを特定  サブシステム、モジュールの独立性を極限まで追求してアーキテクチャ見直し  構造メトリクスにて再度評価 * ソースコードの状況を様々な角度から分析

(28)

アーキテクチャの見直しイメージ

▌ アジャイル開発実施には、開発と評価の範囲を最小化することが必要 ① ビルディングブロック化されたアーキテクチャ ② 設計・CD・テストの精緻化 サービス/機能 = サービス/機能 製造、検査工程の対策 ・形式手法による精緻な開発 と検査 ・コーディング作法などの徹底 ・ツールによるテスト効率化 (特にリグレッションテスト) テスト 必要 部分 変更 部分 凡例 の両面のアプローチが必要 管理された アーキテクチャ 評価尺度を用いて確認可能 混沌とした アーキテクチャ

(29)

ビルディングブロック独立化戦略

▌ ビルディングブロックの見直し技法 ⇒ 経験則(ヒューリスティック)中心 ▌ 構造メトリクス(後述)により定量的指針を得ることも重要  前提  独立性の維持(カプセル化)  性能・諸元の遵守;不要なクラス/構造体、関数呼び出しの禁止  外部と内部、物理と論理のバウンダリ分析  外部入力(イベント/信号)の洗い出し  外部出力(イベント/信号)の洗い出し  内部構造の見直し  関数構造そのものの見直し;外部変数の利用、相互関係  関連するデータ項目・イベント/信号を仮想構造化し、仮想構造体を操作す る関数を仮想クラスとして整理  仮想クラスを開発するためのネームスペースルール確立 ・・・

(30)

ソースコードメトリクスの重要性

ソース規模、複雑度はSW開発の基本指標として重要だ

が、測り方が多様であり、ツールによる測定の差異もあり

⇒生産性・品質に関する基礎データが不安定

NECではこれに対処するために、「NECソースコードメト

リクス標準」の策定を行い、ソースコードメトリクスの標準

化を推進中

併せて、標準に準拠したメトリクス測定ツール(ncmeter)

を社内展開

(31)

構造メトリクス

▌ ソースコードのメトリクスにおいて、構造に関するものは品質に影響 が大きいと考えられる(複雑さ;分岐数、ネスト数など) ▌ NECではこれらを「構造メトリクス」として定義し、開発現場で利用 できるようにしている ▌ その中で、幾つかのメトリクスはモジュールの独立性を判断できるも のがあり、現状のシステムの状態を把握する上で有益な定量データ を提供できる

(32)

(参考) ソースコードメトリクスツール ncmeter

▌ 各種ソースコードに対応したメトリクス測定ツール ▌ NECグループ内の標準利用ツールとして活用 C C/ C++ C# VB 測定結果 (CSV、XML) 測定結果を 対象ソースや解析オプション を指定する専用GUI C/C++、C#、Java、VB の各言語に対応 (テキスト形式など他の ファイルも測定可能) ◎メトリクスの種類 約30種類 ・基本ライン数 ・差分ライン数(旧ソースへの追加、変更) ・構造メトリクス(サイクロマティック数など) ・CKメトリクス ※Java言語のみ ◎対応OS ・Windows、Linux、HP-UX 版を用意 ※機能差あり ◎特徴 ・測定基準は『NECソースコードメトリクス標準』に準拠 Java/ JavaScript 測定対象ソースコード

(33)
(34)

アジャイル開発の効果

▌ 一般にアジャイル開発の効果の中で、変更容易性・見える化(透明性)・モラル向 上に関してはNEC内でも確かに実感できている ▌ しかしながら、生産性向上やコスト削減については課題も残す 優先順位の変更への対応力 プロジェクトの透明性の改善 生産性の向上 チームメンバのモラルの向上 製品化までの時間の短縮 ITとビジネス目的の整合性向上 ソフトウェア品質の強化 開発プロセスの簡約化 リスク低減 エンジニアリング上の規律改善/向上 保守性/拡張性の向上 コスト削減 改善した 変化なし 悪化した 不明 効果確認済み

(35)

おわりに

▌ アジャイル開発への取り組みについて スクラム、XP、品質会計(NEC独自)のノウハウを総合してガイ ドライン策定 課題 • アジャイル開発人材像と従来人材タイプとのFit&Gap • 出荷・品質に関する独自プラクティスの強化 • 全般的なツール支援強化 ▌ 規模・分散・ミッションクリティカルシステムにおける非ウォーターフォ ール型開発について 非ウォーターフォール型を可能にするアーキテクチャ見直し、モジ ュール独立性向上施策などを継続検討 超大規模PJでの実施が複数進行中

(36)

NECグループビジョン2017

人と地球にやさしい情報社会を

イノベーションで実現する

(37)

参照

関連したドキュメント

○珠洲市宝立町春日野地内における林地開発許可の経緯(参考) 平成元年11月13日

成 26 年度(2014 年度)後半に開始された「妊産婦・新生児保健ワンストップ・サービスプロジェク ト」を継続するが、この事業が終了する平成 29 年(2017 年)

フイルタベントについて、第 191 回資料「柏崎刈羽原子量発電所における安全対策の取り

2021年5月31日

航続距離(約 700km ) 水素充填時間(約 3 分). 氷点下始動性(

緑施策の新展開~生 物 多 様 性の保 全 に向 けた基本戦略~ (平成 24

2018年 11月 9日 ベトナム国の水力発電事業者であるLao Cai Renewable Energy社が保有する ベトナム国のコクサン水力発電所に出資参画(当社における海外水力発電事業の

本報告書は、「新潟県中越沖地震に対する東京電力株式会社柏崎刈羽原子力発電所7号機の建 物・構築物の健全性評価に係る報告書(平成 20 年 10 月 23 日付