かざいむ日誌

IT関係で知ったことなどを記事としてあげていきます。内容に不備や質問などあればぜひコメントをよせてください。

設計Nightに行ってきました。 #sekkei_n2018

先日設計Nightというトークイベントに行ってきました。これは元々、 @shinpei0213 さんがBuildersconで話した内容についてのスピンオフ企画。忘れてしまいそうなのでメモがてらアウトプット。まずは登壇者の方々の資料を貼る。

nekogata.hatenablog.com

YouTubeに講演動画上がってました。

 

@moznion さんの発表資料

speakerdeck.com

 

@magnolia_k_ は公開資料作成中らしいですが、確かにこの1枚に凝縮されてます。

 

 

追記。資料公開されたようなので貼っておきます。

speakerdeck.com

 

@sona さん

medium.com

 

@moznion さん『ソフトウェア開発における「設計」と「パフォーマンス」の相互作用』

パフォーマンスを上げるための取り組みを垂直、水平、その他という切り口で分けていて分かりやすかった。スライド中に何度か「ゼニや」というえげつない言葉が出てくるが、ビジネスを見ろと言う大事な指摘だと思う。技術的負債という言葉と同じで、パフォーマンスもコストという物差しがあることで、妥当なラインを判断できるということを学んだ。まずはコストに見合わない「早すぎる最適化」をせずに、素直に設計する。インプレッションやユーザ体験、サーバの有効活用の観点から必要に応じて、パフォーマンスを向上させる設計を行う。設計のきれいさやパフォーマンスといったそのままでは比較できないものを「ゼニ」で判断するというとても面白い発表だった。

 

@magnolia_k_ さん『ドメイン知識の暗黙知形式知にするためには』

仕事で業務システムを作っているので個人的には一番身近に感じたトピック。ドメイン知識がなぜ暗黙知になるのか、どうやったら形式知とできるのかについての発表。暗黙知を3つに分けてそれぞれになぜ形式知とならないかを説明されていた。事実は起きた時にいた人には当然のことになっているから明示的に共有しない。関係はある視点から見た時に浮き彫りになるものだから視点を持つことなしに明示化できない。原則はそもそも意識しない、例外は書ききれないから共有されない。これはとても納得感があった。関係を明示化する方法として、何かしらかのフレームワーク(例えばAs-Is、To-Beモデル)に当てはめてみることを提案されていてなるほどと思った。原則を形式知にする方法がちょっと記憶が飛んでる。

ここで思い出したのが、国際協力のファシリテーションの本。この本の考え方がヒントになるんじゃないかと思った。

途上国の人々との話し方―国際協力メタファシリテーションの手法

途上国の人々との話し方―国際協力メタファシリテーションの手法

 

『途上国の人々との話し方 国際協力メタファシリテーションの手法』
和田信明、中田豊一(2010年)
みずのわ出版

 

これは国際協力で、援助対象の地域の人に課題を聞き取る時のヒアリングについて書かれた本だ。いくつか引用やメモを紹介する。

「私」は、村人に「問題は何ですか」と、聞いてはいけなかったし、「原因はなぜですか」とも決して尋ねてはならなかった。  

現実を構成する3要素:事実、観念・考え・意見、感情・情緒・気持ち
すべての質問が次の3つのタイプに分けることが出来る
1.「朝ご飯は何が好きですか」→好み=感覚、感情
2.「朝ご飯はいつも何を食べますか」→思い込み、考え、意見
3.「朝ご飯は今日は何を食べましたか」→事実
WhyとHowを使った質問は現実を浮かび上がらせない
事実質問に徹するということは、「観念」「概念」を尋ねる質問は控えるということ。こちらは事実を知りたくて質問しているのに、相手は、こちらに合わせて自分の考えを交えて答えることになり、やり取りに食い違いが生じる、つまり現実認識を共有できない、あるいは、思い込みと事実を区別しないままに、「思い込み」のほうを答えてしまう、という混乱を避けるということであった。

 

本当の原因を知りたいのであれば、「なぜ?どうして?」と当人に聞かないほうがいい。卑近な例でいえば、「先生、お腹が痛いんです」と言う患者に対して、医者が「どうしてですか?」と聞くはずがないということことだ。患者の自己分析など尋ねないで、医者は、「いつからですか?」「今朝は何か食べましたか?」という具合に問診、すなわち事実質問を重ねていくことを私たちはよく知っているではないか。
課題分析を手助けするためには、問題そのものについても、こちらからは尋ねないのが対話型ファシリテーションの原則である。逆に、もし相手がこちらに聞いてほしい問題があるのであれば、必ず相手から語り始めるはずだ。だから、こちらは、何でもいいので、相手の周辺で目に付いた物の中から意味のありそうなものを選んで、「それは何ですか?」「何でできているのですか?」「いつ手に入れたのですか?」などと単純に聞き始めればよい、ということである。

ちょっとずれているかもしれないけど、、、。

 

@sona さん『マイクロサービスと設計原則 』

FiNCでのマイクロサービスの実践を設計原則に照らし合わせてどのようにマイクロサービスを構成するのが良いかについての発表。マイクロサービスやったことないので、こういう課題があるのかというのが、FiNCでの事例で具体的に分かってとても面白かった。基準の立て方で、方針や構成が変わるというのがとても面白い。「実装のDRY」ではなく「作業のDRY」を目指すというのが名言。

今気づいたけど(いまさら)、マイクロサービスこそDRYの理想の体現で、マイクロサービスで出てくるDRYにまつわる問題は、DRYの根本的な問題と言えると思う。発表では横断的な関心事をDRYでどう解決するか、視点によってDRYの切り口が変わるという問題をどう解決するかという本質的な話をされていた、と今さら気付いた。それぞれ、横断的な関心事は「実装のDRY」ではなく、「作業のDRY」を目指すことにより解決する、視点によってDRYの切り口が変わる場合は、それぞれを1つのビジネスとみなしてマイクロサービスを設計する。なるほど。

 

とても楽しいトークイベントでした。ありがとうございました!

青年海外協力隊応募用紙がITストラテジストとかの論文問題に似ているのでは?

もうすぐ秋期の青年海外協力隊の応募が締め切りということで協力隊に応募する予定の若手の友人から応募用紙の添削をお願いされました。いくつか指摘をして、自分でも出来てない内容があったので、投稿します。

 

青年海外協力隊の応募用紙に書く内容は、同期や、やりたいこと、自己PRなどです。具体的にどんな項目だったか忘れたので他のサイトから引用。

1-1. 参加動機と抱負 : 約260文字

1-2. ボランティア活動の意義、目的 : 約260文字

2-1. 職種選択理由 : 約260文字

2-2. 経験(実務等)、技術適合性(セールスポイント) : 約880字

2-3. 弱点 : 約190文字

2-4. 自己PR : 約240文字

3-1. 帰国ボランティアの心に残るエピソード : 約190文字

4-1. どのようなボランティア活動を行うのか : 約240文字

5-1. 帰国後、参加経験をどのように生かしたいか : 約245文字

【2018/10更新】青年海外協力隊 ~合格者の応募用紙の書き方~ - Toward ICT4D

 

ぼくが受けた時よりも全体的に書く分量が細分化されているようです。

 

友人の応募用紙を読んで挙げた指摘は以下の通り。

  • 内容を具体的に記述する(トピックを詰め込み過ぎない)
  • 読んでる人に採用したいと思わせる
  • 聞かれたことに答える
  • 分かる言葉を使う

で、指摘しているとこれってITストラテジストの対策本で言われていることと同じじゃないかという気がしてきました。上の点でそれぞれ説明していきます。

 

内容を具体的に記述する(トピックを詰め込み過ぎない)

問いのそれぞれが200文字から400文字程度なので、1つか2つの話を掘り下げると十分で、それ以上に書くと表面的な文章になるような気がしました。彼の場合は、「参加動機と抱負」で、最初のきっかけとなった出来事、その後の自分の就職、こういうことがやりたい、という内容が書いてあったのですが、字数の制約からか全部が1文だけになっていました。そこで、原体験、そこで感じた課題、それを解決するために協力隊でこういう活動がしたい、と書くことを提案しました。

また、「自己PR」では過去の活動について記述されていたものの、概要と学んだことが記述されていてやや表層的に感じました。そこで、活動で働きかけた人数、どのような手段で働きかけたか、どういった組織の人とやり取りしたかなどを記述するようアドバイスしました。

まさにこれはITストラテジストで言われることで、定量的、定性的に、1トピック400字くらいで記述することで記述に説得力が出るんじゃないかと思いました。

 

読んでる人に採用したいと思わせる

これについては、ちょうど先日聞いたポッドキャストで広木大地さんが面白いエピソードを紹介していました。これの真ん中くらいかな。広木さんは就職するにあたって就活対策本ではなく、人事業務の本を読んだそうです。というのは、みんな対策本を読んで面接に臨むので平均点以上をとるのは難しい。人事業務の本を読むと、最初の方の面接のでお話しする人事の方の記憶に残り、次の選考に進みやすいのではないかと考えたからだとか。(このポッドキャストおすすめです。マネージャーを考えている人はぜひ。)

友人の応募調書では「 帰国後、参加経験をどのように生かしたいか」で自分のスキルアップについてだけ書かれていました。個人的には正直で好感が持てます。ただ、これをJICAの人が読んで、ボランティアとして派遣したいかというとちょっと疑問が残ります。嘘を書けと言うのではなく、自分のスキルアップと日本社会への貢献が交差するポイントを書いてあるとJICAの人も安心して派遣できるんじゃないでしょうか。

これはちょっとITストラテジストで言うと自分の役割を意識した記述にするという点で共通すると思います。ITストラテジストは役職でいうとCTOやプロダクトマネージャーを想定しているんじゃないかなと思います。そこをはずれた記述は役割を踏まえてないと見なされると思います。

 

聞かれたことに答える

次に友人の応募用紙で気になったのが「参加動機と抱負」で、主な流れに関係のない自分の経歴が書かれていることでした。自分のことを正確に伝えようとしてそうなったんだと思います。正確なのは良いことですが、知らない人にはどうつながるか分からないので、文章が分かりにくくなると思います。

 

分かる言葉を使う

そして、最後に友人の文章で気になったのが、業界用語が多めだったことです。ITのお仕事では、上流工程、要件定義などの言葉はおなじみですが、他の業界の人にはそうでもないんじゃないかと感じました。むしろ、そこでお客さんに提供できる価値である、改善方法を一緒に考える、矛盾する要望を整理するなど具体的な話に落とし込んだ方がいいんじゃないかと思いました。

これもITストラテジストの論文に共通するような気がします。

 

と言うわけで、青年海外協力隊を考えている人は他の論文試験の対策本を読むといいかも、ITストラテジストを考えてる人は他の人の論文を読むと良いかも、と思った次第です。

 

2018年秋期ITストラテジスト受けてのふりかえり(午後)

午後1、2について速報の振り返りから。

 

午後1

午後1については大きな課題はなかったように思うけど、来期受ける試験のため、改善点を補足。

業務知識の充填

今回受けたITストラテジストの問題では、業務知識を各分野一通り頭に入れておくと答えやすいと思った。システム化のポイントや課題となる点を抑えておくと、問題文を読んだときにそれを下敷きに理解できる気がする。セキュリティやデータベースは雑誌等で事例を補うのがよさそう。ITストラテジストは『業務知識がわかる本』とかを抑えておくとよいかも。来期受験を考えているPMはまだどうやって知識を補うのがよいか不明。

最近の技術動向の知識の補充

今回、午後1ではチャットボット、ブロックチェーンを題材にした問題が2題出題された。上で書いた基本的なポイントともに、雑誌等で導入事例とKPIを抑えておくとよさそう。特にITストラテジストで問われる定量的な情報、KPIは斜め読みしただけでは忘れてしまうので、メモとか取ったほうがいいかも。

 

午後2

これは去年からは少し前進したものの今回も文字数不足で敗退。課題は3つくらいある。

まずは書くスピード。書いている途中で、この話にはこの前提を書かないと、というのを思い出し、消して書いてとしていたため、書くスピードが遅かった。論文一度書いてみようと何度か思って挫折したけど、それよりかはロジックを組み立てる練習をしたほうが良かったかも。次回受ける際には、問題集の模範解答の論文をロジックで分解したり、過去問を解くときに、まずはマインドマップで回答を作ってみるなどしてみたい。

次に、問われる内容があいまいな質問でフリーズしていた。実際に今読み直してみると、ちゃんと問題文に方向付けがされている。これは問題文の読み込みが足りなかった。とともに、過去問でよく見る出題だと思うので、過去問を自分でも類型化して、どういう記述をするか方向付けを考えておくとよさそう。

そして、言葉のチョイスや例示の仕方で悩んで時間を失ってしまった。課題としては、書き上げる経験の不足があると思う。対策本の回答論文の設計書から実際の論文に起こす作業をやって、どういう表現がいいか意識して記述できるようにする。

 

とりあえず今日はみなさんお疲れさまでした。

2018年秋期ITストラテジスト受けてのふりかえり(午前)

 

というわけで、ほかの試験をはさみながらも半年の準備で臨みました。結果、午後2の論文が規定文字数に達しなかったため、すでに負けが確定しました。半年後別の試験を受けたいし、来年こそは合格したいので振り返りします。今年は午前1免除だったので、それは割愛。午前2についてから振り返ります。

午前2

午前2は去年買った問題集を解いて、まあ余裕でしょと思っていたけど、そうでもなかった。上で書いているように、初見のキーワードがいくつかあった。

IDEAL

IDEALはPDCAに似たプロセス改善モデルで以下の5つのフェーズからなる。元々はソフトウエア改善のモデルで、今は組織改革のモデルとして利用されているんだとか。

Initiating:開始
Diagnosing:診断
Establishing:確立
Acting:行動
Learning:学習
www.itmedia.co.jp

構造化インタビュー

調査項目を決めてから、決められた順序で質問すること。本当は質的な記述ができないと構造化インタビューとは言えないそうです。

インタビュー技法について

プロダクトポートフォリオマネジメント

今回は縦軸、横軸が何かを問われた、、、。市場成長率と市場占有率です。

FSP(Frequent Shoppers Program)

平たく言うとお店とかのポイント制度です。

www.weblio.jp

スキミングプライシング

投資を回収するため、先行者利益を獲得するために、製品投入の初期段階で価格を高く設定する手法のこと。

mba.globis.ac.jp

ラインエクステンション

すでに成立している製品のブランドラインに別の製品を投入すること。

kotobank.jp

ダブルビン

生産管理の用語。部品や資材について2つ(ダブル)の格納先(Bin)を用意しておき、片方がなくなったら定量発注する方式のこと。発注点と発注量が等しい。

keieimanga.net

TLO

「大学の研究者の研究成果を特許化し、それを企業へ技術移転する法人」だそうです。

大学の技術移転(TLO)(METI/経済産業省)

 

XBRL(eXtensible Business Reporting Language)

e-words.jp

XBRL対応のシステムだと修正や書類の作成の自動化が簡単になるそうです。

ティアダウン

製品を部品レベルにバラバラにして、分析すること。 

www.weblio.jp

リーダーシップのコンティンジェンシー理論

組織の状態によって理想とされるリーダーシップは異なるという話。

コンティンジェンシー理論 CapmNetwork

 

ワークデザイン法

現実にとらわれることなく理想的なシステムを想定したうえで改善策を考える方法。 

ワークデザイン法とは

 

連結決算

これ計算の仕方分からなかったので、またこのあたりのサイトを読む

keiriplus.jp

 

刑法の電子計算機使用詐欺罪

詐欺にも窃盗にも当たらない行為を犯罪として罰するための罪。以下の2つの行為が対象。

不実の電磁的記録の作出(前段)→銀行のシステムをハックして、財産を移転させる

電磁的記録の供用(後段)→改ざんしたSUICAを不正に使用する

電子計算機使用詐欺罪 - Wikipedia

 

 

格納型クロスサイトスクリプティング

類型がいくつかあるの知らなかった。読んだ通りで、サイトのデータに攻撃用スクリプトを保存し、それを見た他の利用者が被害を受ける。ほかに反射型、DOMベースがある。

クロスサイトスクリプティング - Wikipedia

Adaptive Coding クリーンアーキテクチャリンク集

業務改善の相談された話(まだ始めたばっかり)

話の流れ

先日軽く相談されてたITに興味ある人と業務ハックの打ち合わせ。業務ハックと言った方がなんか良い感じがするのでこう呼んでおきます。

相談の内容はこんな感じ。

社員20人くらいの会社。受注生産の機械を作るメーカーにたいしてフレームなどを納めている。注文を受けると、フレームから部材を検討し、材料を発注、一部を外注、社内で加工し、検品の後、納品する。

問題は残業が常態化していて、社員が疲弊している一方、利益が十分に出ていないとのこと。ヒアリングしての課題は、

  1. 大まかに見積もりされていて、案件ごとの利益計算が出来ていない
  2. 標準工数が設定されておらず、スケジュール遅延が頻発
  3. 改善のための時間が取れない

まずは業務の流れを確認した。

まずは最初のステップとして彼の負荷を減らすことに目標を設定。業務の中で単純作業で1人でやっている作業を見つけ、修正を提案するなど。

 

業務フロー

上の話をするときに文章で仕事の流れを書いてもらった。これにデータの入出力、担当する人を加えると業務フローになる。これを作ると仕事の流れを他の人と共有できるし、改善を考えるときの補助線になる。

f:id:name_untitled:20181009223324p:plain

超上流から攻めるIT化の事例集:システム化の方向性と計画:IPA 独立行政法人 情報処理推進機構


IPO

あと、業務を分析する際にIPOを考えること。IPOは3つの単語の頭文字でそれぞれ以下の意味。

  • I(Input):入力
  • P(Process):処理
  • O(Output):出力

どんな情報や書類などから、どういった手順で処理を行い、結果としてどんな情報や書類を作るかを考えると、そこでやっている「作業」が何のためかが他の人に伝わりやすく表現できると言う話をした。


フローチャート

あと、これは説明し忘れたけど、プログラムを書くときにこれを意識しておくといい。特にプログラミング初心者だと、繰り返しの処理とかイメージしづらいと思うのでこれ良いと思う。

 

Jis-flowchart-fixed.png
By コンピュータが読み取れる情報は提供されていませんが、Statical~commonswikiだと推定されます(著作権の主張に基づく) - コンピュータが読み取れる情報は提供されていませんが、投稿者自身による作品だと推定されます(著作権の主張に基づく), パブリック・ドメイン, Link

 

今後

改善対象の作業のマクロをざっと組んだので、彼に使ってもらって、VBAに触れてもらいながら動作検証をしてもらう。

ASP.NET Coreのメモ

ちょっと関わるプロジェクトで構成考えることになりそうなので、ASP.NETASP.NET Coreを調べようと思って、この動画を見た『ASP.NET MVC プログラミング入門の入門(増田智明)』

まず、.NETでオープンソースというとmonoを思い出すかもしれないが、.NET Coreとはmonoとは異なる。monoからXamarinが派生した?XamarinはMicrosoftに買収されたので、MicrosoftとしてはXamarin推し。XamarinはiOSAndroid用で、それ以外のOS、LinuxMac用として.NET Coreが誕生した。.NET Coreは.NET Frameworkの中心の部分をLinuxでも動くようにしたもの。

.NET FrameworkASP.NETASP.NET MVCの3つのレイヤーで選択肢がある。

https://codezine.jp/static/images/article/10482/10482_001_s.png

.NET Framework上に、ASP.NET Coreを載せるのも出来るが、Coreで統一するか、Windows動作環境(IIS上で動作)で統一するかのどちらかじゃないかとのこと。Windowsサーバ以外でも動かすには.NET Core、ASP.NET Coreの組み合わせを選ぶ。

 

この動画では.NET Core、ASP.NET Core、ASP.NET Core MVCを紹介している。プロジェクトの作成で、Coreがついているものを選択すると作成可能。ASP.NET CoreではVisual Studioでも起動できるが、コマンドラインからも起動が可能。プログラムを実行し、プロセスを立ち上げる形。1プロセスで動く、Node.jsと同じ。

f:id:name_untitled:20181007154337p:plain

 

認証、MVCなどの機能はモジュール化されていて、ベースのサービスに追加していく形をとる。(普通のASP.NETも4.5以降はそんな感じな気がする)

Startup.cs

public void ConfigureServices(IServiceCollection services)
{
    services.AddMvc();
}

 

がっつり使うならIISを使う方が楽かも。
MVCパターンについては特に説明なしで、MVCパターンからVをなくしたのが、WebAPI。Controller、Modelから出来ていて、リクエスト、レスポンスの仲介として、InputFormatter、OutputFormatterがある。Formatterは自分で作ってもいい。ただ、別の記事によるとASP.NET MVCのプロジェクト内蔵のWebAPIを使ってもいいが、WebAPIプロジェクトを別に作った方がいいらしい。

codezine.jp