モデリング

2021/07/23

値オブジェクトの設計がオブジェクト指向モデリングの最初の登山口

先日7/14に開催された「アジャイル開発におけるモデリング活用実践セミナー」のオンライン動画を見ていて、興味深かった。
羽生田さん、増田さん、原田さん達の会話が面白かった。
気になった発言をラフなメモ。
自分の感想も混じっていて、全くロジカルでない。

【参考】
「アジャイル開発におけるモデリング活用実践セミナー」(2021.07.14開催) - UMTP 特定非営利活動法人UMLモデリング推進協議会

ドメイン駆動設計が好きで、ベンチャー企業のWebサービスの開発で使っている

最近は、基幹系システムのリプレースでドメイン駆動設計を使いたい、という話も多く来ている
すごく難しいけど、やりがいもあるし面白い

オブジェクト指向モデリングのワークショップでモデルを書こうとすると、みんな、フレームワークが前提でモデルを書いてしまう
ドメインの外側ばかり話している
肝心のドメインをプログラミングしようとすると、意外に誰も書けない
まずは値オブジェクトから始めよう
みんな、値オブジェクトでプログラミングできない
増田さんのオブジェクト指向モデリング本「現場で役立つシステム設計の原則 ~変更を楽で安全にするオブジェクト指向の実践技法」は、値オブジェクトから書こうとしているのでお勧め

intやStringのデータ型だけではトランザクションスクリプトみたいに書いてしまう
値オブジェクトが大事
オブジェクト指向では、Immutableな値オブジェクトから始まる
関数的プログラミングとも相性がいい
ドメインに特化してプログラムを書こうとすると、必ず値オブジェクトから始まる
値オブジェクトの設計がオブジェクト指向モデリングの最初の登山口

エンティティを重視するとデータモデリングになってしまう
手続き型プログラミングで、でかいエンティティを書いて、長いトランザクションスクリプトを書くと失敗する
書いていて怖い
データモデリングとオブジェクト指向モデリングは違うと考えた方がいい

エリック・エヴァンスのDDD本「エリック・エヴァンスのドメイン駆動設計」に出てくる例では、OODBを使っていた
昔はデータのストアはOODBでいい、という感じだった
OODBでは性能が出ないので廃れた

業務の複雑さに関するデータのモデリングは、データモデリングの方が一日の長がある

1990年代にモデリングが盛んだったのに、現代ではモデリングが廃れたのは、モデリングが伝承されなかったからではない
むしろ、現代的な課題に対して、長年知られていたモデリング手法のこの部分は今も使えるが、この部分は今は使えない、という交通整理された本がほしいね

2010年代にピアソン本が絶版されたので古いオブジェクト指向モデリング本が手に入らなくなり、エリック・エヴァンスのDDD本「エリック・エヴァンスのドメイン駆動設計」だけが唯一残った
そのために、オブジェクト指向モデリングの歴史に断絶がある

メソッドは3個まで
それができない人は、クラス化、カプセル化が分かってない
入出力処理は手続き型になりやすい

顧客との対話では、UMLを普通に使う
ただし、アクティビティ図、コンテキスト図、データフロー図を使う場合が多い
システム要件に落とす時は、UMLをガンガン使う

要件定義でモックを作るときはHTMLを使う
最近はいい感じですぐにモックデザインが作れる
実データを画面で見せた方が早い

プロダクトオーナーとの対話では、RDRA2.0を使って話する時が多い
システム設計では、UMLを使っている
図を書くのが目的ではなく、会話や意思決定のために使っている

DDDのエンティティはミュータブル?イミュータブル?
Webならイミュータブルが普通でしょ
setter, getterと無関係なモデルにしている
イミュータブルが普通
エンティティに状態は持たせない
void実行でなく、新しい状態のオブジェクト、エンティティを別で返す
Webならイミュータブルが普通
エンティティの状態をSetして変更すると、バグが出そう
イミュータブルだからFreezeしているのでCloneする必要もない

アジャイル開発プロセスとモデリング作業の事例は?

モデリングでも、概念モデルのレベルでプログラミングを書く
合わせてDFDやER図を書く
事業分野の可視化はシステムで書きにくいので、シナリオ、バリューチェーンを書く
バリューチェーンで、どこのプロセスに差別化要素があるか、強みがあるか、を分析する
ビジネスを理解するモデリングとシステムとして動かすプロトタイプの2つを行き来している

増田さんのドメインモデルのサンプルが分かりやすい
パッケージ図でクラス図を分割して、HTMLで一覧にしている
さらに、ユースケースのシナリオからパッケージ図、クラス図まで一気通貫でHTMLにしている
軽量で明快なモデリング
ビジネスモデルとDFD・ER図をつなぎつつ、パッケージ図・クラス図で方にしてHTMLで見せている
増田さんのクラス図は値オブジェクトが中心
取引日、貸し出しも全てクラスになっている
増田さんにとって、モデル駆動とはドキュメント駆動のイメージ
ソースコードとモデルを行き来していて、モデルが自然にドキュメントになっている

Scrumで開発する時に、ユーザーストーリーマッピングを使う場合が多い
このメソッドを実装する時、このメソッドはこの要件から来ていて、この要件はユーザーストーリーマッピングのこの部分に対応する、と辿れる

【感想】
エリック・エヴァンスのドメイン駆動設計現場で役立つシステム設計の原則 ~変更を楽で安全にするオブジェクト指向の実践技法を読むと、ドメインのソースコードが値オブジェクトになっている場合が多い。
その理由は、ドメインをプログラミングに注力しているから、と見ると分かりやすい気はする。
オブジェクト指向でプログラムを書くと、状態を持たせるエンティティが頻出して、バグが出やすい箇所はたいていその部分であり、デバッグしないと追跡できない場合が多いのを思い出した。

| | コメント (0)

2021/07/11

組込ソフトウェア開発のための3部作「構造化モデリング」「オブジェクト指向モデリング」「リバースモデリング」を読んでいて楽しい

組込ソフトウェア開発のための3部作「構造化モデリング」「オブジェクト指向モデリング」「リバースモデリング」を読んでいて、面白いのでメモ。
10年以上も前にかおるんさんは既に読破されているので参考にしている。

【参考】
読了・組み込みソフトウェア開発のためのオブジェクト指向モデリング - ブログ@kaorun55

読了・組込みソフトウェア開発のための 構造化モデリング - ブログ@kaorun55

【1】上記のブログでは、「組み込みとしては、やはりこちら(構造化)の方がしっくりくる。なんとなくオブジェクト指向の方は無理をしている気がしてならない。」という感想がある。
オブジェクト指向モデリング」よりも「構造化モデリング」の方がしっくり来るらしい。

一方、僕は、構造化設計の技法は、データフローダイアグラムとかSTS分割のような古い技法に違和感があって、むしろ、オブジェクト指向設計の方針でクラス図、シーケンス図、状態遷移図からモデルを作り出す方がしっくり来る。
だから、「構造化モデリング」よりも、「オブジェクト指向モデリング」の方が、読みやすく感じた。
なぜなら、オブジェクトで考える方がレイヤ化設計、状態遷移図などのモデルを自然に組み立てられる気がするから。

【2】たとえば、組込みSW開発の経験はゼロだが、組込みSWのモデルをユーザ視点の業務ロジック層と、物理法則やセンサーから検知した情報の制御を含む制御層の2つに大きく分けてモデルを組み立てる方針の場合、オブジェクト指向設計の方がパッケージでソフトェアを分割してレイヤ化しやすい利点があると思う。

以前、astah関西で、高井さんがSysMLを使う利点として、熱力学など自然科学の専門家、自動車や家電機器などの業務の専門家、ハードウェアの専門家、そして組込みSWを開発するプログラマの4種類の人達が、SysMLを通じてコミュニケーションできるようになった、という話もあった。

第2回astah関西の感想 #astahkansai: プログラマの思索

また、状態遷移図とは、一つのオブジェクトに着目してその状態が遷移した過程を表すので、クラス図で洗い出したオブジェクトから自然に状態遷移図で考えるように仕向けられる。

組み込みソフトウェアの根本問題~対象物の状態遷移を記述できれば、制御が可能だ: プログラマの思索

【3】興味深いのは、組込みSW開発の要件定義で重要な成果物として、ユーザ視点のユースケース分析だけでなく、イベントリストも挙げられている点だ。
たとえば、「構造化モデリング」「オブジェクト指向モデリング」の例では、電気ポットのソフトウェア要件定義で、ユーザがお湯を沸かすときのイベントだけでなく、ポットの水位やポットのお湯の温度の変化がトリガーとなるイベントも洗い出されている。
考えてみれば当たり前だが、アクターとして、ポットの購入者という利用者だけでなく、ポットという機械を構成するセンサー部品(水位の検知、温度の検知)もアクターになるわけだ。
つまり、組込みSW開発では、アクターの種類が多いので、コンテキスト図を最初に描くのが割と重要と気づいた。

【4】もう一つの「リバースモデリング」は読みかけだが、よくある事例な気がして、興味深く読んでる。
レガシーな業務システムと同じく、組み込みソフトウェアもレガシーになると、設計書はなくなっていて、動くソースコードが仕様そのものになっている。
しかし、数千行、数万行、数十万行のソースコードから本来の設計思想を汲み取って開発するのは至難の業だ。
たとえば、工場の生産ラインとか、長年使われている機械部品とか、そういう例があるのだろう。

リバースモデリング」では、レガシーと化したソースコードからリバースして、モデルを抽出し、本来のあるべきモデルを描き出し、そこから仕様変更や改修を手がけていく、というストーリー。
なかなかうまく行かないだろうが、色んな技法を駆使して、リバースしたモデルを洗練させていくのは面白い。
今なら、XDDPと組合せてやるだろうか?

【5】残念なことに、組込ソフトウェア開発のための3部作「構造化モデリング」「オブジェクト指向モデリング」「リバースモデリング」は、「構造化モデリング」以外は絶版になっている。
3部作全てが復刊されるといいなと思う。


| | コメント (0)

2021/06/20

なぜか2000年代にIT系の良い本が多いと感じる今日この頃

最近、Ciscoベースのネットワーク、組み込みソフトウェア開発・設計のためのモデリング、業務システムやERPを設計・分析するためのデータモデリングや業務フローの本を読み漁っている。
他にも、Matlab・Scilibのようなシミュレーション関係の本も探している。

たとえば、下記の本になる。

【1】「インフラ/ネットワークエンジニアのためのネットワーク技術&設計入門 第2版」「インフラ/ネットワークエンジニアのためのネットワーク・デザインパターン 実務で使えるネットワーク構成の最適解27」は、オンプレのネットワーク設計の解説でピカイチだった。
インフラ担当者なら当たり前の知識なのだろうが、アプリ開発の経験しかない僕にとってはとても新鮮だった。
クラウドやInfrastructure as Codeが何を解決しようとしているのか、について、考えさせてくれた。

なお、この本は2010年代の本だが、ほとんどのCiscoルータ・スイッチの解説・コマンドリファレンス本は2000年代が多い。

【2】「組込みソフトウェア開発のための オブジェクト指向モデリング (組込みエンジニア教科書)」も良かった。
話題沸騰のポットを題材に、ハードウェアのポットを要件定義から、オブジェクト指向設計、C++のソースコードまで落としてくれる。
業務システム設計とは違う観点で、状態遷移図やパッケージ間の依存関係が非常に重要になってくる。
2006年頃の出版で絶版。

【3】「7つの要素で整理する業務プロセス (for Mutual Interest SERIES)」は、業務フロー図の演習本だ。ひたすら、7種類の業務フローのサンプルと解説をしてくれている。
内部統制が導入された頃に、ITに関係ない人が業務フローを使うことになった時に使われたのだろう。
2007年頃の出版で絶版。

【4】しかし、それらの本は2000年代に良い本が多く、2010年代はほとんど出版されていない。
オブジェクト指向モデリング、データモデリング、オンプレのネットワーク、シミュレーションなどの基本的な技術の解説本がほとんど出版されていない。
なぜなのだろうか?

おそらく、IT技術のトレンドが激しく変化してしまい、従来の設計や技術は基盤として埋め込まれて、見えなくなってしまうくらい、当たり前になってしまったからではないか。
実際、データモデリングやオブジェクト指向モデリングも、その概念や考え方は、20年前も10年前も変わらない。

しかし、SOEのWebシステムでも、枯れた業務システムであっても、データモデリングは必須だし、オブジェクト指向モデリングも知っていて当然だろうが、そういう技術を知らずにどっぷり最先端の技術にハマってしまう。
今となっては、最先端の技術から古い技術に遡るしか無いのだろうが、基本的な技術無しで取り組んでいる感じで、何か腑に落ちない時が多いと思う。

2000年代に良い本が多いのに、割と絶版になっていたりする。
すると、それらの本に含まれているノウハウや優れた説明は継承されることなく消えてしまう。

たぶん、ベースとなる技術はもはや当たり前であって、ベースの技術や基盤の上で、次々に新しいサービスをどんどん生み出していくのが普通になっている。
だから、逐一古い基礎的な技術を掘り返すのは手間がかかり過ぎるのかもしれない。

この辺りの理由は色々探りたい。
そして、その悪影響についても考えてみたい。


| | コメント (0)

2021/06/05

組み込みソフトウェアの根本問題~対象物の状態遷移を記述できれば、制御が可能だ

「組み込みソフトウェアでは対象物の状態遷移を記述できれば、制御が可能だ」という文言をネットで2箇所見つけた。
ラフなメモ。

組み込みソフトウェアのモデリングにおける根本問題とは何だろうか?
業務システムのモデリング、ネットワーク設計の根本問題とは異なる。

業務システムのモデリングでは、業務ロジックをいかにER図に落とし込めるか、という点に集約できると思う。
以前書いた。

業務ロジックをデータモデリングはどこまで表現できるか?: プログラマの思索

その考えから、ビジネスの一連の業務フローが表現されて、データのライフサイクルと使われる帳票が導出されて、最終的にERPになるイメージ。

一方、ネットワーク設計の根本問題は、ネットワークの品質をどのように保つか、という点に尽きると思う。

SDNアーキテクチャの本質は巨大な仮想L3スイッチを実現したことではないか: プログラマの思索

なぜInfrastructure as Codeが必要なのか?: プログラマの思索

ネットワークの根本問題は何か~昨今のIT技術と時代の変化についての考察: プログラマの思索

ネットワークの品質は、耐障害性の観点でのL2・L3の冗長化、セキュリティの観点でL2のスプーフィング対策・L3のパケットフィルタリング・認証、L4層以上のファイアーウォールやVPN、音声や動画やデータの通信品質を保つ観点のQoSなどの技術が使われている。
さらに、巨大で複雑なネットワーク構造を構成管理の配下に置くために、SDNやぜInfrastructure as Codeの技術が生まれた、というイメージ。
特に、昨今は、データモデリングやオブジェクト指向設計よりも、ネットワークの仮想化技術が熱いと思う。
その中にクラウドも含まれるわけだが。

では、組み込みソフトウェアのモデリングにおける根本問題とは何だろうか?


組み込みモデリング - MONOist

(引用開始)
組み込みシステム開発の世界には、大きく2つのモデル<ソフトウェアのモデル>と<制御のモデル>が存在する。
(引用終了)

組込みソフトウェア開発のための オブジェクト指向モデリング (組込みエンジニア教科書)にこんな感想があった。

(引用開始)
殿堂入りNO1レビュアー
kaizen
状態遷移が肝でしょうか。

2008年3月21日に日本でレビュー済み
対象物の状態遷移を記述できれば、制御が可能だという意味で、オブジェクト(対象)指向は有効なのだと思われます。
モデルを作る場合に、対象(オブジェクト)を記述していくのが王道なのだと思われます。
本当に必要な技術と、内容を確かめるために使う技術と、試験のための技術との詳細な説明があるとよいかもしれません。
(引用終了)

勝手な想像では、組み込みソフトウェア設計では、単純に部品をクラス図やブロック図に表現するよりも、そこから、抽象度を上げた対象物の状態遷移を見抜くことが重要ではないだろうか。
対象物の状態遷移を記述できれば、プログラムで実装可能であり、その制御プログラムで機械に作業を指示できる。

しかし、状態遷移は爆発しやすい、という根本問題は以前からある。
だから、状態が爆発的に増えてコントロールできなくなるために、レイヤーごとに分けたり、抽象度を上げ下げしたりして、ソフトウェアの複雑さを制御しようとしているのではないか。

この発想を元に、色々考えてみる。

| | コメント (0)

2021/06/03

RPAはデータモデリングを復活させるのか

RPAがノーコード開発とみなされることで、野良データを増やして、データを分散させてしまって破綻しそうな話がツイートで流れてた。
また、アクターが3人出てくる企業システム開発は、BtoCのWebシステム開発とは異なるよ、というデータモデリングの記事もあった。
ラフなメモ。

Web世代の皆さん、企業情報システムを見たことがありますか? | 日経クロステック(xTECH)

Windows10でRPAが手軽に使えるようになって、ちょっとしたRPAブームかもしれない。
しかし、RPAをノーコード開発と捉えて、Excelを単に置き換えたようなシステムで作ると、破綻する。
データが正規化されていない、データが一元化されていない、などの問題が噴出するのは誰でも知っているが、データモデリングを知らなくても作れることで、よりその問題が大きくなったのかもしれない。

また、SoEのWebシステム開発だけで経験を積むと、バックエンドの業務も含めたより業務が複雑になる基幹システムまで目が向かなくなる。
昨今のコロナワクチン接種予約システムの件も連想させる。

データモデリング、あるいはオブジェクト指向モデリングも、最近はアジャイル界隈でも聞かなくなった。
10年以上前に終わった感じもある。
しかし、その有効性は今も変わらないのだろうと思う。

| | コメント (0)

ビジネスモデルキャンバスで思考を発散させて、ピクト図で思考を収束させる

ビジネスモデルキャンバスで思考を発散させて、ピクト図で思考を収束させるという記事を読んで、なるほどと思った。
ラフなメモ書き。

【参考】
ビジネスモデルをデザインするスキル 「ビジネスモデル・キャンバス」と「ピクト図解」を身につけろ | 「ピクト図解」考案者が語る ビジネスモデルのつくり方|DIAMOND ハーバード・ビジネス・レビュー

ビジネスモデルを「見える化」するピクト図解 「ビジネス3W1H」を意識してビジネスモデルを読み解け | 「ピクト図解」考案者が語る ビジネスモデルのつくり方|DIAMOND ハーバード・ビジネス・レビュー

ビジネスモデルは「基本パターン」の組み合わせで考えよ ジレットとネスレの事例から学ぶ「消耗品モデル」 | 「ピクト図解」考案者が語る ビジネスモデルのつくり方|DIAMOND ハーバード・ビジネス・レビュー

ビジネスモデルの「プロトタイプ」を量産せよ 実践!ビジネスモデルをデザインする(前半) | 「ピクト図解」考案者が語る ビジネスモデルのつくり方|DIAMOND ハーバード・ビジネス・レビュー

「新結合」でビジネスモデル・イノベーションを起こせ 実践!ビジネスモデルをデザインする(後半) | 「ピクト図解」考案者が語る ビジネスモデルのつくり方|DIAMOND ハーバード・ビジネス・レビュー

ビジネスモデルキャンパスの感想: プログラマの思索

ピクト図解を用いたビジネスモデルの書き方と事例 | Finch [フィンチ]

【1】企画フェーズの資料や提案資料を作成していると、ビジネスモデルをポンチ絵で描いたり、経営戦略に基づいたあるべき業務プロセスを描く必要が出てくる。
そんなときに、考えているアイデアを整理したり、アイデアを膨らませるためのテコ、基点となるような、何らかのフレームワークが欲しくなる。

【2】ビジネスモデルキャンバスやリーンキャンパスは、リーンスタートアップやプロダクト開発でよく例として出てくる。
しかし、実際に書いてみようとすると、そもそも枠内にアイデアが出てこなかったり、それぞれの要素の因果関係やロジックが作れなくて、手間取る時が多い。
また、キャンパスにたくさんの付箋やPostItを貼っても、何か分かった気がしない。
ビジネスというプロセスをモデル化できた気持ちにどうしてもなれなかった。

一方、ピクト図は、UMLで言うオブジェクト図、コラボレーション図に非常に良く似ている。
アクター同士の相互作用があって、その相互メッセージは、必ず情報のやり取り、お金のやり取りが発生する。
システムユースケース図に近いイメージ。

ビジネスモデルを「見える化」するピクト図解 「ビジネス3W1H」を意識してビジネスモデルを読み解け | 「ピクト図解」考案者が語る ビジネスモデルのつくり方|DIAMOND ハーバード・ビジネス・レビューでは、ビジネスモデルキャンバスでは、思いついたアイデアを枠内にPostItをどんどん貼っていって思考を発散させる。
一方、ビジネスモデルキャンバスで抽出した要素は、ピクト図の相互メッセージに対応させたり、相互メッセージを発生させる要因として対応付けて、思考を収束させる。
つまり、ピクト図で、ビジネスモデルキャンバスの要素に因果関係やロジックを表現しているわけだ。

こういう考え方ができるならば、ビジネスモデルをビジネスモデルキャンバスとピクト図という2つのモデルで分析できて、それぞれの因果関係や意図をより明確に理解できるようになる。

ビジネスモデルキャンバスとピクト図を組み合わせることで、UMLのように、1つの分析対象を、複数のモデル技法で多面的に分析できるのはとても良い。
複数のモデルを描くだけで、整合性を取る作業を通じて、自然に多面的に考えるようになるからだ。

【3】最近、システム開発する前の企画フェーズやシステム提案の作業が多くなって、その資料に必要なモデル技法を探している。
ビジネスモデルキャンバスとピクト図はその一つの手段。

他にも興味を持っているのは、匠メソッド。
一部のアジャイル界隈では、SIがシステムを受注する前にシステム提案に使ったり、新たな事業を企画する時に使っているのは知っている。
なかなか触手に至らなかったけれど、価値から要求を導き、業務をAsIsとToBeを導こうとする点、デザイン思考のようなラフなモデルとBABOKライクに戦略要求から移行要求までロジカルに組み立てるモデルを組み合わせている点は、よく考えているように思える。

気づいたことがあればまた書く。

| | コメント (0)

2021/06/01

顧客が本当に欲しいものは何か?

顧客が本当に欲しいものは何か?というイメージが面白かったのでメモ。

[姿勢編]理由無き要求は機能化してはいけない | 日経クロステック(xTECH)

現場は軽トラックで十分なのに、管理職や経営陣は重装備のトラックを要求してる。
しかし、予算は自転車並みなので、出来上がってくるのは人力車とか。
足りない機能は人力の運用でカバーするのが前提。
いかにも、現場が強い日本向けのシステムみたい。

| | コメント (0)

2021/05/08

astah*の因果ループプラグインがいいね

astah*の因果ループプラグインを教えてもらったのでメモ。
使ってみるとなかなか良いです。

【参考】
snytng/inga astah*の因果ループプラグイン

思考力と注意力のトレードオフを因果ループ図で描いてみた: プログラマの思索

因果ループ図を再考する~問題の症状をシステム構造として捉えて解決策を見つける: プログラマの思索

astah*の因果ループプラグインのメリットは、因果ループ図からロジックをリバースしてくれること。
要因Xが増えれば、要因Yが増えるのか、要因Yが減るのか、表示してくれる。
ロジックを見直す時に役立ちそう。

【1】教員希望者が減っているニュースを見て、その背景にあるロジックを書いてみた。

教員の過酷な労働実態相次ぐ投稿でオンライン上の報告会開催 | 教育 | NHKニュース

小学校教員倍率、過去最低2.7倍 質の確保急務: 日本経済新聞

Photo_20210508114201

ニュースでは、下記のロジックが読み取れる。

「教師希望者」が増えれば、「教師の質」が増える: 1 (自己強化=1, バランス=0)
→「教師の質」が増えれば、「モンスターペアレント」が減る: 1 (自己強化=1, バランス=0)
→「モンスターペアレント」が減れば、「教師の作業負荷」が減る: 1 (自己強化=1, バランス=0)
→「教師の作業負荷」が減れば、「教師希望者」が増える: 1 (自己強化=1, バランス=0)

そこで、教師希望者を増やすために、教師増加キャンペーンを実施したわけだが、本当に効果があるのか?
レバレッジポイントはそこなのか?
他の要因を増減させるような施策の方が優先ではないか?

他にも隠れたロジックがないか?
色々考えが思いつく。

astah*の因果ループプラグインの他の機能では、下部欄の因果関係をクリックすると、因果ループ図の線にフォーカスしてくれる。
ただし、Same(+)は実線、Opposite(ー)は破線なので注意。

| | コメント (1)

2021/04/29

デジタル庁で応募中のアイデンティティアーキテクトは昔のDAと同じ役割か?

デジタル庁でアイデンティティアーキテクト、データアーキテクトを応募しているツイートを見つけたのでメモ。
ラフなメモ書き。

【参考】
yoshi sanさんはTwitterを使っています 「アイデンティティアーキテクトなる独立したポジションがあるんだ。」 / Twitter

からくりさんはTwitterを使っています 「アイデンティティアーキテクトってなんだよと思ったけどめちゃまともな内容だった」 / Twitter

Yoshikazu NojimaさんはTwitterを使っています 「デジタル庁のアイデンティティアーキテクト、超重要かつ超高難易度な仕事にしか見えないのだけど、どんなキャリアパスを積んで、どれほどの研鑽を積めば担えるのか想像もつかない。 https://t.co/2iU02v4WLr」 / Twitter

akipiiさんはTwitterを使っています 「アイデンティティアーキテクトとは、昔のDAと同じ役割か?」 / Twitter

からくりさんはTwitterを使っています 「アイデンティティアーキテクト?- 中途採用|デジタル庁創設に向けた準備サイト https://t.co/raIDjeGhb9 めちゃくちゃ楽しそう(発狂しそうなほど大変だと思うけど)」 / Twitter

ミジンコOLさんはTwitterを使っています 「アイデンティティアーキテクト、あの先輩しか思い浮かばない。 ・行政証明書コンビニ交付サービスの開発経験有 ・某メディア企業の大型サービス利用ID統合経験 ・プラポリにも詳しい ・認証・認可詳しい ・IPA上級資格9割持ってる ・泥臭いPJTの中でも爽やか #デ https://t.co/Ue6JVxsyLh」 / Twitter

【参考】
中途採用|デジタル庁創設に向けた準備サイト

『アイデンティティ管理技術解説』システムアーキテクトを志す方のために IPA

【参考1】
アイデンティティアーキテクト?- 中途採用|デジタル庁創設に向けた準備サイト

(引用開始)
募集背景・業務内容
デジタル庁(仮称)においては、行政サービスのデジタル化・ワンストップ化を推進するにあたって、利便性が高く安全な識別・認証の仕組みを構築することにより、多種多様なシステムにまたがった円滑なデータ連携を実現していくことが求められます。

アイデンティティアーキテクトは、各省庁の担当者や専門家と連携して、デジタルガバメントのサービス高度化に必要な、アイデンティティ管理、データ連携の枠組みを構想し、その整備を推進する役割を担っていただきます。

具体的な業務内容は、以下のとおりです。

政府情報システムに関わるアイデンティティ管理の計画策定全般

住民制度、公的個人認証、マイナンバー制度に関わる個人のアイデンティティ管理もしくはGビズID、商業登記電子証明書等に関わる法人等のアイデンティティ管理

行政事務と住民・事業者向けシステム、住民・事業者向けシステム間をつなぐ国のシステムを理解した上での、業務プロセスの見直し、移行計画の立案、変革の推進

国民・事業者向けサービスや各省庁のシステムにおける利便性の高い安全な識別・認証の仕組みづくり

各省庁や地方公共団体の専門家と連携した横断的なプロジェクトの推進
(引用終了)

【参考2】
データアーキテクト?- 中途採用|デジタル庁創設に向けた準備サイト

(引用開始)
募集背景・業務内容
データアーキテクトは、デジタル庁(仮称)において、社会全体のデータの現状と将来像を俯瞰し、データ戦略の策定を主導するとともに、標準やルールに加え基礎データ、プラットフォームなどを整備し、その活用を推進していくことが求められます。また、多数のステークホルダーとの調整を進めながら、デジタル時代の新たなスタンダードを構築していくための強いリーダーシップが求められます。

政府は、多量のデータを保有するデータホルダーとして、またデータプラットフォーマーとして、先導的な振る舞いを期待される立場です。本ポジションは、あらゆる社会・経済活動に不可欠なデータを、国の競争力の源泉とするために、また、豊かな生活を実現する上で不可欠な基盤とするために、中心的な役割を担っていただきます。

具体的な業務内容は、以下のとおりです。

体系的なデータ整備に係る中長期戦略・計画の策定

データ標準・データ連携プラットフォームの整備

政府内におけるデータサイエンスやAIの活用の推進

デジタル庁(仮称)内外のデータに関する人材育成

データに基づいたEBPM(Evidence-Based Policy Making、証拠に基づく政策立案)の推進

国際機関や関係各国との交渉
(引用終了)

【感想1】
デジタル庁でアイデンティティアーキテクト、データアーキテクトの募集背景・業務内容を読むと、本当にガチの内容だ。
個人的には、一昔前のデータアーキテクトの業務を連想する。

その頃は、テーブルを新規追加したり、カラム1個を追加するのに、わざわざデータアーキテクトに申請して、内容の詳細や対応期限を説明して、開発環境にやっと反映される、みたいな牧歌的な時代だった。
データアーキテクトは、ER図やデータディクショナリの保守担当者みたいなイメージを持っていたので、あまりカッコイイ職種には感じなかった。

しかし、実際の業務システムの要件定義では、データモデリングの技量の違いがその後の設計、開発の室に直結する。
業務フローのようなプロセスばかり書いても、フワフワしていて、テストでデスマーチになりがち。
データ基盤がしっかりしていれば、そこから業務の制約条件をプログラマも読み取れるし、テストデータを作ったり、保守していくのもかなり楽になる。

さらに、データアーキテクトの職種だけでなく、アイデンティティアーキテクトという職種まで応募しているのはとても興味深い。
単に、公共サービスのデータ基盤、データディクショナリを揃えるだけでなく、その根本となる一意な主キーを見出し、それを維持管理していく重要性を認識しているのだろう。
もちろん、マイナンバー制度という国民をユニークに識別する仕組みにも直結する。
国民を一意に識別してデータを管理できる基盤があれば、今のコロナワクチン予防接種の履歴管理に使えるし、今後のワクチンパスポートの発行にも発展できる。
他にも、収入や資産の追跡、税の徴収だけでなく、本当に困っている人たちを特定して補助金を直接届ける、という仕組みも作れるはず。

また、アイデンティファイアの整備は、認証基盤にも直結する。
政府の膨大な公共システムを利用する場合に、利用者の国民が安全に利用できるだけでなく、バックエンドの事務に携わる公務員や保健所の人たちが安全にログインできて、その操作履歴をきちんと管理できる仕組みも必要。
さらには多種多様な利用権限の制御まで考える必要もあるだろう。

つまり、価値ある公共サービスを提供するためにデータ基盤のアイデンティファイアは必須要件だが、人権やプライバシーの保護の観点からアイデンティファイアの認証・認可・アカウンティングの機能要件も必須という、高度なハードルがある。
想像するだけでも、アイデンティティアーキテクトという職種は非常にタフで難儀な内容であるのは間違いない。

だからこそ、こういう職種が必要ときちんと公開して打ち出しているのは信頼が持てる。

【感想2】
最近はITコミュニティ以外にも、官公庁の関係者がオンライン勉強会で登壇して色々話してくれる場が多くなった。

直近で、農林水産省とウーオが語る!林業・水産業をITで変えるチャレンジ - connpassを聞いた時、今の官公庁で最もデジタル化が進んでいるのは、実は農林水産省なんです、という発言を聞いて驚いた時がある。
その時の事例では、ベンチャー企業が、漁港で取った魚と都市部の魚市場のマッチング処理のシステムを開発して、お互いの利益を向上させる、という話だった。
他にも林業で、日本産の木材が、今はコロナなので実は高く売れている、そういう市場をITの力で支援している、という話もあった。

おそらく、楽天、メルカリのビジネスモデルのように、生産者と消費者のマッチング処理を農業や水産業の市場に適用して、両者がWin-Winになるような方向を目指しているのだろうと思う。
そんな話を聞くと、単に業務システムを開発したり、ITビジネスでお金を儲けるだけでなく、IT技術を社会の問題解決に適用し、多くの人達のために社会貢献する方向に進化しているように感じた。

| | コメント (0)

思考力と注意力のトレードオフを因果ループ図で描いてみた

思考力と注意力のトレードオフを因果ループ図で描いてみた。
世の中の現象を因果ループ図で描く練習の一つ。
ラフなメモ。

【参考】
「情報」と「注意」のトレードオフ | 楠木建 ようするにこういうこと|DIAMOND ハーバード・ビジネス・レビュー

【ロジックの流れ】
知識が増える
→思考する時間が増える
→知識をより要求する

一方、
知識が増える
→記憶した知識を整理する注意力が増える
→注意力は限度があるので、知識量を抑える
→思考力は限界で伸び悩む

人間の脳の処理能力には一定の限界がある
→注意力・意志力は有限のリソースになる
→知識が増えすぎるほど、思考力も限界に達する

では、どこで解決策を考えるのか?
パターンは3つある。

思考力を強化して、思考力向上ループを強める。
注意力を弱めて、注意力散漫ループを弱める。
知識量を調整して、注意力散漫ループよりも思考力向上ループを高めるようにする。

トレードオフがテーマなので、思考力や注意力を強めても、他要素に悪影響がある。
システム原型「成長の限界」と同じ。

限られた有限リソースの注意力を思考の質向上に使う。
よって、注意力散漫ループの負のループを弱めるために、知識量を減らす。
知識量を減らすには、情報収集チャネルを減らし、インプットすべき知識量を減らす。
一般には、雑念を増やすような媒体、テレビやスマホ、無駄なSNS、無駄なネットサーフィンは避ける、みたいなロジックなのかな。

【気づき】
システム思考の重要性は、アジャイル開発やスクラムの書籍でよく言われている。
しかし、実際にシステム思考を使いこなすのは非常に難しい。

因果関係を見つけるのも大変。
そのフィードバックで元に戻る、というロジックを見つけるのが難しい。

その因果関係は本当に正しいのか?
漏れている因果関係はもっとあるのでは?
と考え出すときりがない。

システム思考の研修で聞いてみたら、書き方は何種類もあっていい。
正しい回答はない、ということだった。
つまり、因果関係はその人のマインド、固定観念を表す。
そこからメンタルモデルを見つけて、新たな観点の気づきを得る、みたいな対症療法みたい。

今後も色々書きなぐってみる。

| | コメント (1)

より以前の記事一覧