とあるIT屋の独白

ITや経営について主に書きます

ICONIXプロセスとは何か

システム開発において、DDDの要素を取り入れるようなこともけっこう浸透してきたと思います。実装部分は下記のnrsさんの記事や書籍で、けっこうイメージが付きやすくなっていると感じます。

nrslib.com


ただ、実装の元となるモデリングの部分をどうやって進めるか、というのはまだまだ方法論としてそこまで確立していない気がしています。私もけっこう前に、実業務に照らしてモデリングをやってみようとした時に、なかなか思うように進まなかった記憶があります。というわけで、今回はモデリングを進めるためのプロセスについて書いてみたいと思います。
モデリングを進める、一つの手法として下記の記事にある「ICONIXプロセス」が挙げられます。ICONIXプロセスが着目するのは「ユースケース」になります。ユースケースとは直訳すると「振る舞い」になるのですが、ドメイン(システム化の対象)を洗い出すとともに、そのドメインがどのような振る舞いをするのかを整理しないと、中々実装まで落とすのは難しいです。

logmi.jp


ユースケースについて、もう少し詳細に解説しているのが下記の記事です。ユースケースとは端的に言うと、誰が何を達成したいかをまとめたものになります。UMLを使ったことがある人は、ユースケース図はおそらく作ったことがあるかと。もちろん最初に作り時はざっくりと要望レベルのもので良いと思いますが、深く掘り下げるとユースケース間の相互作用だったり、包含関係も表現する感じになります。

umltool.hatenablog.com

 

では実際に、ICONIXプロセスを進めためにどうすれば良いかというのは、下記の記事が参考になります。プロセスとしては最初にドメインを決め、ざっくりと対象を名詞形で整理します。その後に、実際にユースケースの検討を行い、動詞(振る舞い)を検討していきます。その後にロバストネス分析と呼ばれるものを行い、実際の実装にモデルを近づけるという流れになります。

qiita.com


このICONIXプロセスを行うことで、ドメインの定義から実装までの間をある程度埋めることが出来るのではと個人的には感じています。ドメイン自体の定義も非常に重要ですが、振る舞いにもきちんと着目することで、よりイメージの付きやすいモデリングが出来ると私は考えます。

理想と現実と問題

自分がこうありたいという理想は誰でも持ってると思います。ただ、その理想を現実で体現できる人は多くはないと感じます。かくいう私も理想通りいってるかというと、全然そんなことなくて、新卒の時に考えてた理想と今社会人10年以上やってての現実を比較すると全然違うし、学生の頃考えてた理想と今なんかもっと違います。今自分がこんなことやってるなんて、おそらく当時の自分は今の状況を全く予想なんかしていなくて、それは世の中の変化が激しくなってるし、自分自身の特性もまだ十分に吟味できていなかったからだと感じます。

理想自体をたてること自体は良いことだし、これが無いとどこに進んで良いか分からなくなります。ただ、理想をたてることにやたら時間を使うことはあまり意味がないと思ってて、現実もきちんと見るべきだと考えます。現実世界では理想から外れることも起きたり、理想と違うこともしなければいけないときもあります。理想と現実にはギャップが必ずあって、それは自分では到底実現できないギャップかもしれません。ただ、そこを悩みつつ理想と現実をいかに近づけるか、というのを試行錯誤しなければいけないわけです。

www.vive-la-vie.jp

 

理想と現実のギャップは、いわゆる「問題」ということが出来ると思います。ので、いかに問題をブレークダウンして、現実世界に落とし込むかというのが必要になってきます。この「問題」を定義するには理想だけじゃダメで、現実もきちんと見るというのが重要だと考えます。下記のような思考のフレームワークを使うのも手でしょう。

style.nikkei.com

 

で、結局理想が正しいのかというのは、問題解決が出来るかということに関わってきていて、自分が到底解決できないような問題が出てきた場合は、その理想は間違っていたということになると思います。ただ、世の中も変化するし、自分の特性も十分分かってない中で正しい理想を特定するというのは、なかなか難しいこととは思います。
私なんかは、その時々で持ってた理想なんて今考えると、全然自分にとって実現できないものだったし、自分がすることに価値があまりないものだったのではと感じています。でも、自分が思ってた理想が、ダメなものだと気づくことは良いことだと思います。そこで変に理想にしがみつくと、よく分からないものに手を出したり、下手したら昨今話題の経歴詐称のようなことをやらかす、みたいな方向に行ってしまうかもしれません。ダメだと思ったその時は落ち込むとは思いますが、やはり拠り所になるものは現実世界の自分です。理想をたてること自体は良いことだし必要なことだと思ってます。ただ、その理想が外れた時、自分って自分達って結局何だっけ、何をしたかったんだっけと考えて、答えを出せることが大事だと私は考えてます。

SLAとコンテクスト

AWSなどクラウドのサービスなどをやってる業者は、SLA(Service Level Agreement)と呼ばれるサービス品質を定めてた定義が作成されてます。SLAはITの業界でシステムの稼働に関することが定められることが多いですが、適用範囲を広げるとカスタマーサポートの応答時間などについても、その範囲になってきます。

www.zendesk.co.jp

 

私も前の会社で保守業務をやっていたのですが、SLAとまではいかないまでも、問い合わせ対応の範囲(出来ること・出来ないこと)は定めるようにしました。まぁ、多少お客さんからの無茶ぶりとかもあったので。。
システムに限らず、サービスの品質を定めることは大事になってきてると感じます。度々話題になるモンスターカスタマーみたいなのもいるわけで、そういう人達に対して説明する根拠にもなるからです。日本ではサービスに対して過剰な要求がされる傾向があるので、どこかで線引きしないと収拾がつかなくなるわけです。

japan.zdnet.com


日本では、顧客の高い要求に応えることや、気遣いをきちんとすることが、サービスの品質を上げてきた、という意見については私も同意はできます。ただ、こういったことが実現できる前提が崩れてきてて、きちんとサービスを定義しないと成り立たなくなってる状況まできてると感じます。日本は元々「ハイコンテクスト」な文化といわれていて、いわゆる「言わなくても分かるよね」的な阿吽の呼吸で、物事を進めることができました。ただ、日本でも村社会から都心部での生活に軸足が移ったり、外国人の方もたくさん働くようになったりで、このハイコンテクストな文化は崩れつつあると私は感じます。
モンスターカスタマーが生まれてきてるのも、今までハイコンテクストな文化で通用してきたことが、通用しなくなってることが一因と考えています。自分がサービスに対して不満を感じるなら、二度とそのサービスを使わなければいいだけなのに、なぜ理不尽な要求をしてしまうのか。根底には、自分のコンテクストが相手に伝わるという思い込みがあると感じます。気持ちは分からなくはないですが、もうハイコンテクストでは通用しない現実になってるのではないでしょうか。
今はコロナの影響もあり、コミュニケーション手段としてオンラインにシフトしていって、おそらくオンラインの手段が主軸になっていくでしょう。そうなると、コミュニケーションもローコンテクストにならざるをえず、「言わなくても分かる」がより通じなくなります。なので、サービスについてもあらかじめ品質を定義して、双方合意の上で利用するといったことを心がける必要が出てくるのではないでしょうか。ハイコンテクストの前提で続けていっても、トラブルは中々減っていかないのかなと感じます。

www.trivector.co.jp

 

結婚できないことに関する考察

近頃の人は結婚しない、できないと言われ続けて久しいですが、かく言う私も独身でして、このまま結婚できないという可能性も全然ありうるわけです。近頃では親からも結婚しろとか言われなくなって、周辺からも半ば諦められているという年頃なりました。
実際に結婚できない中年男性の人は、おそらく増えていくだろうし、下記の記事によると340万人が結婚できないだろうと言われています。それは中年の男性の絶対数が多いのと、恋愛に長けた男性が結婚離婚を繰り返してある種の2極化状態になっているという、2つの要因が挙げられています。

gendai.ismedia.jp


さて、昔は結婚できた人が多かったのになぜ今はこんなにも難しくなっているのか。それは、お見合いというシステムが事実上、崩壊していることが一因として挙げられています。以前はある種不自由な結婚をさせらていたからこそ、結婚率が高かったのであり、今のように自由に結婚していいですよとなったら、今度は結婚できない人がワンサカ出てきたわけです。

woman.mynavi.jp

 

以前に私の知り合いだった人が、結婚できない男は何かしら問題があって、結婚できない人よりもある種離婚経験がある人の方が人間的には魅力的だ、みたいなことを言っていました。それは一つの意見としてはそういうのもあるかなとは感じますが、個人的にはこのような意見はあまり好きではありません。私自身、イケメンでもないし、お金それほど持ってないし、コミュニケーションが上手いわけでもないです。じゃあそんな自分が人間的に問題なのか。結婚できない人は問題だという意見の立場からすれば、おそらく私は問題ある人間でしょう。
結婚するにも、ある種のスキル的なものが必要な時代ではありますが、そこには必ず得手不得手が出てきます。おそらく私は不得手な側の人間でしょう。であれば苦手なフィールドで無理するより、他のフィールドで自分の良さを活かせる場所で楽しみを見つけた方が、何倍も生産的だと思います。せっかく結婚が自由な時代になったのに、結婚できる・できないで人を括って評価するのはナンセンスになってくるのではと感じます。
最近話題になった光浦靖子さんの以下の記事、個人的にはけっこう共感できました。「なんで普通の人みたいにできないんだ」という気持ちになることが私にもあって、ただ普通の人みたいになりたいと思って行動しても中々うまくいかない。だったら、このままの自分で生きていく、というスタンスは今の時代は選択肢としてありだと私は考えます。

blogos.com


下記の記事にある通り、これから我々を待ってる世界観は「分断」と思ってます。多様性や自由が重要になってくる中で、結婚したくない人やできない人が増えてくることは、それ自体はあまり不思議ではないです。そして、ある種の層が出来て、その層ごとに正義や共感するポイントは変わってくるでしょう。私個人としては別にこの分断の世界観が嫌というわけでもないし、まぁいたしかたないことなのかなとは感じます。
この分断におそらく多くの人が気付いてなくて、少し前の世界観で別の層の人を評価する人はまだまだいる状況でしょう。ただ、その評価にめげずにいかに自分を曲げないかというのは、生きていく上でけっこう大事な気はしています。

tomyuo.hatenablog.com


「結婚できないの?」というマウントをとってくる人もたくさんいると思いますが、私としては仮にこのまま結婚できないとしても、結婚できた人よりも楽しく生きたいと考えています。自分自身がそういう生き方をすることで結婚とか関係なく自由な生き方が出来るというのを、追求していければ良いなと思ってます。(決して結婚したくないとかではないですが・・)

デザインについて今更ながら考えてみる

デザインと言うと「見た目」というイメージはあると思いますが、最近はデザイン思考の考え方も以前と比べると浸透してきたように感じます。ただ、デザイン思考がある種のブームになるに従って、デザインって何だっけというのもけっこうぼやけてる気がします。ということで、今回はデザイン思考を切り口にして、そもそもデザインってなんだっけっていうのを個人的に感じたことではありますが掘り下げていきたいと思います。
デザイン思考というと、以下の記事にあるような5つのステップであったり、付箋をはって整理するといった手法を思い浮かべる人もいるかもしれません。顧客の声を聞くのは非常に大事だし、色々なアイデアを整理するのも大事なのですが、ではそれがデザイン思考なのかと言われると、少し違和感を個人的には感じます。

mariosakata.com


 絵を描くデザイナーも、もちろんターゲットを思い浮かべてコンテンツ製作をしてると思いますが、ただそれだけでなく自分が主張したいことを盛り込んで作品にするはずです。ので、手法ももちろん大事なのですが、もう一歩深い考察もデザイン思考において求められてくるのではと思います。下記の記事で書いてあるような「変化していく世の中でこれから何が必要なのかを考える」といったことも必要なのでは。

www.businessinsider.jp


具体的な事例をあげると、下記の記事のはてなのデザイナーの思考がそういったものに、近いのではないでしょうか。はてのデザインでは2~3年後を想像した、モックアップを作成するそうです。もちろん、直近出てるユーザーの声も盛り込まれると思いますが、未来にこのプロダクトがどうなっていたいか、そこに対する思いも反映されていくと感じます。未来を想定するには、自分達がどうありたいのかとか、なぜこれをやってるのか、といった活動の根元的なものを掘り下げることが大事になってきます。

codezine.jp

 

 

疑わしきは罰せずの精神

少し前に池袋暴走事故の初公判が、行われました。その場で被告が無罪の主張をしたことに、憤りを感じた人もいるでしょう。そりゃあ、あんな主張して罪の意識はないのかと、言いたくなる気持ちはメチャメチャ分かります。
ただ、我々第三者は、ことさら被告のことを批判せず、判決が出るまで静かに状況を注視すべきと私は考えます。下記の記事で杉村太蔵さんが言ってますが、まだ裁判中であって被告にも主張を行う権利は当然あります。今回の事件のケースではまぁ無いと思いますが、被告が冤罪の可能性もあるわけで、判決が出ないうちに決めつけるのは、あまりよろしいことではないと私は感じます。

encount.press


日本では加害者に甘いという意見はよく聞きますが、判決が出される前までという話であれば、それは被告はまだ無実であるという推定無罪の前提だからです。例えば自分が冤罪でもかかわらず逮捕され、刑事裁判にかけられた場合、無実と証明するのはむちゃくちゃ難しいでしょう。やってない証拠を出せと言われても、そもそもやってないのに証拠もへったくれもないという話になってしまいます。なので、刑事裁判においては起訴する側が、被告が犯人である合理的な理由を証明する必要があるわけです。

www.nichibenren.or.jp

 

では、なぜ推定無罪の前提なのか。それは日本の刑事裁判では、真犯人を捕まえることよりも冤罪を出さないことに重きを置いてるからです。もし、現在裁判中の被告がメディアに取り上げられ批判されまくったけど、冤罪でしたとなった場合、その人は今後どう生きていけば良いでしょうか。だから、きちんと判決が出るまでは、その人を無実として扱わないとダメなわけで、この前提が今の日本の風潮は崩壊しつつあると感じます。

www.aoba-law.jp


もし、疑わしきは罰するになった場合、裁判をやる意味がありません。その先に待ってるのは無秩序であり負の連鎖です。実際にインドネシアでは司法の場が機能しなくなって、そのような無秩序が起きてしまってます。これは日本においても、他人事ではないと感じます。

www.afpbb.com

 

判決が出てないタイミングで被告に意見を言えるのは、遺族の方や裁判関係者だけです。第三者は、たとえ被告がどんな人間であっても絶対に許すことができなくても、尊厳が与えられるべき人として見なければならないと私は考えます。そうすることが、自分達の社会の秩序を保つことにつながるからです。ネットで簡単に発信が出来るようになった今だからこそ「疑わしきは罰せず」の精神は、我々一人一人が根底に持つべき考えと私は思います。

エッジコンピューティングと次世代のインフラ

ITのインフラは今はクラウドベースのものが、かなり当たり前になってきていて、普及という点では十分なところまできてるように思います。今回は現在のクラウドインフラの次に来るかもしれないインフラについて、少し書いてみたいと思います。
今はまだIoTは普及段階なので、AWSのような地方ごとに巨大なインフラ拠点があればこと足りるかもしれません。ただ、より大量のデータがやりとりされたり、即応性が求められたりすると、このインフラの形だともたなくなる可能性があるわけです。そこで今考えられているのが「エッジコンピューティング」です。エッジコンピューティングでは、処理対象に物理的に近い位置に「エッジ」と呼ばれる、小さいサーバ的なものを配置します。リアルタイム性が必要な処理はこのエッジが担当して、時間がかかるバッチ処理は中央のサーバが行うといった、大まかな構成になります。

www.ntt.com


具体的なユースケースとしては、機械学習による使用が挙げられます。機械学習の元ネタとなる学習データは中央のサーバで管理するというのが現在のスタンダードと思います。下記の記事では中央のサーバを置かず、非同期でエッジどうしでデータを共有するような仕組みが検討されているそうです。データ自体は分散されているものの、学習は一つのところにデータが集まっているかのように行われる技術とのこと。

thinkit.co.jp


処理の分散化が進むことによって、ブロックチェーン技術の活用もより検討されるのではないかと個人的には考えています。下記の記事では、宅配ボックスの例が紹介されています。宅配ボックスでは配達人と受取人がいて、どのボックスの荷物を受け取れるかということを、アプリで管理しています。登録した情報が適切かという判断を中央のサーバではなく、ブロックチェーンを用いてます。他の人がボックスを開けられないよう改ざんできないようにし、安全性を担保しています。

tech.s-cubism.jp

 

ブロックチェーンの課題としては、速度面での懸念があるのですが、ここら辺改善されるとより使いやすい技術になるのかなと感じます。