情報資産視点から思考実験 ニャ 2019版（続けるとは言っていない）


# tr;dr

開発方法とサービス管理の観点でどのような情報資産(Information Assets)の生成があるかを列挙して、比較考察してみる

※ 注意視点、観点ベースなので網羅性は低い
　（ユーザーマニュアルやビジネス要件やマーケティングやUI/UX関連は含んでないです）
※ 著者の雰囲気で書いているので、内容は怪しい

# 情報資産を生成するものを列挙

## 開発方法 （Development Paradigm）

開発方法における情報資産を書き出すために、
ガッチガチの有力候補として、ウォーターフォールを書きます。
比較対象として、反復系の源に位置しそうなICONIXを挙げて
反復系亜種の軽量と重量なもの2つ挙げます。

※ enのWikipediaだと Paradigm と分類される翻訳が難しい

### ウォーターフォール

![](https://thinkit.co.jp/images/article/22/3/2231.gif)


* 開発系
   * 要件定義書
   * 外部設計書
   * 内部設計書
* テスト系
   * 運用テスト設計仕様書
      * 運用テストケース
   * 結合テスト設計仕様書
      * 結合テストケース
   * 単体テスト設計仕様書
   * 単体テスト コード

### ICONIX

![](https://www.red-gate.com/simple-talk/wp-content/uploads/imported/135-ICONIXProcessDiagram2.jpg)

* 開発系
   * ユースケース
   * ドメインモデル
   * ロバストネス分析
   * クラス図
   * シーケンス図
* テスト系
   * 単体テスト
   * 単体テスト コード
   * 要求テスト設計仕様書


### XP

![](http://image.itmedia.co.jp/im/articles/0412/21/ri10no920.jpg)

* 開発系
    * 反復(短い期間でのリリース)
    * 共通の用語（認識のズレを解消する用語集）
    * 開けた作業空間（会話しやすくかつ、作業に打ち込みやすい環境）
    * 回顧 （状態把握ができてフィードバック可能な状態）
* テスト系
    * テスト駆動
    * 単体テスト コード
    * 受け入れテスト


### 反復型開発

![](https://upload.wikimedia.org/wikipedia/ja/3/36/Iterative_Development_Concept.PNG)

* 開発系
   * 要件定義書
   * 外部設計書
* テスト系
   * 単体テスト コード
   * 結合テストケース / テスト コード
   * 運用テスト設計仕様書

## Service Management

サービス管理にいくつか挙げてみいる

### SLA, SLO, SLI, OLA

* 文書化
  * 文章、リスト、表
  * 手順書
* Code,Service化
  * Service Status
  * SLI
     * apm
     * service descovery

### SoE, SoR, SoI, SoC

* 外部向け
  * レイヤー図
  * 依存関係図
* 内部向け
  * 依存関係図
  * Value Proposition
  * Business model canvas
* Code,Service化
  * BI
  * DWH,DataLake
  * Machine Learning model


### Security Management

* ここまでに挙げたものと人とベースに発生リスクに対応する
   * Risk: avoidance, reduction, spreading, transfer, acceptance
   * Policy: Intrusion detection, Access control, Physical security, Procedures
* ポリシー
* 情報資産と関係者、物のリスト
* リスク分析と対処方法

## その他

* Object Oriented xxxx
   * オブジェクト指向分析 (OOA; object-oriented analysis) 、オブジェクト指向設計 (OOD; object-oriented design)
   * UML関連のダイアグラム
* Functional
   * 関数の形で表現する
* Event Driven
   * Timelineベース の Event 通知図
* Chage Log
   * Release Note, Change log
   * Architecture Dicision Records
   * ふりかえり



# 比較考察

２つの視点で考察を行う

1. 情報の粒度における星取表を考察
   * ◎ :重度の文書化 ４点/、○ :文書化 3点/☆ :コード ２点/△ :人（文書化必須でない） 1点  
     点数が高いほど運用保守コストが高く 低いほど人に能力依存なものとなる
2. 情報資産を生成するものについて、得点と運用コストを考察
   * 情報の形態: 文書化(形式値)/コード(形式値+暗黙知)/人(暗黙知)


## 1.星取表

| 情報資産 | WaterFall | ICONIX | XP | 反復型開発 |
|---|:---:|:---:|:---:|:---:|
| 要件定義 | ◎ | ○ | △ | ○ |
| 外部設計 | ◎ | ○ | △ | ○ |
| 内部設計 | ○ | ○ | △ | △ |
| 単体テスト | ○ | ☆ | ☆ | ☆ |
| 結合テスト | ○ | △ | △ | △ |
| 運用テスト | ◎ | ○ | △ | ○ |
| 合計点数 | ２１ | 15 | 8 | 14 |


※ 「SLA, SLO, SLI, OLA」、「SoE, SoR, SoI, SoC」 「Security Management」、「その他」 などは開発方法論に依存しない


| 情報資産 | SLA, SLO, SLI, OLA | SoE, SoR, SoI, SoC」 | Security Management |
|---|:---:|:---:|:---:|
| 概念定義 | ○ | ○ | ◎ |
| 関連対象リスト | ☆ | ○ | ◎ |
| 関連対象依存関係解決 | ☆ | ○ | ◎ |
| 関連対象依存詳細 | ○ | △ | ◎ |
| サービス導入/監視システム化 | ☆ | △ | △ |
| 運用/保守 | ○ | △ | ◎ |
| 合計得点 | 14 | 13 | １9 |


## 2.運用コスト順で並び替え

| 情報資産を生成するもの | 得点 | 運用コスト | 備考 |
|---|---|---|---|
| Water Fall | ２１ | 高 | 仕様が変わるほど文章一杯 |
| Security Management | 19 | 高〜中 | 基本的に後追いで対応で自動化は難しい |
| ICONIX | 15 | 中+ | ほどほど文章 コードもちょっと |
| 反復型開発 | １４ | 中+〜小 | WaterFallよりは文章コストが少なくなる事が予想できる。運用者のセンス依存でより煩雑に運用コストもWaterFallを超えるかも... |
|  SLA, SLO, SLI, OLA | 14 | 高〜小 | 書くことは簡単、条件を満たすのは大変 |
| SoE, SoR, SoI, SoC |  13 | 高〜小 | 書くことは簡単、条件を満たすのは大変 |
| XP | ８ | 小 | 単体コード 人依存なため優秀である必要有 |

## 結論

開発工程＋サービス管理＋α でコストが発生するので、「やったらいいじゃん勢」に対しては、クオリティとコストの話をすれば、どこまででおいくら掛けますか？のお話にしやすくなったと思った


# Reference

* [ICONIX](https://ja.wikipedia.org/wiki/ICONIX)
* [ICONIXプロセス](http://d.hatena.ne.jp/shuji_w6e/20081116/1226853215)
* [ ロバストネスダイアグラム](http://www.agilemodeling.com/artifacts/robustnessDiagram.htm)
* [ウォーターフォール・モデル](https://ja.wikipedia.org/wiki/%E3%82%A6%E3%82%A9%E3%83%BC%E3%82%BF%E3%83%BC%E3%83%95%E3%82%A9%E3%83%BC%E3%83%AB%E3%83%BB%E3%83%A2%E3%83%87%E3%83%AB)
* [反復型開発](https://ja.wikipedia.org/wiki/%E5%8F%8D%E5%BE%A9%E5%9E%8B%E9%96%8B%E7%99%BA)
* [エクストリーム・プログラミング](https://ja.wikipedia.org/wiki/%E3%82%A8%E3%82%AF%E3%82%B9%E3%83%88%E3%83%AA%E3%83%BC%E3%83%A0%E3%83%BB%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0)
* [エクストリーム・プログラミング](http://www.itmedia.co.jp/im/articles/0412/21/news094.html)
* [オブジェクト指向分析設計](https://ja.wikipedia.org/wiki/%E3%82%AA%E3%83%96%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E6%8C%87%E5%90%91%E5%88%86%E6%9E%90%E8%A8%AD%E8%A8%88)
* [要件定義と基本設計で決めなきゃいけないこと](https://qiita.com/Yakushigawa_N/items/7c2e00f514dc9c44c3e0)
* [Security Management](https://en.wikipedia.org/wiki/Security_management)
* [retrospective template](https://www.atlassian.com/blog/jira-software/5-fun-sprint-retrospective-ideas-templates)