ROOM
C





ギャップ
良いものが
たくさん
負債を
抱えまくり


• 頻繁な OS 更新時代の到来
• サービスのアップデートに追
随できるテストの実施
• ユビキタスアプリ時代の到来
• 新しいデバイス、新しいサー
ビスを活用した UX の追及
テスト設計







業務 SE
アーキテクト
デベロッパー
テスター
プロマネ
SI の遂行に必要な専門性
(主にアプリ開発領域)
プロパー
(正社員)
サブコン
(協力会社)

日本の開発現場の
進化の難しさ
テスト作業の
最適化
設計作業の
最適化





【設計作業の「軽量化」】
• 作業の手戻や無駄を防ぐための様々な手法の提
唱
• 特に UI 設計手法が大きく進化
【テスト・リリース作業の「軽量化」】
• 様々なテスト管理ツールやテスト自動化ツール
がリリース
• リリース作業もクラウドの登場で容易に
【プログラミング言語の「軽量化」】
• 「コードを自動生成する」アプローチから、
「設計がそのまま動く」アプローチへ
• コードを短く保ってバグも減らす
【開発方法論の「軽量化」】
• 様々な Agile 開発方法論の提唱
• 試行錯誤を繰り返しながら作る

要件定義 基本設計 機能設計 詳細設計 製造 単体試験 結合試験 総合試験 移行・切替
SI 子会社で一般的な協力会社への外注範囲
機能
要件定義
外部設計
(画面設計+機能設計)
PG 設計
コーディング
単体機能テスト
結合機能
テスト
非機能
要件定義
方式設計 システムテスト
リリース
プロジェクト管理
!
!
!
!
!
!! !
業務ノウハウを持つ
社員が少なく、要件
定義・外部設計がう
まくできない
プロパーと協力会社の
責任分界点が曖昧
or 不適切
そもそも方式設計を
プロパーが実施できない
(協力会社任せだが、
協力会社も未実施)
内部設計の
先取りをして
おり、作業が
非効率的
無駄なドキュメン
テーションをさせて
おり、結果的に
コストが高くつく
KKD(勘・経験・度胸)
による旧態依然とした
プロジェクト管理
プロパーが技術に
疎いため、品質管理が
適切にできない
協力会社の実施した
テストを重複実施するなど
非効率的なテストが多い
!
非効率的・非実践的な
社内プロセスによる
管理オーバヘッドの増大
!
そもそもシステム
テストを適切に
実施していない
!
!




日本の開発現場の進化の難しさ
-なぜ日本の開発現場は進化できない?
欧米の開発現場 日本の開発現場
システム開発スタイル 内製中心 外注中心(SI 受発注)
プロセスモデル アジャイル ウォータフォール
人材流動性 高 低
組織モデル フラット ピラミッド
キャリアモデル スペシャリスト指向 ゼネラリスト指向
給与モデル 領域に依存しない マネジメントが高給


欧米的では、本質的・重要な作業に注力できるように、
非本質的なことや無駄なことを極限まで削ぎ落としている
深く考えずに
やみくもに頑張る
流した汗の量に
価値がある
決めたルールを
理由も考えずに
ただ順守する
苦労と努力と
忍耐は美徳
仕事に
貴賎なし
決めたルールを
きちんと守る



【3. 開発状況の「見える化」】
• 統合開発基盤を活用した、システム開発状
況の「見える化」
• 計数データに基づく開発状況の管理の実現
【4. 近代的なプロマネ技術の会得】
• KKD から数値分析に基づくプロマネへ
• 開発技術の要点に基づく、開発プロセスそ
のものの定常的な改善
【2. テスト作業の最適化】
• 重複するテストケースの排除や効果的なテ
ストケースの実施
• 効果的なテスト自動化の実施
【1. 設計作業の最適化】
• 無駄な作業の排除
• 特に、手戻りの排除と無駄なドキュメント
作成の排除



① 無駄な設計書を書かない
② 執筆の手戻りを減らす
当たり前なことは
書かない
コードで自明な
ことは書かない
内部設計作業の
先取りをしない

 外部設計書で最も重要なのは、「誰が」「いつどんなとき
に」「何のために使うのか?」を明文化すること
 具体例)2 つの RSS リーダーの UI 設計例 - どちらの方がよいか?
フォルダ/コンテンツ タイルデザイン
フォルダ/コンテンツ タイルデザイン
• デベロッパーの人たちが
• 仕事の空き時間に
• 大量の RSS から開発技術に
関する新着情報を確認したい
• 一般のユーザーが
• 毎朝、コーヒーを片手に
• 気軽に、最新のニュース情
報をチェックしたい
ユースケース
次第で、UI の
妥当性は変わる





手書き
(情報の並べ方を検討)
Blend
(モックを作って最終化)
ppt
(色やサイズを検討)





【プロトタイプを作る】
• プロトタイプを作って後工程の先
取りをする
• これにより、設計精度が上がる
【設計の意図を共有する】
• 設計書を、「意図」の共有を目的
としたものとして位置づける
• これにより、要点がはっきりする




ダム端時代の画面 スマートデバイスの画面



機能・非機能
要件定義
外部設計 内部設計
実装・単体
機能テスト
結合機能
テスト
協力会社SIer
協力会社
(リーダー)
SIer





業務システムに当てはまるか否かはケースバイケース!



テストチーム 完成品
(パッケージ) 利用シナリオ 1
(テストケース 1)
利用シナリオ 2
(テストケース 2)
利用シナリオ 3
(テストケース 3)
これだけのシナリオを
カバーできれば
エンドユーザが不具合に
ぶつかることはない
と考えられるような
網羅的なパターンを検討
成功/失敗の比率などを
元に品質評価ができる




分類
単体機能テスト
(UT)
結合機能テスト
(IT)
システムテスト
(ST)
主な目的
モジュール単位の
機能テスト
業務シナリオ
ベースの機能テスト
品質特性に関する
テスト
テストの種類 機能テスト 非機能テスト
テストの視点 ホワイトボックス ブラックボックス
作業担当者 デベロッパー テスター
主に利用する
ツール
Visual Studio Test Manager



機能・非機能
要件定義
外部設計・
方式設計
内部設計
実装・
単体機能
テスト
結合機能
テスト
システム
テスト
システム
テスト
システム
テスト
システム
テスト




外注
納品
結合機能テスト(IT) 単体機能テスト(UT)
SIer 協力会社





【テストパターン】
• 空文字
• 空白文字
• 半角英数字のみの文字列
• 記号文字を含む文字列
• 全角文字を含む文字列
• サロゲートペアを含む文字列
• 半角 20 文字
• 半角 21 文字以上の文字
• 前後に空白をつけた文字
• ...


AuthorFirstName
AuthorLastName
Phone
State
ViewModel クラス
エラー
エラー
単体機能テストにより
様々な入力値に対して
エラーチェック機能が
正しく機能するかを確認
テスト
テスト



重要


大昔 少し昔 現在
テスター
デベロッパー
「開発者」 DevOps



チーム A
チーム B
チーム C
テストチーム
• どれからテストする?
• どのぐらいテストする?
[バグのリスク]
• メンバーの熟練度
• 利用するツールや言語
• アプリやコードの複雑度
• コード行数
• 過去の実績
etc...


















刃がぼろぼろだよ!
大変じゃない?
なぜ刃を研いで効率を
上げないの?
刃を研ぐだなんて…
そんな暇ないよ!!
アンケートにご協力ください。
●アンケートに 上記の Session ID のブレイクアウトセッションに
チェックを入れて下さい。
●アンケートはお帰りの際に、受付でご提出ください。
マイクロソフトスペシャルグッズと引換えさせていただきます。
ROOM C
Ask the Speaker のご案内
●本セッションの詳細は、EXPO 会場内
『Ask the Speaker』コーナー
Room C カウンタにてご説明させて
いただきます。是非、お立ち寄りください。
Ask the Speaker
EXPO会場MAP
CLT-016_拝啓 『変わらない開発現場』を嘆く皆様へ ~エンプラ系 SI 開発現場の「今」を変えていくために~
CLT-016_拝啓 『変わらない開発現場』を嘆く皆様へ ~エンプラ系 SI 開発現場の「今」を変えていくために~

CLT-016_拝啓 『変わらない開発現場』を嘆く皆様へ ~エンプラ系 SI 開発現場の「今」を変えていくために~