アーキテクチャの
    「定期健診&資産活用」



                        2012年3月12日


          ビースラッシュ株式会社
          山田大介



1             Copyright BACKSLASH DESIGN Co., Ltd.
アーキテクチャとソースコードを診断します
     このところ、ソースコードが複雑化している

     ちょっとした機能追加や多機種展開に時間がかかる

     開発現場が疲れてきているようだ

     アーキテクト活動が、なかなか継続しない

     アーキテクチャドキュメントは、うまく活用できていない


    という症状の原因を分析し、資産活用につなげます

2            Copyright BACKSLASH DESIGN Co., Ltd.
「定期健診&資産活用」の効用
Before                            After
    このところ、ソースコードが                   設計構造のシンプルさを保つことができる
    複雑化している
                                    引継が楽になり、他の人でも修正できる
    ちょっとした機能追加や多
    機種展開に時間がかかる                     ちょっとした修正では、バグが出ない

                                    時間に追われるのではなく、よい製品作りに
    開発現場が疲れてきている                    集中できている
    ようだ
                                    予防策が充分で、心と体にゆとりができた
                                     防策が充   心 体に   が

    アーキテクト活動が、なかな
                                    特徴や売りのある製品作りができている
    か継続しない
                                    複数機種を一括して開発している
    アーキテクチャドキュメントは、
    うまく活用できていない                     良い製品作りに、一丸となって開発している
                                    良い製品作りに 一丸となって開発している

3                Copyright BACKSLASH DESIGN Co., Ltd.
実施スケジュール
                  1ヶ月目                                     2ヶ月目         納品物
              第1回             第2回                  第3回         第4回
フェーズ
             現状認識          ギャップ分析               ゴール共有         持続的改善

トップダウン施策:   アーキテクトの       アーキテクチャと            あるべき姿とそ        アーキテクトの
アーキテクチャ設計   方と「ふりかえ       ソースコードの             れを達成するた        継続的活動指     アーキテクチャ
            り」を実施します      ギャップを分析             めの指標を決め        針           ドキュメント
                          し、その根本原
                          し そ 根本原             ます             アーキテクチャド
                                                               キ クチ ド
                          因を探ります                             キュメントの改訂
ボトムアップ施策:   エンジニアの方 ソースコードから 同上                              リファクタリング   構造診断書
コード解析と図面化   と ふりかえり」を みて、ア キテ
            と「ふりかえり」を みて、アーキテ                                の計画        (ア キテク
                                                                        (アーキテク
            実施します     クチャとのかい                                設計ルールの周    チャドキュメン
                      離を共有します                                知          ト内に記載)


評価作業        ふりかえり技法 リバース設計
                 技       設                    GQM(ゴールと
                                                 (           アーキテクトと
                     システム思考                   それを達成する        アーキテクチャド   因果ループ図
上段:利用する技法
下段:ビースラッシュの                                   ための指標)         キュメントの運用
   持ち帰り業務   アーキテクチャド 根本原因を見え                  持続的活動の         納品部一式を       GQM
            キュメントとソー      る化します(因             枠組みを作成し        作成いたします
            スコードのギャッ      果ループ図の作             ます(指標と活
            プを計測します       成)                  動の関連付け)
4                   Copyright BACKSLASH DESIGN Co., Ltd.
期待できる効果
    視点       局面                                             効用
    開発   開発作業              無駄な会議や手戻りが減る。
                           無駄な会議や手戻りが減る
    速度   複数人開発             暗黙の了解が減る。
         遠隔地開発             誤認識や ミ
                           誤認識やコミュニケーションギャップが減る。
                                   ケ ションギャップが減る。
    納期   エンジニアからの報告 計画との差異で報告ができる。
         マネジャからの指示         精神論ではなく、具体的な業務指示ができる。
         工数見積り             勘と度胸ではなく、部品単位での積み上げができる。
         変更管理              影響範囲があらかじめ、それなりに分かる。
    品質   品質の作り込み           より上流工程での品質作りができる。
                           より上流工程での品質作りができる
         劣化防止              一時しのぎのパッチやジャンパー線の管理ができる。
         再発防止              一過性の対策ではなく、組織ノウハウにできる。
                            過性の対策ではなく、組織ノウ ウにできる。
    育成   技術伝承              一子相伝のOJTではなく、複数人育成ができる。
         設計意図の周知           チーム全体のベクトル合わせができる。


5                    Copyright BACKSLASH DESIGN Co., Ltd.
参考資料1:
     トップダウン・ボトムアップアプローチ




6                Copyright BACKSLASH DESIGN Co., Ltd.
組込みソフトウェア開発の課題と解法
    課題                 解法
    •全体像が把握できない          トップダウン・アプローチ
                         トップダウン アプロ チ
    •影響範囲が分からない
                         ・製品の目論見の周知
    •製品の特徴がない            ・設計方針の明確化
    •製品が売れない             ・トレードオフの正しい判断
                         ・固定部と変動部の分離
    •品質と生産性が上がらない                                          統合アプローチ
          が
    •エンジニアが疲れている
                                                           •複数機種の一括開発
                                                           •世界同時発売
                                                           •製造工程の自動化
    •設計意図がコードに埋没                                           •シミュレーションで品質作り
                         ボトムアップ・アプローチ
    •作った人にしかわからない
    •引き継ぎができない
                          部品単位の明確化
                         •部品単位の明確化
                         •部品品質の向上
    •コードが複雑化
                         ・設計意図の明確化
    •変更に工数がかかる
                         ・部品化率の指標化
     安易に修正すると副作用
    •安易に修正すると副作用


7                   Copyright BACKSLASH DESIGN Co., Ltd.
活動の全体像:アーキテクトとエンジニアの連携


          製品の     全体構造の                際どい箇所              依存性検査
    アーキ
    テクト   特徴づけ    見える化                 を押さえる              グレイボックステスト

             アーキテクチャ
             ドキュメント
                                    徐々に              ソフトウェア
                                                     ソフトウ ア      資産運用
      ソース                           統合
                                                       資産
      コード


    エンジ                               ファイル単位              コンパイルスイッチ
          リファクタリング リバース設計
    ニア                                の部品化                の整理

          次機種の開発:
           実際の開発を進めながら、上記活動を並行して実施
           実際の開発を進めながら 上記活動を並行して実施


8                  Copyright BACKSLASH DESIGN Co., Ltd.
参考資料2:
         原因分析の技法




9              Copyright BACKSLASH DESIGN Co., Ltd.
開発現場を良い方向に導く方法
1.ふりかえり技法                            2.原因分析技法
時系列で出来事をふりかえり、
時系列で出来事をふりかえり                        原因と結果の因果ル プを書いて
                                     原因と結果の因果ループを書いて
課題を洗い出します                            現在のシステムを理解します
                                       因果ループ図
                                                        +
 事実
                                        障害の発生    均衡 局所的な修正
                                                 ループ
                                       +   -
 成功   問題
                      前倒し                       拡張ループ       遅延

                                                設計の劣化
                                                        +



3.ゴールと指標の見える化                        4.持続的改善(組織定着)
                     構造
Goal-Question-Metricの構造で、             アーキテクチャドキュメントを使って、
ゴールと達成基準を明らかにします                      ゴール達成に向けての組織活動を駆動します
                  コードの8割を                                        プロセス
 Goal              部品化する
             部品の定義          部品はテスト
                                       アーキテクチャ
 Question    がありますか         済みですか?     ドキュメント
                                                                 ソース
                              テスト                                コード
 Metric    部品化率   再利用率
                              網羅率
ふりかえり技法の例
                                    時期

          全員でブレーンス
          トーミング


     事実


     成功   問題

                         前倒し



           次回もこの仕    もっと事前にこ   これは次も発
           組みで行こう    うすれば      生しそうな課
                     よかった      題だな




11
因果ループ図の例
                           遅延

               業績                     信頼性

       遅延       個人に
                                人的
                とって                                   フラストレーション
                                                      フラストレ ション
                                ネット
                                ネ ト
                の成果
                                ワーク     開発に対する
     新しい
     手法             共感する                熱意と積極性
                     人々         拡張
       拡張      拡張               ループ
       ループ                                        均衡
               ループ                                ループ
                            変革活動                       時間のギャップ
             学習能力           への注力
                      遅延                      必要な時間

                                        均衡
                                        ループ
                                                           時間に対する
                       変革活動の
                                                            柔軟性
                        効果
12
GQMの例


                  持続的な成長を実現するために、
                継続的に長期視点の変革活動を行いたい



         時間に対する        設計構造が見
                                       評価体系は明
         柔軟性はあり         えています
                                        解ですか?
          ますか?           か?




     アーキテクト   リファクタ                  評価尺度の
     ミーティング           構造図の   設計ルール           評価尺度の
              リング時                   レビュー回
       出席率
      の出席率            網羅性    の違反率            報告回数
              間の比率                     数


13

Information20120312

  • 1.
    アーキテクチャの 「定期健診&資産活用」 2012年3月12日 ビースラッシュ株式会社 山田大介 1 Copyright BACKSLASH DESIGN Co., Ltd.
  • 2.
    アーキテクチャとソースコードを診断します このところ、ソースコードが複雑化している ちょっとした機能追加や多機種展開に時間がかかる 開発現場が疲れてきているようだ アーキテクト活動が、なかなか継続しない アーキテクチャドキュメントは、うまく活用できていない という症状の原因を分析し、資産活用につなげます 2 Copyright BACKSLASH DESIGN Co., Ltd.
  • 3.
    「定期健診&資産活用」の効用 Before After このところ、ソースコードが 設計構造のシンプルさを保つことができる 複雑化している 引継が楽になり、他の人でも修正できる ちょっとした機能追加や多 機種展開に時間がかかる ちょっとした修正では、バグが出ない 時間に追われるのではなく、よい製品作りに 開発現場が疲れてきている 集中できている ようだ 予防策が充分で、心と体にゆとりができた 防策が充 心 体に が アーキテクト活動が、なかな 特徴や売りのある製品作りができている か継続しない 複数機種を一括して開発している アーキテクチャドキュメントは、 うまく活用できていない 良い製品作りに、一丸となって開発している 良い製品作りに 一丸となって開発している 3 Copyright BACKSLASH DESIGN Co., Ltd.
  • 4.
    実施スケジュール 1ヶ月目 2ヶ月目 納品物 第1回 第2回 第3回 第4回 フェーズ 現状認識 ギャップ分析 ゴール共有 持続的改善 トップダウン施策: アーキテクトの アーキテクチャと あるべき姿とそ アーキテクトの アーキテクチャ設計 方と「ふりかえ ソースコードの れを達成するた 継続的活動指 アーキテクチャ り」を実施します ギャップを分析 めの指標を決め 針 ドキュメント し、その根本原 し そ 根本原 ます アーキテクチャド キ クチ ド 因を探ります キュメントの改訂 ボトムアップ施策: エンジニアの方 ソースコードから 同上 リファクタリング 構造診断書 コード解析と図面化 と ふりかえり」を みて、ア キテ と「ふりかえり」を みて、アーキテ の計画 (ア キテク (アーキテク 実施します クチャとのかい 設計ルールの周 チャドキュメン 離を共有します 知 ト内に記載) 評価作業 ふりかえり技法 リバース設計 技 設 GQM(ゴールと ( アーキテクトと システム思考 それを達成する アーキテクチャド 因果ループ図 上段:利用する技法 下段:ビースラッシュの ための指標) キュメントの運用 持ち帰り業務 アーキテクチャド 根本原因を見え 持続的活動の 納品部一式を GQM キュメントとソー る化します(因 枠組みを作成し 作成いたします スコードのギャッ 果ループ図の作 ます(指標と活 プを計測します 成) 動の関連付け) 4 Copyright BACKSLASH DESIGN Co., Ltd.
  • 5.
    期待できる効果 視点 局面 効用 開発 開発作業 無駄な会議や手戻りが減る。 無駄な会議や手戻りが減る 速度 複数人開発 暗黙の了解が減る。 遠隔地開発 誤認識や ミ 誤認識やコミュニケーションギャップが減る。 ケ ションギャップが減る。 納期 エンジニアからの報告 計画との差異で報告ができる。 マネジャからの指示 精神論ではなく、具体的な業務指示ができる。 工数見積り 勘と度胸ではなく、部品単位での積み上げができる。 変更管理 影響範囲があらかじめ、それなりに分かる。 品質 品質の作り込み より上流工程での品質作りができる。 より上流工程での品質作りができる 劣化防止 一時しのぎのパッチやジャンパー線の管理ができる。 再発防止 一過性の対策ではなく、組織ノウハウにできる。 過性の対策ではなく、組織ノウ ウにできる。 育成 技術伝承 一子相伝のOJTではなく、複数人育成ができる。 設計意図の周知 チーム全体のベクトル合わせができる。 5 Copyright BACKSLASH DESIGN Co., Ltd.
  • 6.
    参考資料1: トップダウン・ボトムアップアプローチ 6 Copyright BACKSLASH DESIGN Co., Ltd.
  • 7.
    組込みソフトウェア開発の課題と解法 課題 解法 •全体像が把握できない トップダウン・アプローチ トップダウン アプロ チ •影響範囲が分からない ・製品の目論見の周知 •製品の特徴がない ・設計方針の明確化 •製品が売れない ・トレードオフの正しい判断 ・固定部と変動部の分離 •品質と生産性が上がらない 統合アプローチ が •エンジニアが疲れている •複数機種の一括開発 •世界同時発売 •製造工程の自動化 •設計意図がコードに埋没 •シミュレーションで品質作り ボトムアップ・アプローチ •作った人にしかわからない •引き継ぎができない 部品単位の明確化 •部品単位の明確化 •部品品質の向上 •コードが複雑化 ・設計意図の明確化 •変更に工数がかかる ・部品化率の指標化 安易に修正すると副作用 •安易に修正すると副作用 7 Copyright BACKSLASH DESIGN Co., Ltd.
  • 8.
    活動の全体像:アーキテクトとエンジニアの連携 製品の 全体構造の 際どい箇所 依存性検査 アーキ テクト 特徴づけ 見える化 を押さえる グレイボックステスト アーキテクチャ ドキュメント 徐々に ソフトウェア ソフトウ ア 資産運用 ソース 統合 資産 コード エンジ ファイル単位 コンパイルスイッチ リファクタリング リバース設計 ニア の部品化 の整理 次機種の開発: 実際の開発を進めながら、上記活動を並行して実施 実際の開発を進めながら 上記活動を並行して実施 8 Copyright BACKSLASH DESIGN Co., Ltd.
  • 9.
    参考資料2: 原因分析の技法 9 Copyright BACKSLASH DESIGN Co., Ltd.
  • 10.
    開発現場を良い方向に導く方法 1.ふりかえり技法 2.原因分析技法 時系列で出来事をふりかえり、 時系列で出来事をふりかえり 原因と結果の因果ル プを書いて 原因と結果の因果ループを書いて 課題を洗い出します 現在のシステムを理解します 因果ループ図 + 事実 障害の発生 均衡 局所的な修正 ループ + - 成功 問題 前倒し 拡張ループ 遅延 設計の劣化 + 3.ゴールと指標の見える化 4.持続的改善(組織定着) 構造 Goal-Question-Metricの構造で、 アーキテクチャドキュメントを使って、 ゴールと達成基準を明らかにします ゴール達成に向けての組織活動を駆動します コードの8割を プロセス Goal 部品化する 部品の定義 部品はテスト アーキテクチャ Question がありますか 済みですか? ドキュメント ソース テスト コード Metric 部品化率 再利用率 網羅率
  • 11.
    ふりかえり技法の例 時期 全員でブレーンス トーミング 事実 成功 問題 前倒し 次回もこの仕 もっと事前にこ これは次も発 組みで行こう うすれば 生しそうな課 よかった 題だな 11
  • 12.
    因果ループ図の例 遅延 業績 信頼性 遅延 個人に 人的 とって フラストレーション フラストレ ション ネット ネ ト の成果 ワーク 開発に対する 新しい 手法 共感する 熱意と積極性 人々 拡張 拡張 拡張 ループ ループ 均衡 ループ ループ 変革活動 時間のギャップ 学習能力 への注力 遅延 必要な時間 均衡 ループ 時間に対する 変革活動の 柔軟性 効果 12
  • 13.
    GQMの例 持続的な成長を実現するために、 継続的に長期視点の変革活動を行いたい 時間に対する 設計構造が見 評価体系は明 柔軟性はあり えています 解ですか? ますか? か? アーキテクト リファクタ 評価尺度の ミーティング 構造図の 設計ルール 評価尺度の リング時 レビュー回 出席率 の出席率 網羅性 の違反率 報告回数 間の比率 数 13