SlideShare a Scribd company logo
1 of 40
Download to read offline
2016年10月12日
富士通株式会社
岡本卓也
SPI Japan 2016
現場から始める
アジャイルの技術プラクティス
~ ユニットテストから勝手に始めよう ~
Copyright 2016 FUJITSU LIMITED
Copyright 2016 FUJITSU LIMITED1
本日お話しする内容
自己紹介と背景
アジャイルについて
技術プラクティス
導入のためにやったこと
導入のときに悩んだこと
導入の効果
導入したプラクティス
まとめ
Copyright 2016 FUJITSU LIMITED2
自己紹介と背景
アジャイルについて
技術プラクティス
導入のためにやったこと
導入のときに悩んだこと
導入の効果
導入したプラクティス
まとめ
Copyright 2016 FUJITSU LIMITED3
ソフトウェア開発者 (19年目)
開発チームのマネージャ
アジャイルとの関係
2002年、XPと出会う
(長い間、一人で悶々とし続ける)
2013年からAgile Japanに参加(聴講者)
現在は、アジャイルを実業務へ
適用/推進する為に奮闘中
自己紹介
Copyright 2016 FUJITSU LIMITED4
伝送装置の制御ソフト開発
特徴
大規模 (数十人、数カ月)
厳格なプロセス (基本はWF)
HW/SW 同時開発 (組み込み的)
業務ドメインと背景
インターネット
マルチ・データセンター
光アクセス WiFi 3G/LTE
広域ネットワーク
(光伝送装置で構成)
伝送装置
制御ソフト開発
ココ
WF: Water Fall
HW: Hardware
SW: Software
Copyright 2016 FUJITSU LIMITED5
特徴 (続き)
顧客までの遠い距離
業務ドメインと背景
顧客 営業 事業部 開発
商談 開発方針 開発委託
ココ
いろいろとアジャイルには不利な条件
Copyright 2016 FUJITSU LIMITED6
自己紹介と背景
アジャイルについて
技術プラクティス
導入のためにやったこと
導入のときに悩んだこと
導入の効果
導入したプラクティス
まとめ
Copyright 2016 FUJITSU LIMITED7
アジャイル導入あるある
開発
アジャイルでやって良いよ。
出来るよね?
一括請負契約だから・・・
開発プロセスが・・・
(仮想)
偉い人
え !?
Copyright 2016 FUJITSU LIMITED8
アジャイル導入の壁
アジャイル開発
プロセス
技術
開発プロセス定義
契約形態
オブジェクト指向
テスト駆動
ユニットテスト
CI
コードレビュー
開発環境
リファクタリング
構成管理
技術の壁は現場で解決しないとダメ
CI: Continuous Integration
Copyright 2016 FUJITSU LIMITED9
自己紹介と背景
アジャイルについて
技術プラクティス
導入のためにやったこと
導入のときに悩んだこと
導入の効果
導入したプラクティス
まとめ
Copyright 2016 FUJITSU LIMITED10
アジャイルの技術プラクティス
いったいどれから手を付ければ・・・
テスト駆動開発
回帰テスト
ペアプログラミング
リファクタリングユニットテスト
シンプルデザイン 継続的インテグレーション
コードの共同所有
岡本
Copyright 2016 FUJITSU LIMITED11
とあるセミナーにて (2013年頃)
岡本
ユニットテストからやるのが
オススメ
先達
アジャイルってどうすれば良いですか?
なんでですか?
自動化して怒る上司はいないから
(上手いこと言うな~)
しかし、本当は深い示唆があった
Copyright 2016 FUJITSU LIMITED12
アジャイル開発
ユニットテストの前提と価値
ユニットテスト
良い設計
オブジェクト指向
リファクタリングCI繰り返し開発
環境良い実装
構成管理 CIツール
前
提
価
値
ユニットテストはアジャイルの肝
Copyright 2016 FUJITSU LIMITED13
(参考)アジャイル実践企業の実態調査
(出典:牛尾剛 「アジャイル・DevOps 実践企業サーベイ(2016)」 )
半数以上のチームで
ユニットテストが
十分に出来ていない
Copyright 2016 FUJITSU LIMITED14
自己紹介と背景
アジャイルについて
技術プラクティス
導入のためにやったこと
導入のときに悩んだこと
導入の効果
導入したプラクティス
まとめ
Copyright 2016 FUJITSU LIMITED15
従来の単体試験(手動テスト)を
ユニットテストに置き換えてみた
これらの内容を開発計画に明記した
プロセス
従来 今回
試験項目書 テストコード
試験手順書 テストコード
試験項目/手順レビュー テストコードのレビュー
試験消化作業 “make check” 叩く
or
CIで自動的に実施
Copyright 2016 FUJITSU LIMITED16
現実 : 初めてユニットテスト書く人が大半
勉強する
勉強会の開催 (エース/キーマンを講師に)
テストコード/ノウハウを共有
1h/週程度を、業務と別枠で確保
技術
勉強会 読書
(押し売り)
Copyright 2016 FUJITSU LIMITED17
開発マシンの管理者になる
スピード感のために自分で動く
各種環境/ツールの導入
環境
環境構築の主導権を握る
目的 導入環境/ツール
CI環境 Jenkins
メトリクス測定 gcov/SonarQube
コード管理(VCS) git/RhodeCode
チケット管理(ITS) Redmine
テストフレームワーク Google Test
Copyright 2016 FUJITSU LIMITED18
構築した環境の全体像
Jenkins
(CI)
(チケット管理) (コード管理)
(ユニットテスト)
(コードレビュー)
Project-A
Copyright 2016 FUJITSU LIMITED19
自己紹介と背景
アジャイルについて
技術プラクティス
導入のためにやったこと
導入のときに悩んだこと
導入の効果
導入したプラクティス
まとめ
Copyright 2016 FUJITSU LIMITED20
解決法
自分でテストコード書いて試してみた
結論
想定の範囲内でテストコードは書ける
逆に試験の実行時間は激減する
効率について
(具体的な結果は後述)
テストコード書く時間ある?
手動でテストした方が早くない?
Copyright 2016 FUJITSU LIMITED21
解決法
(なし)
結論
最初のイテレーションでやってみる
ダメならそこで手動テストに戻せば良い
品質について
(具体的な結果は後述)
手動テストと同じ品質出せる?
Copyright 2016 FUJITSU LIMITED22
工夫したこと
実装の中身はコードレビューで担保
テストカバレッジを測定して安心感を得る
心配な所は手動でホワイトボックスもやる
結論
ブラックボックステストでOKとする
ブラックボックステストについて
ブラックボックステストで良い?
従来はホワイトボックスだけど
Copyright 2016 FUJITSU LIMITED23
例) カバレッジデータ
Copyright 2016 FUJITSU LIMITED24
例) カバレッジデータ
テスト済
テスト未
↓
テストコード追加
or
手動でテストする
可視化して安心感を得る
Copyright 2016 FUJITSU LIMITED25
自己紹介と背景
アジャイルについて
技術プラクティス
導入のためにやったこと
導入のときに悩んだこと
導入の効果
導入したプラクティス
まとめ
Copyright 2016 FUJITSU LIMITED26
今回の開発概要
項目 内容
開発装置 伝送装置の制御ファーム
開発言語 C++
開発メンバ数 13人
開発規模 プロダクトコード 約30 KStep
テストコード 約30 KStep
テストカバレッジ 約80% (ラインカバレッジ)
同時期に他の3チームでも類似の開発を
行ったため、結果の比較を行う
ユニットテストの実施は岡本チームのみ
Copyright 2016 FUJITSU LIMITED27
効率について
• 基準の開発効率をクリア
• 他チーム比でも良好な結果
岡本チーム
基準値
Copyright 2016 FUJITSU LIMITED28
効率について
• 繰り返し開発でも試験工数は爆発せず
• 絶対値でも基準の範囲内(従来と同等)
実際にはイテレーションを
3回まわしている
① ② ③
Copyright 2016 FUJITSU LIMITED29
品質について
• 他チーム比でも良好な結果
Copyright 2016 FUJITSU LIMITED30
品質について
• 不具合の検出時期が上流にシフト
• ユニットテストで品質を確保可能
上流で検出
品質確保
Copyright 2016 FUJITSU LIMITED31
その他の効果 (エピソード#1)
岡本
なんかテストがFailするんですが・・・
メンバ
いつから?
いや、毎日テスト流そうよ!!
CIの本当の価値を認識
2週間前までは動いてました・・・
Copyright 2016 FUJITSU LIMITED32
その他の効果 (エピソード#2)
岡本
なんかテストが書き難いんですが・・・
メンバ
どうして?
それ、ソフトの造りが悪いよね
良い設計と実装の価値を認識
前準備とか与えるデータを
用意するのが大変すぎて・・・
Copyright 2016 FUJITSU LIMITED33
自己紹介と背景
アジャイルについて
技術プラクティス
導入のためにやったこと
導入のときに悩んだこと
導入の効果
導入したプラクティス
まとめ
Copyright 2016 FUJITSU LIMITED34
導入したプラクティス一覧
カテゴリ プラクティス
技術
コードの共同所有
バージョン管理
自動ビルド
継続的インテグレーション
シンプル設計
リファクタリング
インクリメンタル開発
自動化された回帰テスト
ユニットテスト
Copyright 2016 FUJITSU LIMITED35
導入したプラクティス一覧
カテゴリ プラクティス
プロセス
日次ミーティング (朝会)
かんばん
定期的なふりかえり
ファシリテーション
Copyright 2016 FUJITSU LIMITED36
自己紹介と背景
アジャイルについて
技術プラクティス
導入のためにやったこと
導入のときに悩んだこと
導入の効果
導入したプラクティス
まとめ
Copyright 2016 FUJITSU LIMITED37
ボトムアップからのチャレンジは可能
現場は勇気をもってやれば良い
ユニットテストで従来の単体テストを
代替することは可能
効率/品質共に致命的な問題はない
併用するという選択肢もある
継続と改善が大事
とある現場の単発事例で終わらせない
見える形で実績を積み上げて定着させる
まとめ
Copyright 2016 FUJITSU LIMITED38
アジャイルとかWFとか関係ない
技術プラクティスはプロセスに依らない
WFでもやれば良い (やるべき)
技術は超大事
エンジニア/開発部門の根幹
人とチームを大事にする
技術は人/チームに宿る
チームを作り上げるには手間と時間が必要
気づき
INTERNAL USE ONLYINTERNAL USE ONLY Copyright 2010 FUJITSU LIMITED

More Related Content

What's hot

JavaOne 2016総括 #jjug
JavaOne 2016総括 #jjugJavaOne 2016総括 #jjug
JavaOne 2016総括 #jjugYusuke Suzuki
 
JavaとOSSとAndroid - JavaAPI訴訟問題を考える
JavaとOSSとAndroid - JavaAPI訴訟問題を考えるJavaとOSSとAndroid - JavaAPI訴訟問題を考える
JavaとOSSとAndroid - JavaAPI訴訟問題を考えるYusuke Suzuki
 
今どきのアーキテクチャ設計戦略 - QCon Tokyo 2016
今どきのアーキテクチャ設計戦略 - QCon Tokyo 2016今どきのアーキテクチャ設計戦略 - QCon Tokyo 2016
今どきのアーキテクチャ設計戦略 - QCon Tokyo 2016Yusuke Suzuki
 
ITトレンドに見る日本のエンタープライズITについて
ITトレンドに見る日本のエンタープライズITについてITトレンドに見る日本のエンタープライズITについて
ITトレンドに見る日本のエンタープライズITについてYusuke Suzuki
 
「JJUG運営の戦略と戦術」 JJUG CCC 2016 Spring 基調講演
「JJUG運営の戦略と戦術」 JJUG CCC 2016 Spring 基調講演「JJUG運営の戦略と戦術」 JJUG CCC 2016 Spring 基調講演
「JJUG運営の戦略と戦術」 JJUG CCC 2016 Spring 基調講演Yusuke Suzuki
 
エンタープライズアジャイルでチームが超えるべきこと - エンタープライズアジャイル勉強会 2018年10月セミナー
エンタープライズアジャイルでチームが超えるべきこと - エンタープライズアジャイル勉強会 2018年10月セミナーエンタープライズアジャイルでチームが超えるべきこと - エンタープライズアジャイル勉強会 2018年10月セミナー
エンタープライズアジャイルでチームが超えるべきこと - エンタープライズアジャイル勉強会 2018年10月セミナーYusuke Suzuki
 
Javaエンジニアのためのアーキテクト講座-JJUG CCC 2014 Fall
Javaエンジニアのためのアーキテクト講座-JJUG CCC 2014 FallJavaエンジニアのためのアーキテクト講座-JJUG CCC 2014 Fall
Javaエンジニアのためのアーキテクト講座-JJUG CCC 2014 FallYusuke Suzuki
 
Javaのカルチャーとグロース - MANABIYA 2018
Javaのカルチャーとグロース - MANABIYA 2018Javaのカルチャーとグロース - MANABIYA 2018
Javaのカルチャーとグロース - MANABIYA 2018Yusuke Suzuki
 
JavaエンタープライズアーキテクチャにおけるHTML5 - Enterprise ☓ HTML5 Web Application Conference ...
JavaエンタープライズアーキテクチャにおけるHTML5 - Enterprise ☓ HTML5 Web Application Conference ...JavaエンタープライズアーキテクチャにおけるHTML5 - Enterprise ☓ HTML5 Web Application Conference ...
JavaエンタープライズアーキテクチャにおけるHTML5 - Enterprise ☓ HTML5 Web Application Conference ...Yusuke Suzuki
 
JJUG初心者のためのJava/JJUG講座
JJUG初心者のためのJava/JJUG講座JJUG初心者のためのJava/JJUG講座
JJUG初心者のためのJava/JJUG講座Yusuke Suzuki
 
Javaはコミュニティの力で再び偉大になれるのか
Javaはコミュニティの力で再び偉大になれるのかJavaはコミュニティの力で再び偉大になれるのか
Javaはコミュニティの力で再び偉大になれるのかYusuke Suzuki
 
「ITアーキテクトの役割と責任」デブサミ2015 20-C-1
「ITアーキテクトの役割と責任」デブサミ2015 20-C-1「ITアーキテクトの役割と責任」デブサミ2015 20-C-1
「ITアーキテクトの役割と責任」デブサミ2015 20-C-1Yusuke Suzuki
 
MicroserviceでのNoOps戦略 - NoOps Meetup Tokyo #2 #NoOpsJP
MicroserviceでのNoOps戦略 - NoOps Meetup Tokyo #2 #NoOpsJPMicroserviceでのNoOps戦略 - NoOps Meetup Tokyo #2 #NoOpsJP
MicroserviceでのNoOps戦略 - NoOps Meetup Tokyo #2 #NoOpsJPYusuke Suzuki
 
アーキテクチャのレビューについて - JaSST Review '18
アーキテクチャのレビューについて - JaSST Review '18アーキテクチャのレビューについて - JaSST Review '18
アーキテクチャのレビューについて - JaSST Review '18Yusuke Suzuki
 
アジャイル開発を支えるアーキテクチャ設計とは
アジャイル開発を支えるアーキテクチャ設計とはアジャイル開発を支えるアーキテクチャ設計とは
アジャイル開発を支えるアーキテクチャ設計とはYusuke Suzuki
 
クラウド時代のエンジニアについて #sesfukui
クラウド時代のエンジニアについて #sesfukuiクラウド時代のエンジニアについて #sesfukui
クラウド時代のエンジニアについて #sesfukuiYusuke Suzuki
 
エンタープライズアジャイルにおける要求探索の勘所 要求開発アライアンス2018年7月定例会
エンタープライズアジャイルにおける要求探索の勘所 要求開発アライアンス2018年7月定例会エンタープライズアジャイルにおける要求探索の勘所 要求開発アライアンス2018年7月定例会
エンタープライズアジャイルにおける要求探索の勘所 要求開発アライアンス2018年7月定例会Yusuke Suzuki
 
マイクロサービス化設計入門 - AWS Dev Day Tokyo 2017
マイクロサービス化設計入門 - AWS Dev Day Tokyo 2017マイクロサービス化設計入門 - AWS Dev Day Tokyo 2017
マイクロサービス化設計入門 - AWS Dev Day Tokyo 2017Yusuke Suzuki
 
クラウドを超えた先の企業システム像 20091008 JJUG CCC
クラウドを超えた先の企業システム像 20091008 JJUG CCCクラウドを超えた先の企業システム像 20091008 JJUG CCC
クラウドを超えた先の企業システム像 20091008 JJUG CCCYusuke Suzuki
 

What's hot (20)

JavaOne 2016総括 #jjug
JavaOne 2016総括 #jjugJavaOne 2016総括 #jjug
JavaOne 2016総括 #jjug
 
JavaとOSSとAndroid - JavaAPI訴訟問題を考える
JavaとOSSとAndroid - JavaAPI訴訟問題を考えるJavaとOSSとAndroid - JavaAPI訴訟問題を考える
JavaとOSSとAndroid - JavaAPI訴訟問題を考える
 
今どきのアーキテクチャ設計戦略 - QCon Tokyo 2016
今どきのアーキテクチャ設計戦略 - QCon Tokyo 2016今どきのアーキテクチャ設計戦略 - QCon Tokyo 2016
今どきのアーキテクチャ設計戦略 - QCon Tokyo 2016
 
ITトレンドに見る日本のエンタープライズITについて
ITトレンドに見る日本のエンタープライズITについてITトレンドに見る日本のエンタープライズITについて
ITトレンドに見る日本のエンタープライズITについて
 
「JJUG運営の戦略と戦術」 JJUG CCC 2016 Spring 基調講演
「JJUG運営の戦略と戦術」 JJUG CCC 2016 Spring 基調講演「JJUG運営の戦略と戦術」 JJUG CCC 2016 Spring 基調講演
「JJUG運営の戦略と戦術」 JJUG CCC 2016 Spring 基調講演
 
エンタープライズアジャイルでチームが超えるべきこと - エンタープライズアジャイル勉強会 2018年10月セミナー
エンタープライズアジャイルでチームが超えるべきこと - エンタープライズアジャイル勉強会 2018年10月セミナーエンタープライズアジャイルでチームが超えるべきこと - エンタープライズアジャイル勉強会 2018年10月セミナー
エンタープライズアジャイルでチームが超えるべきこと - エンタープライズアジャイル勉強会 2018年10月セミナー
 
Javaエンジニアのためのアーキテクト講座-JJUG CCC 2014 Fall
Javaエンジニアのためのアーキテクト講座-JJUG CCC 2014 FallJavaエンジニアのためのアーキテクト講座-JJUG CCC 2014 Fall
Javaエンジニアのためのアーキテクト講座-JJUG CCC 2014 Fall
 
Javaのカルチャーとグロース - MANABIYA 2018
Javaのカルチャーとグロース - MANABIYA 2018Javaのカルチャーとグロース - MANABIYA 2018
Javaのカルチャーとグロース - MANABIYA 2018
 
JavaエンタープライズアーキテクチャにおけるHTML5 - Enterprise ☓ HTML5 Web Application Conference ...
JavaエンタープライズアーキテクチャにおけるHTML5 - Enterprise ☓ HTML5 Web Application Conference ...JavaエンタープライズアーキテクチャにおけるHTML5 - Enterprise ☓ HTML5 Web Application Conference ...
JavaエンタープライズアーキテクチャにおけるHTML5 - Enterprise ☓ HTML5 Web Application Conference ...
 
JJUG CCC 2013 Spring 定期総会資料
JJUG CCC 2013 Spring 定期総会資料JJUG CCC 2013 Spring 定期総会資料
JJUG CCC 2013 Spring 定期総会資料
 
JJUG初心者のためのJava/JJUG講座
JJUG初心者のためのJava/JJUG講座JJUG初心者のためのJava/JJUG講座
JJUG初心者のためのJava/JJUG講座
 
Javaはコミュニティの力で再び偉大になれるのか
Javaはコミュニティの力で再び偉大になれるのかJavaはコミュニティの力で再び偉大になれるのか
Javaはコミュニティの力で再び偉大になれるのか
 
「ITアーキテクトの役割と責任」デブサミ2015 20-C-1
「ITアーキテクトの役割と責任」デブサミ2015 20-C-1「ITアーキテクトの役割と責任」デブサミ2015 20-C-1
「ITアーキテクトの役割と責任」デブサミ2015 20-C-1
 
MicroserviceでのNoOps戦略 - NoOps Meetup Tokyo #2 #NoOpsJP
MicroserviceでのNoOps戦略 - NoOps Meetup Tokyo #2 #NoOpsJPMicroserviceでのNoOps戦略 - NoOps Meetup Tokyo #2 #NoOpsJP
MicroserviceでのNoOps戦略 - NoOps Meetup Tokyo #2 #NoOpsJP
 
アーキテクチャのレビューについて - JaSST Review '18
アーキテクチャのレビューについて - JaSST Review '18アーキテクチャのレビューについて - JaSST Review '18
アーキテクチャのレビューについて - JaSST Review '18
 
アジャイル開発を支えるアーキテクチャ設計とは
アジャイル開発を支えるアーキテクチャ設計とはアジャイル開発を支えるアーキテクチャ設計とは
アジャイル開発を支えるアーキテクチャ設計とは
 
クラウド時代のエンジニアについて #sesfukui
クラウド時代のエンジニアについて #sesfukuiクラウド時代のエンジニアについて #sesfukui
クラウド時代のエンジニアについて #sesfukui
 
エンタープライズアジャイルにおける要求探索の勘所 要求開発アライアンス2018年7月定例会
エンタープライズアジャイルにおける要求探索の勘所 要求開発アライアンス2018年7月定例会エンタープライズアジャイルにおける要求探索の勘所 要求開発アライアンス2018年7月定例会
エンタープライズアジャイルにおける要求探索の勘所 要求開発アライアンス2018年7月定例会
 
マイクロサービス化設計入門 - AWS Dev Day Tokyo 2017
マイクロサービス化設計入門 - AWS Dev Day Tokyo 2017マイクロサービス化設計入門 - AWS Dev Day Tokyo 2017
マイクロサービス化設計入門 - AWS Dev Day Tokyo 2017
 
クラウドを超えた先の企業システム像 20091008 JJUG CCC
クラウドを超えた先の企業システム像 20091008 JJUG CCCクラウドを超えた先の企業システム像 20091008 JJUG CCC
クラウドを超えた先の企業システム像 20091008 JJUG CCC
 

Viewers also liked

Agile, Software Engineering, Process Kaizen. They mix like oil and water ?
Agile, Software Engineering, Process Kaizen. They mix like oil and water ?Agile, Software Engineering, Process Kaizen. They mix like oil and water ?
Agile, Software Engineering, Process Kaizen. They mix like oil and water ?Kenji Hiranabe
 
XP祭りin関西2016 明後日からはじめるアジャイル [ Here comes tao of scrum kansai ]
XP祭りin関西2016 明後日からはじめるアジャイル [ Here comes tao of scrum kansai ]XP祭りin関西2016 明後日からはじめるアジャイル [ Here comes tao of scrum kansai ]
XP祭りin関西2016 明後日からはじめるアジャイル [ Here comes tao of scrum kansai ]Takahiro Kaihara
 
5分で分かるアジャイルムーブメントの歴史 拡大版
5分で分かるアジャイルムーブメントの歴史 拡大版5分で分かるアジャイルムーブメントの歴史 拡大版
5分で分かるアジャイルムーブメントの歴史 拡大版Fumihiko Kinoshita
 
価値ある製品を生み出すためのアジャイル実践ポイント
価値ある製品を生み出すためのアジャイル実践ポイント価値ある製品を生み出すためのアジャイル実践ポイント
価値ある製品を生み出すためのアジャイル実践ポイントNaoya Maekawa
 
「Redmineの運用パターン集~私に聞くな、チケットシステムに聞け」
「Redmineの運用パターン集~私に聞くな、チケットシステムに聞け」「Redmineの運用パターン集~私に聞くな、チケットシステムに聞け」
「Redmineの運用パターン集~私に聞くな、チケットシステムに聞け」akipii Oga
 
JaxaのRedmineモデル
JaxaのRedmineモデルJaxaのRedmineモデル
JaxaのRedmineモデルakipii Oga
 
【第7回redmine.tokyo勉強会】RedmineのFAQとアンチパターン集~WBS駆動からチケット駆動へ
【第7回redmine.tokyo勉強会】RedmineのFAQとアンチパターン集~WBS駆動からチケット駆動へ【第7回redmine.tokyo勉強会】RedmineのFAQとアンチパターン集~WBS駆動からチケット駆動へ
【第7回redmine.tokyo勉強会】RedmineのFAQとアンチパターン集~WBS駆動からチケット駆動へakipii Oga
 
はじめる! Redmine
はじめる! Redmineはじめる! Redmine
はじめる! RedmineGo Maeda
 
Redmineによるwebサポート窓口の実装と運用
Redmineによるwebサポート窓口の実装と運用Redmineによるwebサポート窓口の実装と運用
Redmineによるwebサポート窓口の実装と運用Go Maeda
 
挫折しないRedmine
挫折しないRedmine挫折しないRedmine
挫折しないRedmineGo Maeda
 
Redmineを使ってみよう
Redmineを使ってみようRedmineを使ってみよう
Redmineを使ってみようmrgoofy33 .
 
はじめる! Redmine (2015)
はじめる! Redmine (2015)はじめる! Redmine (2015)
はじめる! Redmine (2015)Go Maeda
 
Redmineによるメール対応管理の運用事例
Redmineによるメール対応管理の運用事例Redmineによるメール対応管理の運用事例
Redmineによるメール対応管理の運用事例Go Maeda
 
Amebaアプリ QAの歴史(サイバーエージェント関根様)
Amebaアプリ QAの歴史(サイバーエージェント関根様)Amebaアプリ QAの歴史(サイバーエージェント関根様)
Amebaアプリ QAの歴史(サイバーエージェント関根様)ques_staff
 
Kubernetes & Google Container Engine; DockerコンテナをGKEでクラスタリングしてみた
Kubernetes & Google Container Engine; DockerコンテナをGKEでクラスタリングしてみたKubernetes & Google Container Engine; DockerコンテナをGKEでクラスタリングしてみた
Kubernetes & Google Container Engine; DockerコンテナをGKEでクラスタリングしてみた祐磨 堀
 
講演2 実例に基づくRedmine管理者入門 r2
講演2 実例に基づくRedmine管理者入門 r2講演2 実例に基づくRedmine管理者入門 r2
講演2 実例に基づくRedmine管理者入門 r2Hidehisa Matsutani
 
Oftec Lightning Talk 第7回 最近触ったLinuxディストリビューションの紹介
Oftec Lightning Talk 第7回 最近触ったLinuxディストリビューションの紹介Oftec Lightning Talk 第7回 最近触ったLinuxディストリビューションの紹介
Oftec Lightning Talk 第7回 最近触ったLinuxディストリビューションの紹介Yu Nobara
 
第6回品川Redmine勉強会発表資料「開発基盤としてのRedmine~Redmineをカスタマイズするポイント」
第6回品川Redmine勉強会発表資料「開発基盤としてのRedmine~Redmineをカスタマイズするポイント」第6回品川Redmine勉強会発表資料「開発基盤としてのRedmine~Redmineをカスタマイズするポイント」
第6回品川Redmine勉強会発表資料「開発基盤としてのRedmine~Redmineをカスタマイズするポイント」akipii Oga
 
Redmineプラグイン導入・開発入門
Redmineプラグイン導入・開発入門Redmineプラグイン導入・開発入門
Redmineプラグイン導入・開発入門Minoru Maeda
 

Viewers also liked (20)

Agile, Software Engineering, Process Kaizen. They mix like oil and water ?
Agile, Software Engineering, Process Kaizen. They mix like oil and water ?Agile, Software Engineering, Process Kaizen. They mix like oil and water ?
Agile, Software Engineering, Process Kaizen. They mix like oil and water ?
 
XP祭りin関西2016 明後日からはじめるアジャイル [ Here comes tao of scrum kansai ]
XP祭りin関西2016 明後日からはじめるアジャイル [ Here comes tao of scrum kansai ]XP祭りin関西2016 明後日からはじめるアジャイル [ Here comes tao of scrum kansai ]
XP祭りin関西2016 明後日からはじめるアジャイル [ Here comes tao of scrum kansai ]
 
5分で分かるアジャイルムーブメントの歴史 拡大版
5分で分かるアジャイルムーブメントの歴史 拡大版5分で分かるアジャイルムーブメントの歴史 拡大版
5分で分かるアジャイルムーブメントの歴史 拡大版
 
価値ある製品を生み出すためのアジャイル実践ポイント
価値ある製品を生み出すためのアジャイル実践ポイント価値ある製品を生み出すためのアジャイル実践ポイント
価値ある製品を生み出すためのアジャイル実践ポイント
 
「Redmineの運用パターン集~私に聞くな、チケットシステムに聞け」
「Redmineの運用パターン集~私に聞くな、チケットシステムに聞け」「Redmineの運用パターン集~私に聞くな、チケットシステムに聞け」
「Redmineの運用パターン集~私に聞くな、チケットシステムに聞け」
 
JaxaのRedmineモデル
JaxaのRedmineモデルJaxaのRedmineモデル
JaxaのRedmineモデル
 
【第7回redmine.tokyo勉強会】RedmineのFAQとアンチパターン集~WBS駆動からチケット駆動へ
【第7回redmine.tokyo勉強会】RedmineのFAQとアンチパターン集~WBS駆動からチケット駆動へ【第7回redmine.tokyo勉強会】RedmineのFAQとアンチパターン集~WBS駆動からチケット駆動へ
【第7回redmine.tokyo勉強会】RedmineのFAQとアンチパターン集~WBS駆動からチケット駆動へ
 
はじめる! Redmine
はじめる! Redmineはじめる! Redmine
はじめる! Redmine
 
Redmineによるwebサポート窓口の実装と運用
Redmineによるwebサポート窓口の実装と運用Redmineによるwebサポート窓口の実装と運用
Redmineによるwebサポート窓口の実装と運用
 
挫折しないRedmine
挫折しないRedmine挫折しないRedmine
挫折しないRedmine
 
Redmineを使ってみよう
Redmineを使ってみようRedmineを使ってみよう
Redmineを使ってみよう
 
はじめる! Redmine (2015)
はじめる! Redmine (2015)はじめる! Redmine (2015)
はじめる! Redmine (2015)
 
Redmineによるメール対応管理の運用事例
Redmineによるメール対応管理の運用事例Redmineによるメール対応管理の運用事例
Redmineによるメール対応管理の運用事例
 
Amebaアプリ QAの歴史(サイバーエージェント関根様)
Amebaアプリ QAの歴史(サイバーエージェント関根様)Amebaアプリ QAの歴史(サイバーエージェント関根様)
Amebaアプリ QAの歴史(サイバーエージェント関根様)
 
Redmine + MySQL 応答性能の調査結果と対策
Redmine + MySQL 応答性能の調査結果と対策Redmine + MySQL 応答性能の調査結果と対策
Redmine + MySQL 応答性能の調査結果と対策
 
Kubernetes & Google Container Engine; DockerコンテナをGKEでクラスタリングしてみた
Kubernetes & Google Container Engine; DockerコンテナをGKEでクラスタリングしてみたKubernetes & Google Container Engine; DockerコンテナをGKEでクラスタリングしてみた
Kubernetes & Google Container Engine; DockerコンテナをGKEでクラスタリングしてみた
 
講演2 実例に基づくRedmine管理者入門 r2
講演2 実例に基づくRedmine管理者入門 r2講演2 実例に基づくRedmine管理者入門 r2
講演2 実例に基づくRedmine管理者入門 r2
 
Oftec Lightning Talk 第7回 最近触ったLinuxディストリビューションの紹介
Oftec Lightning Talk 第7回 最近触ったLinuxディストリビューションの紹介Oftec Lightning Talk 第7回 最近触ったLinuxディストリビューションの紹介
Oftec Lightning Talk 第7回 最近触ったLinuxディストリビューションの紹介
 
第6回品川Redmine勉強会発表資料「開発基盤としてのRedmine~Redmineをカスタマイズするポイント」
第6回品川Redmine勉強会発表資料「開発基盤としてのRedmine~Redmineをカスタマイズするポイント」第6回品川Redmine勉強会発表資料「開発基盤としてのRedmine~Redmineをカスタマイズするポイント」
第6回品川Redmine勉強会発表資料「開発基盤としてのRedmine~Redmineをカスタマイズするポイント」
 
Redmineプラグイン導入・開発入門
Redmineプラグイン導入・開発入門Redmineプラグイン導入・開発入門
Redmineプラグイン導入・開発入門
 

Similar to 現場から始めるアジャイルの技術プラクティス

アジャイルをはじめてみよう(チュートリアル付き):Agile Japan 2013
アジャイルをはじめてみよう(チュートリアル付き):Agile Japan 2013アジャイルをはじめてみよう(チュートリアル付き):Agile Japan 2013
アジャイルをはじめてみよう(チュートリアル付き):Agile Japan 2013Naoya Maekawa
 
高速プロトタイピングで失敗しないUI開発 - Developer summit 2016 summer
高速プロトタイピングで失敗しないUI開発 - Developer summit 2016 summer高速プロトタイピングで失敗しないUI開発 - Developer summit 2016 summer
高速プロトタイピングで失敗しないUI開発 - Developer summit 2016 summerSatoru Yamaguchi
 
Sj16 組込アジャイル徹底分析
Sj16 組込アジャイル徹底分析Sj16 組込アジャイル徹底分析
Sj16 組込アジャイル徹底分析akihiro tanaka
 
Business Innovation cases driven by AI and BigData technologies
Business Innovation cases driven by AI and BigData technologiesBusiness Innovation cases driven by AI and BigData technologies
Business Innovation cases driven by AI and BigData technologiesDataWorks Summit/Hadoop Summit
 
[配布用]Hadoop summit 富士通_20161102
[配布用]Hadoop summit 富士通_20161102[配布用]Hadoop summit 富士通_20161102
[配布用]Hadoop summit 富士通_20161102Haruyasu Ueda
 
組込みだからこそアジャイルやろうよ! (JASA中部セミナー20131004)
組込みだからこそアジャイルやろうよ! (JASA中部セミナー20131004)組込みだからこそアジャイルやろうよ! (JASA中部セミナー20131004)
組込みだからこそアジャイルやろうよ! (JASA中部セミナー20131004)Naoya Maekawa
 
SPI Japan 2012 「SEPG活動とアジャイルの親和性を考える」ポジショントーク用
SPI Japan 2012 「SEPG活動とアジャイルの親和性を考える」ポジショントーク用SPI Japan 2012 「SEPG活動とアジャイルの親和性を考える」ポジショントーク用
SPI Japan 2012 「SEPG活動とアジャイルの親和性を考える」ポジショントーク用Naoya Maekawa
 
Are you ready? ~これからアジャイル開発をスタートアップするために プラクティスの実践と実感~
Are you ready? ~これからアジャイル開発をスタートアップするために プラクティスの実践と実感~Are you ready? ~これからアジャイル開発をスタートアップするために プラクティスの実践と実感~
Are you ready? ~これからアジャイル開発をスタートアップするために プラクティスの実践と実感~Akira Ikeda
 
企業のオープンソース活動を支える Open Source Program Office (OSPO)
企業のオープンソース活動を支える Open Source Program Office (OSPO)企業のオープンソース活動を支える Open Source Program Office (OSPO)
企業のオープンソース活動を支える Open Source Program Office (OSPO)takanori suzuki
 
アジャイルをシミュレーションで理解する
アジャイルをシミュレーションで理解するアジャイルをシミュレーションで理解する
アジャイルをシミュレーションで理解するAkiyah
 
ソフトウェアエンジニアでなくてもアジャイルが分かるセミナー
ソフトウェアエンジニアでなくてもアジャイルが分かるセミナーソフトウェアエンジニアでなくてもアジャイルが分かるセミナー
ソフトウェアエンジニアでなくてもアジャイルが分かるセミナーNaoya Maekawa
 
アジャイルの現在過去未来。そしてアジャイルを進化させる「ムダ取り」とは。
アジャイルの現在過去未来。そしてアジャイルを進化させる「ムダ取り」とは。アジャイルの現在過去未来。そしてアジャイルを進化させる「ムダ取り」とは。
アジャイルの現在過去未来。そしてアジャイルを進化させる「ムダ取り」とは。NaITE_Official
 
名古屋アジャイル勉強会トヨタ生産方式に学ぶカイゼン
名古屋アジャイル勉強会トヨタ生産方式に学ぶカイゼン名古屋アジャイル勉強会トヨタ生産方式に学ぶカイゼン
名古屋アジャイル勉強会トヨタ生産方式に学ぶカイゼンhiroyuki Yamamoto
 
「アジャイル入門」(AgileJapan2013チュートリアルセッション資料)
「アジャイル入門」(AgileJapan2013チュートリアルセッション資料)「アジャイル入門」(AgileJapan2013チュートリアルセッション資料)
「アジャイル入門」(AgileJapan2013チュートリアルセッション資料)Makoto Nishikawa
 
シン・コラボレーション
シン・コラボレーションシン・コラボレーション
シン・コラボレーションHiroaki Matsunaga
 
はじめようプロトタイピング(2013/09 技術ひろば.net 勉強会)
はじめようプロトタイピング(2013/09 技術ひろば.net 勉強会)はじめようプロトタイピング(2013/09 技術ひろば.net 勉強会)
はじめようプロトタイピング(2013/09 技術ひろば.net 勉強会)Satoru Yamaguchi
 
ゲームインフラとGoogle Cloud Platformと酒!
ゲームインフラとGoogle Cloud Platformと酒!ゲームインフラとGoogle Cloud Platformと酒!
ゲームインフラとGoogle Cloud Platformと酒!Hasegawa Yusuke
 

Similar to 現場から始めるアジャイルの技術プラクティス (20)

アジャイルをはじめてみよう(チュートリアル付き):Agile Japan 2013
アジャイルをはじめてみよう(チュートリアル付き):Agile Japan 2013アジャイルをはじめてみよう(チュートリアル付き):Agile Japan 2013
アジャイルをはじめてみよう(チュートリアル付き):Agile Japan 2013
 
高速プロトタイピングで失敗しないUI開発 - Developer summit 2016 summer
高速プロトタイピングで失敗しないUI開発 - Developer summit 2016 summer高速プロトタイピングで失敗しないUI開発 - Developer summit 2016 summer
高速プロトタイピングで失敗しないUI開発 - Developer summit 2016 summer
 
Sj16 組込アジャイル徹底分析
Sj16 組込アジャイル徹底分析Sj16 組込アジャイル徹底分析
Sj16 組込アジャイル徹底分析
 
Business Innovation cases driven by AI and BigData technologies
Business Innovation cases driven by AI and BigData technologiesBusiness Innovation cases driven by AI and BigData technologies
Business Innovation cases driven by AI and BigData technologies
 
[配布用]Hadoop summit 富士通_20161102
[配布用]Hadoop summit 富士通_20161102[配布用]Hadoop summit 富士通_20161102
[配布用]Hadoop summit 富士通_20161102
 
組込みだからこそアジャイルやろうよ! (JASA中部セミナー20131004)
組込みだからこそアジャイルやろうよ! (JASA中部セミナー20131004)組込みだからこそアジャイルやろうよ! (JASA中部セミナー20131004)
組込みだからこそアジャイルやろうよ! (JASA中部セミナー20131004)
 
SPI Japan 2012 「SEPG活動とアジャイルの親和性を考える」ポジショントーク用
SPI Japan 2012 「SEPG活動とアジャイルの親和性を考える」ポジショントーク用SPI Japan 2012 「SEPG活動とアジャイルの親和性を考える」ポジショントーク用
SPI Japan 2012 「SEPG活動とアジャイルの親和性を考える」ポジショントーク用
 
Are you ready? ~これからアジャイル開発をスタートアップするために プラクティスの実践と実感~
Are you ready? ~これからアジャイル開発をスタートアップするために プラクティスの実践と実感~Are you ready? ~これからアジャイル開発をスタートアップするために プラクティスの実践と実感~
Are you ready? ~これからアジャイル開発をスタートアップするために プラクティスの実践と実感~
 
企業のオープンソース活動を支える Open Source Program Office (OSPO)
企業のオープンソース活動を支える Open Source Program Office (OSPO)企業のオープンソース活動を支える Open Source Program Office (OSPO)
企業のオープンソース活動を支える Open Source Program Office (OSPO)
 
アジャイルをシミュレーションで理解する
アジャイルをシミュレーションで理解するアジャイルをシミュレーションで理解する
アジャイルをシミュレーションで理解する
 
ソフトウェアエンジニアでなくてもアジャイルが分かるセミナー
ソフトウェアエンジニアでなくてもアジャイルが分かるセミナーソフトウェアエンジニアでなくてもアジャイルが分かるセミナー
ソフトウェアエンジニアでなくてもアジャイルが分かるセミナー
 
アジャイルの現在過去未来。そしてアジャイルを進化させる「ムダ取り」とは。
アジャイルの現在過去未来。そしてアジャイルを進化させる「ムダ取り」とは。アジャイルの現在過去未来。そしてアジャイルを進化させる「ムダ取り」とは。
アジャイルの現在過去未来。そしてアジャイルを進化させる「ムダ取り」とは。
 
名古屋アジャイル勉強会トヨタ生産方式に学ぶカイゼン
名古屋アジャイル勉強会トヨタ生産方式に学ぶカイゼン名古屋アジャイル勉強会トヨタ生産方式に学ぶカイゼン
名古屋アジャイル勉強会トヨタ生産方式に学ぶカイゼン
 
「アジャイル入門」(AgileJapan2013チュートリアルセッション資料)
「アジャイル入門」(AgileJapan2013チュートリアルセッション資料)「アジャイル入門」(AgileJapan2013チュートリアルセッション資料)
「アジャイル入門」(AgileJapan2013チュートリアルセッション資料)
 
20160520_ios
20160520_ios20160520_ios
20160520_ios
 
シン・コラボレーション
シン・コラボレーションシン・コラボレーション
シン・コラボレーション
 
アジャイルを「ふりかえる」
アジャイルを「ふりかえる」アジャイルを「ふりかえる」
アジャイルを「ふりかえる」
 
はじめようプロトタイピング(2013/09 技術ひろば.net 勉強会)
はじめようプロトタイピング(2013/09 技術ひろば.net 勉強会)はじめようプロトタイピング(2013/09 技術ひろば.net 勉強会)
はじめようプロトタイピング(2013/09 技術ひろば.net 勉強会)
 
はじめようプロトタイピング 〜もう⼿戻りなんて⾔わせない!〜
はじめようプロトタイピング 〜もう⼿戻りなんて⾔わせない!〜はじめようプロトタイピング 〜もう⼿戻りなんて⾔わせない!〜
はじめようプロトタイピング 〜もう⼿戻りなんて⾔わせない!〜
 
ゲームインフラとGoogle Cloud Platformと酒!
ゲームインフラとGoogle Cloud Platformと酒!ゲームインフラとGoogle Cloud Platformと酒!
ゲームインフラとGoogle Cloud Platformと酒!
 

More from Takuya Okamoto

コミュニティと人の縁
コミュニティと人の縁コミュニティと人の縁
コミュニティと人の縁Takuya Okamoto
 
アジャイル開発の中の設計
アジャイル開発の中の設計アジャイル開発の中の設計
アジャイル開発の中の設計Takuya Okamoto
 
地方でエンジニアをやる
 地方でエンジニアをやる 地方でエンジニアをやる
地方でエンジニアをやるTakuya Okamoto
 
現場から組織を動かす方法
現場から組織を動かす方法現場から組織を動かす方法
現場から組織を動かす方法Takuya Okamoto
 
びっくりするくらいリモートワークが馴染んだ話
びっくりするくらいリモートワークが馴染んだ話びっくりするくらいリモートワークが馴染んだ話
びっくりするくらいリモートワークが馴染んだ話Takuya Okamoto
 

More from Takuya Okamoto (8)

コミュニティと人の縁
コミュニティと人の縁コミュニティと人の縁
コミュニティと人の縁
 
アジャイル開発の中の設計
アジャイル開発の中の設計アジャイル開発の中の設計
アジャイル開発の中の設計
 
地方でエンジニアをやる
 地方でエンジニアをやる 地方でエンジニアをやる
地方でエンジニアをやる
 
現場から組織を動かす方法
現場から組織を動かす方法現場から組織を動かす方法
現場から組織を動かす方法
 
びっくりするくらいリモートワークが馴染んだ話
びっくりするくらいリモートワークが馴染んだ話びっくりするくらいリモートワークが馴染んだ話
びっくりするくらいリモートワークが馴染んだ話
 
読書のススメ
読書のススメ読書のススメ
読書のススメ
 
アジャイル開発
アジャイル開発アジャイル開発
アジャイル開発
 
Meetup 7-lt-1
Meetup 7-lt-1Meetup 7-lt-1
Meetup 7-lt-1
 

現場から始めるアジャイルの技術プラクティス

  • 2. Copyright 2016 FUJITSU LIMITED1 本日お話しする内容 自己紹介と背景 アジャイルについて 技術プラクティス 導入のためにやったこと 導入のときに悩んだこと 導入の効果 導入したプラクティス まとめ
  • 3. Copyright 2016 FUJITSU LIMITED2 自己紹介と背景 アジャイルについて 技術プラクティス 導入のためにやったこと 導入のときに悩んだこと 導入の効果 導入したプラクティス まとめ
  • 4. Copyright 2016 FUJITSU LIMITED3 ソフトウェア開発者 (19年目) 開発チームのマネージャ アジャイルとの関係 2002年、XPと出会う (長い間、一人で悶々とし続ける) 2013年からAgile Japanに参加(聴講者) 現在は、アジャイルを実業務へ 適用/推進する為に奮闘中 自己紹介
  • 5. Copyright 2016 FUJITSU LIMITED4 伝送装置の制御ソフト開発 特徴 大規模 (数十人、数カ月) 厳格なプロセス (基本はWF) HW/SW 同時開発 (組み込み的) 業務ドメインと背景 インターネット マルチ・データセンター 光アクセス WiFi 3G/LTE 広域ネットワーク (光伝送装置で構成) 伝送装置 制御ソフト開発 ココ WF: Water Fall HW: Hardware SW: Software
  • 6. Copyright 2016 FUJITSU LIMITED5 特徴 (続き) 顧客までの遠い距離 業務ドメインと背景 顧客 営業 事業部 開発 商談 開発方針 開発委託 ココ いろいろとアジャイルには不利な条件
  • 7. Copyright 2016 FUJITSU LIMITED6 自己紹介と背景 アジャイルについて 技術プラクティス 導入のためにやったこと 導入のときに悩んだこと 導入の効果 導入したプラクティス まとめ
  • 8. Copyright 2016 FUJITSU LIMITED7 アジャイル導入あるある 開発 アジャイルでやって良いよ。 出来るよね? 一括請負契約だから・・・ 開発プロセスが・・・ (仮想) 偉い人 え !?
  • 9. Copyright 2016 FUJITSU LIMITED8 アジャイル導入の壁 アジャイル開発 プロセス 技術 開発プロセス定義 契約形態 オブジェクト指向 テスト駆動 ユニットテスト CI コードレビュー 開発環境 リファクタリング 構成管理 技術の壁は現場で解決しないとダメ CI: Continuous Integration
  • 10. Copyright 2016 FUJITSU LIMITED9 自己紹介と背景 アジャイルについて 技術プラクティス 導入のためにやったこと 導入のときに悩んだこと 導入の効果 導入したプラクティス まとめ
  • 11. Copyright 2016 FUJITSU LIMITED10 アジャイルの技術プラクティス いったいどれから手を付ければ・・・ テスト駆動開発 回帰テスト ペアプログラミング リファクタリングユニットテスト シンプルデザイン 継続的インテグレーション コードの共同所有 岡本
  • 12. Copyright 2016 FUJITSU LIMITED11 とあるセミナーにて (2013年頃) 岡本 ユニットテストからやるのが オススメ 先達 アジャイルってどうすれば良いですか? なんでですか? 自動化して怒る上司はいないから (上手いこと言うな~) しかし、本当は深い示唆があった
  • 13. Copyright 2016 FUJITSU LIMITED12 アジャイル開発 ユニットテストの前提と価値 ユニットテスト 良い設計 オブジェクト指向 リファクタリングCI繰り返し開発 環境良い実装 構成管理 CIツール 前 提 価 値 ユニットテストはアジャイルの肝
  • 14. Copyright 2016 FUJITSU LIMITED13 (参考)アジャイル実践企業の実態調査 (出典:牛尾剛 「アジャイル・DevOps 実践企業サーベイ(2016)」 ) 半数以上のチームで ユニットテストが 十分に出来ていない
  • 15. Copyright 2016 FUJITSU LIMITED14 自己紹介と背景 アジャイルについて 技術プラクティス 導入のためにやったこと 導入のときに悩んだこと 導入の効果 導入したプラクティス まとめ
  • 16. Copyright 2016 FUJITSU LIMITED15 従来の単体試験(手動テスト)を ユニットテストに置き換えてみた これらの内容を開発計画に明記した プロセス 従来 今回 試験項目書 テストコード 試験手順書 テストコード 試験項目/手順レビュー テストコードのレビュー 試験消化作業 “make check” 叩く or CIで自動的に実施
  • 17. Copyright 2016 FUJITSU LIMITED16 現実 : 初めてユニットテスト書く人が大半 勉強する 勉強会の開催 (エース/キーマンを講師に) テストコード/ノウハウを共有 1h/週程度を、業務と別枠で確保 技術 勉強会 読書 (押し売り)
  • 18. Copyright 2016 FUJITSU LIMITED17 開発マシンの管理者になる スピード感のために自分で動く 各種環境/ツールの導入 環境 環境構築の主導権を握る 目的 導入環境/ツール CI環境 Jenkins メトリクス測定 gcov/SonarQube コード管理(VCS) git/RhodeCode チケット管理(ITS) Redmine テストフレームワーク Google Test
  • 19. Copyright 2016 FUJITSU LIMITED18 構築した環境の全体像 Jenkins (CI) (チケット管理) (コード管理) (ユニットテスト) (コードレビュー) Project-A
  • 20. Copyright 2016 FUJITSU LIMITED19 自己紹介と背景 アジャイルについて 技術プラクティス 導入のためにやったこと 導入のときに悩んだこと 導入の効果 導入したプラクティス まとめ
  • 21. Copyright 2016 FUJITSU LIMITED20 解決法 自分でテストコード書いて試してみた 結論 想定の範囲内でテストコードは書ける 逆に試験の実行時間は激減する 効率について (具体的な結果は後述) テストコード書く時間ある? 手動でテストした方が早くない?
  • 22. Copyright 2016 FUJITSU LIMITED21 解決法 (なし) 結論 最初のイテレーションでやってみる ダメならそこで手動テストに戻せば良い 品質について (具体的な結果は後述) 手動テストと同じ品質出せる?
  • 23. Copyright 2016 FUJITSU LIMITED22 工夫したこと 実装の中身はコードレビューで担保 テストカバレッジを測定して安心感を得る 心配な所は手動でホワイトボックスもやる 結論 ブラックボックステストでOKとする ブラックボックステストについて ブラックボックステストで良い? 従来はホワイトボックスだけど
  • 24. Copyright 2016 FUJITSU LIMITED23 例) カバレッジデータ
  • 25. Copyright 2016 FUJITSU LIMITED24 例) カバレッジデータ テスト済 テスト未 ↓ テストコード追加 or 手動でテストする 可視化して安心感を得る
  • 26. Copyright 2016 FUJITSU LIMITED25 自己紹介と背景 アジャイルについて 技術プラクティス 導入のためにやったこと 導入のときに悩んだこと 導入の効果 導入したプラクティス まとめ
  • 27. Copyright 2016 FUJITSU LIMITED26 今回の開発概要 項目 内容 開発装置 伝送装置の制御ファーム 開発言語 C++ 開発メンバ数 13人 開発規模 プロダクトコード 約30 KStep テストコード 約30 KStep テストカバレッジ 約80% (ラインカバレッジ) 同時期に他の3チームでも類似の開発を 行ったため、結果の比較を行う ユニットテストの実施は岡本チームのみ
  • 28. Copyright 2016 FUJITSU LIMITED27 効率について • 基準の開発効率をクリア • 他チーム比でも良好な結果 岡本チーム 基準値
  • 29. Copyright 2016 FUJITSU LIMITED28 効率について • 繰り返し開発でも試験工数は爆発せず • 絶対値でも基準の範囲内(従来と同等) 実際にはイテレーションを 3回まわしている ① ② ③
  • 30. Copyright 2016 FUJITSU LIMITED29 品質について • 他チーム比でも良好な結果
  • 31. Copyright 2016 FUJITSU LIMITED30 品質について • 不具合の検出時期が上流にシフト • ユニットテストで品質を確保可能 上流で検出 品質確保
  • 32. Copyright 2016 FUJITSU LIMITED31 その他の効果 (エピソード#1) 岡本 なんかテストがFailするんですが・・・ メンバ いつから? いや、毎日テスト流そうよ!! CIの本当の価値を認識 2週間前までは動いてました・・・
  • 33. Copyright 2016 FUJITSU LIMITED32 その他の効果 (エピソード#2) 岡本 なんかテストが書き難いんですが・・・ メンバ どうして? それ、ソフトの造りが悪いよね 良い設計と実装の価値を認識 前準備とか与えるデータを 用意するのが大変すぎて・・・
  • 34. Copyright 2016 FUJITSU LIMITED33 自己紹介と背景 アジャイルについて 技術プラクティス 導入のためにやったこと 導入のときに悩んだこと 導入の効果 導入したプラクティス まとめ
  • 35. Copyright 2016 FUJITSU LIMITED34 導入したプラクティス一覧 カテゴリ プラクティス 技術 コードの共同所有 バージョン管理 自動ビルド 継続的インテグレーション シンプル設計 リファクタリング インクリメンタル開発 自動化された回帰テスト ユニットテスト
  • 36. Copyright 2016 FUJITSU LIMITED35 導入したプラクティス一覧 カテゴリ プラクティス プロセス 日次ミーティング (朝会) かんばん 定期的なふりかえり ファシリテーション
  • 37. Copyright 2016 FUJITSU LIMITED36 自己紹介と背景 アジャイルについて 技術プラクティス 導入のためにやったこと 導入のときに悩んだこと 導入の効果 導入したプラクティス まとめ
  • 38. Copyright 2016 FUJITSU LIMITED37 ボトムアップからのチャレンジは可能 現場は勇気をもってやれば良い ユニットテストで従来の単体テストを 代替することは可能 効率/品質共に致命的な問題はない 併用するという選択肢もある 継続と改善が大事 とある現場の単発事例で終わらせない 見える形で実績を積み上げて定着させる まとめ
  • 39. Copyright 2016 FUJITSU LIMITED38 アジャイルとかWFとか関係ない 技術プラクティスはプロセスに依らない WFでもやれば良い (やるべき) 技術は超大事 エンジニア/開発部門の根幹 人とチームを大事にする 技術は人/チームに宿る チームを作り上げるには手間と時間が必要 気づき
  • 40. INTERNAL USE ONLYINTERNAL USE ONLY Copyright 2010 FUJITSU LIMITED