« 2019年5月 | トップページ | 2019年7月 »

2019年6月

2019/06/27

RedmineのUserPrefernceにはシリアライズしたデータを格納している

RedmineのUserPrefernceにはシリアライズしたデータを格納している記事があったので、メモ。
以下、脈絡のないポエム。

【参考】
あらためて感心したRedmineのデータ利用方法(UserPrefernce 編) - ファーエンドテクノロジー株式会社

【1】UserPreferenceには、マイページに表示したいブロックの情報がハッシュ化されてシリアライズされてテキスト文字列で登録されている。
この実装のおかげで、ログインIDに紐づく情報はシリアライズされたデータに含めることができる。

例えば、直近の機能改善「プロジェクトセレクタにブックマークと最近使用したプロジェクトを表示」には、この実装を使っているらしい。
なるほど、この実装のおかげで、プロジェクトのプルダウンが非常に使いやすくなった。

Patch #31355: Bookmarks and recently used projects for the project jump box - Redmine

「Redmine 4.1 新機能選抜総選挙」で紹介できなかった新機能 10選 - ファーエンドテクノロジー株式会社

【2】データモデリングにこだわっていると、正規化されていないデータで設計しているように思えてしまうが、プログラムの観点では、集約(Aggregate)されたオブジェクトで格納されている方がはるかに扱いやすい。
一つの情報の中に芋づる式にすべての情報にアクセスできるからだ。

一方、T字型ERでは、「エンティティが他のエンティティとの関係を内部に取り込んでいることを「純度の低下」と考えている」という立場もあるらしい。
つまり、こういう情報は別テーブルで保持すべき、という考えになる。

「ドメイン駆動設計」感想(1) - なぜファットモデルになるのか - 極北データモデリング

たぶん、この観点の対立は一昔前に流行したORインピーダンスマッチの問題点に行き着くのだろう。
昨今の流れでは、データ永続化の手段はRDBだけとは限らないので、状況に合った利用方法が勧められるだろう。

O/Rマッパーが悪いのはオブジェクト永続化にRDBを使おうとしたことが悪い | Qrunch(クランチ)

【3】上記の記事で興味を引いたのは、UserPreference と同等の機能を持つProjectPreference のようなモデルが作られれば、Redmineのあらゆる機能をプロジェクト単位で制御できるのではないか、という指摘だ。

(引用開始)
個人的には Redmine.org - Feature #4016: Make app settings overridable at project level で UserPreference と同等の機能を持つ(ProjectPreference のような)モデルが組み込まれればプロジェクトごとの設定項目を拡張することも容易になる (画面テーマなどもプロジェクト単位で設定が可能になる)はずです。これによりRedmineはさらに使い勝手が良くなると思います。
(引用終了)

Feature #4015: Make app settings overridable at project level - Redmine

以前から、Redmineの管理画面をユーザ権限やプロジェクト単位で制御したい、という話があった。
その時に、ProjectPreferenceに似たオブジェクトがあれば、機能改善の実現のハードルがすごく下がるかもしれない。

Redmineのワークフロー設定を拡張する機能提案~Redmineは汎用的なBPMツールになりうるか: プログラマの思索

この辺りも色々考えてみる。

【追記】
りょうま@夏競馬行きたいさんのツイート: "DBにJSON型がない時代にはグループウェアのカスタマイズなど、追加テーブルを作りたくない場合にシリアライズして予備カラムに投入というのはよくやってました。… "


| | コメント (0)

2019/06/25

ディープラーニングと知能の本質は「画像」ではないかという記事のリンク

ディープラーニングと知能の本質は「画像」ではないか、という記事がとても面白かったのでリンクしておく。

【参考】
いつでもLOUPE:「黒魔術とディープラーニング―科学からの卒業」

ディープラーニングと知能の本質は「画像」なのか?|人工知能はどのようにして「名人」を超えるのか?|山本一成|cakes(ケイクス)

人工知能は生命と同じく「目」を手に入れ、爆発的に進化する――AI研究の第一人者・松尾教授が語る企業と消費者のコミュニケーション変革 - ITmedia NEWS

【感想】
人が情報を入出力するモノは、言葉・音・画像の3つ。
ディープラーニングは画像認識が得意なので、言葉・音も画像データに変換できれば、人が認識できる情報は全てディープラーニングで一括処理できる。
そして、その方が言葉・音の解析の精度も高くなる、というストーリー。

「AI(ディープラーニング)が人間の手を借りず、画像や映像に写っているものを認識できるようになる」。
すると、画像認識こそが知能の本質ではないか、という仮説が成り立つ。

では、なぜ、画像認識が知能と密接に関係するのか?
実は、生物進化の歴史の大事件である「カンブリア紀の大爆発」の事象と似ているのではないか、という上記の記事の指摘が非常に面白かった。

アンドリュー・パーカー氏の「眼の誕生」は僕も以前一度読んだことがある。
読んだ時は、たかが眼球という一つの機能がそれほど重要なモノとは思えなかったので、あまり感動がなかった。

「眼の誕生」;アンドリュー・パーカー著 読書感想 - 不確定な世界

しかし、ディープラーニングが画像認識に非常に強く、自ら特徴量を抽出して学習していける仕組みを持っていることを考えると、カンブリア紀に眼の誕生が生物進化に大きな影響をもたらした事件と非常に似ているように思える。
たかが画像認識と思っていたけれど、言葉も音声も画像データに一度変換できるならば、全てディープラーニングの対象となり、認識の精度を上げることができる。

一方、人間の脳みそは、言葉や数字などの抽象的機能をつかさどる左脳、画像などの直感的な機能をつかさどる右脳を持つ。
絵描きの能力が高い人は右脳が優れている、という本「脳の右側で描け」を読んだことがあったけれど、実は、右脳の解明がAIやディープラーニングの研究と密接に絡んでいるのかも、という妄想も持った。

【脳の右側で描け】を実践!! デッサンが上手くなる2つのコツ - PETART

脳の右側で描け ? らくがきエルゴノミックス

| | コメント (0)

2019/06/17

英語の考え方と学習方法

ちょっと英語を勉強したので、自分の感想をメモしておく。
ポエムとしてラフなメモ書き。

【1】英語の音は日本語と音域が違う。

英語と日本語では周波数が違うの?周波数の違いについて

「日本語は外国語と比べると周波数が低いことが特徴です。日本語の周波数は125ヘルツから1500ヘルツに対して、英語は2000ヘルツから1万2000ヘルツと大変その数値も異なる」事実から、日本人は英語習得にかなりの弱点を既に持つ。
「小鳥の声を人間の耳で聞く」ようなものらしい。
だから、意識してListeningを鍛える必要がある。

また、日本語は同音異義語が多い。
一方、英語は異音同義語またはパラフレーズが多い。
おそらく日本語は、母音、子音の数が少ないので、同音異義語が多くなりがち。
だから、日本の和歌では、あえて同音異義語を多用することで、一つの文章に複数の意味をもたせる技法が発達した。
掛詞はたぶんそういうもの。

和歌が同音異義語を多用したことで、日本語は今のような言語になった

一方、英語の異音同義語はパラフレーズとして意識して覚える必要がある。

【2】英語は配置の言語。

英語は単語の語順にこだわる。
それは、SVOだけではない。
英語は形容詞にも語順がある。

日本語と英語の差

(引用開始)
英語は形容詞にも語順があります。例えば、『アメリカ製で古くて大きな赤色の車』を、『赤色の大きな古いアメリカ製の車』と形容詞の順番を逆さまに言っても、日本人には何も違和感は持たれません。しかし、英語で形容詞の順番をばらばらに言うと、意味は通じますが、落ち着きの悪い表現だと違和感を持たれてしまいます。英語で正しく表現すると、「a big, old, red, American car」と、1.サイズ、2.古さ、3.色、4.製造場所、5.材質、と形容詞の順番が決まっているからです。
(引用終了)

たぶん、この考え方は、三森さんの「空間配列」の考え方につながっているのだろう。
つまり、「空間配列:空間的に提示された情報を、大きい情報から小さい情報(全体から部分)に向かって並べる方法」というロジカルシンキングにつながっている。

「大学生・社会人のための言語技術トレーニング」の感想: プログラマの思索

大学生・社会人のための言語技術トレーニング - 発声練習

(引用開始)
三森さんが以下の部分で指摘されているように、卒業研究、修士研究で学生指導をしていて思うのは空間配列がうまく訓練されていないこと。これまで4か国のアジアの国の学生に指導してきたけど、みんなダメだった(もちろん、私も4年生まではダメだった)。

もう一つ重要なのが、空間配列の考え方が、その後の物事の捉え方や考え方に大きな影響力を与える点です。一度空間配列のスキルが身につくと、ある対象を見たとき、無意識に大きなものから小さなものへと視線を動かしたり、頭の中で空間配列のルールに従って情報を整理したりするようになります。そのため、空間配列が身につくと、情報提示の仕方に変化が現れるだけでなく、情報の取り入れの過程での頭の働き方まで変わってきます。
日本では残念ながらこの空間配列を教育現場で学習する機会はほとんどありません。それどころか、日本語訳も確定していません(本書では便宜的に、spatial order を空間配列と呼びます)。一方、言語技術を実施する国ではこの空間配列を、小学校4~6年生のころに学習し、スキルがに身につくまでトレーニングが繰り返されます。
(引用終了)

【3】返り読みは日本人の悪い癖。
「返り読み」は日本の古い英語教育の弊害。
漢文のレ点のように、漢文のやり方を英語教育に導入したのが間違いではないか?

英単語は聞き取れるのにリスニングができない5つの原因はコレ!

(引用開始)
受験生時代に一生懸命英文和訳に取り組み、「返り読み」の習慣ががっつり身についてしまっている人ほど、この「単語は聞き取れるのに、意味が分からない」ということに悩まされます。
返り読みというのは、たとえば、
I saw the painting which she had bought at the auction.
という英語を
「私は彼女がオークションで買った絵を見た」と訳すことです。Iの次は、後ろのwhich以下を先に訳して、そして最後にsaw the paintingに返ってくるというやり方ですね。
今までの癖で、リスニングでも多くの人がこのように英語を理解しようとしてしまいます。でも、英語は待ったなしでどんどん流れてきますから、すぐに理解が追いつかなくなってしまいますよね。これが「単語は聞き取れるのに、意味が分からない」という状況になる原因です。
じゃあ、どのように英語を理解していけばいいかというと、「英語を英語の語順のままで理解する」必要があるんです。
I saw the painting /  私はその絵を見た
which she had bought /  それを彼女は買った
at the auction.  オークションで。
といった具合に理解していく癖をつける必要があるんです。
(引用終了)

返り読みという癖を治すには、古い英語教育を受けている人ほど相当な時間がかかる。
僕もそう。
正直、日本語を捨てた方が早いのでは、と思う時もある。

英語を身に付けたいならこの3点を意識せよ | 英語学習 | 東洋経済オンライン | 経済ニュースの新基準

(引用開始)
次に「英語の語順」を意識してみましょう。
そもそも英語とは、まず「結論」があって、その結論について付帯状況を連ねて説明し、膨らませていく言語です。ネイティブたちにとって「結論」から理解していくというのは、ごく普通のことといえるのです。そのため、私たちが英語を勉強するうえでは、「英語の語順」で意味を理解することが必要となるのです。
(引用終了)

英語の語順を意識するようになると、主張→理由→結論のような話で組み立てるようになる。
I think that~, because~ みたいな形式だ。
すると、自然にエレベータートークのようなスタイルが身につく気がする。

(引用開始)
3つめが「意味のまとまりごとに理解する」です。
たとえば、あなたが「返り読みをしない」「英語の語順で読む」を意識してネイティブと会話をした場合、必然的に新しい情報を頭からどんどんインプットしていくことになります。ところが、ネイティブの話す英語を文頭から文末まで聞いて、一瞬ですべてを訳すことなどできませんよね。そこで、具体的には英文を「意味のまとまりごとに理解する」ことで、分割して日本語訳をしていくのです。
(引用終了)

これはスラッシュリーディングと同じ。

以前、英会話学校の先生から、世界中の言語は4千種類あるが、英語のようなSVO形式と日本語のようなSOV形式のどちらが言語の数は多いか?と質問された時がある。
実は、日本語と同じSOV形式の方が言語の種類は多いらしい。

しかし、話す人口は、英語や中国語のようなSVO形式の方が圧倒的に多いらしい。
そういう意味でも、「返り読みしない」「語順を重視」する英語に慣れておくのがいいのだろう。

【4】語学はスポーツと同じ

語学の勉強が面白くないと思う時は、スポーツの単純練習やウェートトレーニングに似ていると感じる時だ。
単調な練習を毎日繰り返すのは、正直楽しくない。
何かしらの目的、成長する実感がなければ、単純な反復練習を繰り返すのは精神的に難しい。

【音読で英語力を伸ばす方法】 | パーキンソン病への指導実例を愛知県豊橋市mixs.スタジオから配信。松本孝一によるパーキンソン病他、指導結果のリアル

(引用開始)
学習を意識した時は、とにかく速く、無心で音読を繰り返すこと。
イメージとしては、高校時代の古典の授業や百人一首、九九の暗記などを思い出してみるといい。
読んでいる内容ではなく、イメージが浮かぶまで読み込む。イメージが浮かぶまでがポイント。
(引用終了)

(引用開始)
考えて勉強する場合は、主に左脳を使っている状態。
これは、記憶には、向いていない。
一方、右脳は考えて記憶を構築するのではなく、同じことを繰り返して体で覚える部位。
右脳を使った場合は、長期記憶が期待できる。
九九にはじまり、自転車の乗り方、スキーの仕方、など、体で覚えたものであっても深く記憶されたものは、忘れない。
これが語学はスポーツと同じと言われる所以でもある。
(引用終了)

語学の学習が右脳を使うと呼ばれる所以も、たぶん、左脳を使わず、反射的に受け答えすることを重視しているからだろう。
「左脳リスニング病」なる病気(?)もあるらしい。

英語のリスニングでやってはいけない「3つのこと」 - GOTCHA!

【5】音を聞いて映像が思い浮かぶ(visualize)

英単語は聞き取れるのにリスニングができない5つの原因はコレ!

(引用開始)
英語が理解できている状態というのは、頭の中で映像が浮かんでいる状態です。でも、自分にとって身近ではないトピックの場合は、その映像を頭の中で作るだけの材料となる背景知識がないので、映像が浮かばないのです。
(引用終了)

日本語の小説を読めば、すぐに頭の中で映像化されているだろう。
井戸端会議の会話から、内容を映像化できているだろう。
同様に、英会話を聞いた時、英文を読んだ時は、意識して映像化(visualize)してみる。

「ネイティブの子供は、これに自分の経験(まわりで起きていること、自分がすること)を結びつけて、音=意味で言葉を習得していく」。

【6】英語は「中心から始まる」。日本語は周辺から始まる 。

感覚でつかめる!根本的な英語の語順ルール→音読するときに覚えてね! | なみのリズム~リズムで体感!英語リスニング~

(引用開始)
英語と日本語の語順の差。
これが端的に表れているのって、住所の表記の仕方なんですね。
今時、なんでもメールで用を済ませるようになっているので、海外に手紙を書く機会ってなかなかないかもしれませんが…
この住所の書き方の差が理解できると、英語の語順についての理解が深まります!
では、早速下を見て、英語と日本語の住所の表記の差を考えてみてください。
英語: 1234-5, Minami, Koto-ku, Tokyo, JAPAN
日本語:日本 東京都江東区南1234-5
はい、順番が逆なんです。
英語だと番地から始まっています。自分がいるところ、つまり中心から始まっていますね。そこから、地名、市(区)、県…と、徐々に周辺に広がっていっています。
一方日本語だと、情報が周辺から始まっています。自分が所属している一番大きな単位=日本から始まり、最後に自分がいるところ=中心がきています。
下に、イラストでこのイメージを示しておきますね。アメーバではなく日本地図だと思って下さい。
英語→中心から始まる  日本語→周辺から始まる
「英語は中心から始まる。」
これがすっごい大事です。この発想のちがいを頭に入れておいてください。
英語は中心から始まる→個人主義だから?
ちなみに推測ですが、この差が生まれるのは、日本が元々集団主義の社会で、英語圏が個人主義の社会だというのが、ひとつの原因になっていると思います。
(引用終了)

英語の配置では、自分(I)という中心を先に話し、モノや他人という周辺を後に配置する。
デカルトのコギト「我思う、故に我有り」と同じ。
フッサールの現象学の発想と同じ。
この発想で英語を話す。

【7】英語は相手に強く「期待」(anticipation)を抱かせるように話す

日本語の会話は、相手に「予測させる」。
よって、日本人の会話は相づちが多い。

英語の会話は、相手に「期待させる」。
よって、欧米人の会話は、「重要な話があるんですが~」ともったいぶった話を投げかけてから、聴衆を惹き付ける話しぶりが多い。
欧米人の方が演説が上手い、という理由の一つは、ここにあるのかもしれない。

「期待」(anticipation)の大切さ その3 : TOEIC(R) Test リスニング満点続出の謎を解く! (引用開始)
主語を言ったら必ず述語動詞を出すこと!
もちろん、そうすると述語動詞の性格により、そこでいったんフレーズは
切れてしまいます。
その結果、日本人にはぬぐえない違和感がわき起こってきます。
しかし、その瞬間! …ここで救世主が登場するんです。
S+Vの強固なまとまりを突き破って、文章をスムーズに次のフレーズに
つないでくれる救世主が。
それこそ、今日のメインテーマである「期待」(anticipation)なんです。
例文をご覧ください。
Mr. Myers says …
マイヤーズ氏は述べています、
the state wants to push forward …
 国は推進しようといていると
 with the pipeline plan …
このパイプライン計画を
as soon as possible.
 できる限り早期に。
いつものように、期待を( )に入れて読んでみます。
Mr. Myers says …
マイヤーズ氏は述べています、
(どんなことを?)↓
the state wants to push forward …
 国は推進しようといていると
 (何を推進しようとするの?) ↓
with the pipeline plan …
 このパイプライン計画を
 (いつごろ?)↓
 as soon as possible.
 できる限り早期に。
このように、一見フレーズがブツブツと切れたように見える英語も、
「期待」の働きによって途切れずに、見事に次々とつながって行きます。
このことを逆に言うと、相手に強く「期待」をいだかせる話し手こそ、
談話の名手である、ということですね。
折も良く、最近私はこのようなメールを読者の方からいただきました。
「米国で仕事をしている私が特効薬メルマガを選んだ理由は、『期待』
(anticipation)の大切さを経験により実感しているからです。
後に続く「期待」がイメージできない話は、きちんと最後まで聞い
てもらえず、こちらの意図も正しく伝わりません。」
(O.H.さん コロラド州在住)
私はこれを読んで、「まさしく、その通り!」とひざを打ちました。
(引用終了)

「期待」(anticipation)の大切さ 最終回 : TOEIC(R) Test リスニング満点続出の謎を解く!

(引用開始)
「期待ということで説明しておられますが、日本語の場合も先を予測しながら聞いているという点では同じではないでしょうか?」 
はい…これはなかなか良い質問ですね。
私の考えでは、英語と日本語とでは、ちょっと違うと思います。
日本語の場合も先を「期待」しながら読んだり聞いたりしているように見えますが、英語の場合とは「本質的に違う」んです。
日本語の場合は「期待」ではなく、あえていうなら「予想」(prediction)と呼ぶ方が良いと思います。
(引用終了)

(引用開始)
英語も日本語も「先を予測しながら聞いている」ように見えます。
しかし、厳密に言うと、英語の場合のそれは「期待」(anticipation)であり、
日本語の場合は単なる「予想」(prediction)だ、ということなんです。
 英語の場合の予測  ⇒ 「期待」(anticipation)
 日本語の場合の予測 ⇒ 「予想」(prediction)
ここで質問です。両者の決定的な違いは何でしょうか?
はい、答えは…「期待」には緊張感が伴い、「予想」には緊張感が伴わない、
ということなんです。
英語の場合は、先が簡単に予想できないので、「この先どうなるのかなー」
と、ワクワクしながら待つことになります。
…ここには「緊張感」があります。
先行きに対する「積極的な姿勢」と言いますか、食らいついていく姿勢が
要求されます。
しかし日本語の場合、先が何となく予想できるので「積極的な姿勢」は
いらないんです。緊張感なく、のんびりとフレーズを追っていれば良い。
ここで、問題です。 …緊張感を持って先を「期待」することを訓練して
いない日本人が、英語を聞いたらどうなるでしょうか?
「英語って先が読めない」「頭が混乱する」「難しい」ということになる
んです。これが、日本人にとっての英語の難しさの理由なんですね。
ですから今日の結論も、解決のカギを握るのは「期待」(anticipation)だ
ということなんですね。 (^_^;)
(引用終了)

【8】パラグラフ・リーディング(ライティング)の技術は使える

英文を読む時、パラグラフリーディングの技術は使える。
たとえば、短時間で、英語の報告書や論文を読む必要がある時、各パラグラフの最初の英文と最後の英文だけ読めば、あらすじはつかめる。

英語文のかなめ「パラグラフ」は、論理的な文章に不可欠だった! パラグラフ・ライティングとは

(引用開始)
パラグラフの構成は、次の3つにわかれています。
1.トピック・センテンス(序論):書き手の主張
2.サポーティング・センテンス(本論):主張の根拠や事例、説明
3.コンクルーディング・センテンス(結論):まとめ
例)我々は傘を買ったほうが良さそうだ。(トピック・センテンス)
空はくもっている。空気は湿っている。予報も午後は雨だ。(サポーティング・センテンス)
濡れないために、傘を買っておこう。(コンクルーディング・センテンス)
(引用終了)

パラグラフは、topic sentence+suporting sentence+concluding sentenceの3つから成り立つので、英文を書く時も、その特徴を活かすように書けばいい。

(引用開始)
パラグラフ・リーディング | 弁理士Hの気まぐれメモ

以前外資系企業で働いているときにネイティブ上司(米国人)に言われたのは、
「一つの段落には、1.リードセンテンス、2.具体的な説明、3.結語の3つのブロックの組み合わせ、という構成を徹底しろ」
ということです。これがいわゆるパラグラフ・ライティングに相当するのではないかと思います。
この規則に沿って書かれているのであればですが、これがどういうことに役立つのかというと、例えば、明細書を読むときに、まず第一文だけを意図的に拾って読み、該当する箇所を速く見つけるということができます。これは、リードセンテンスに、「この段落ではこのことについてお話ししますよ~」というフラグを立てているからなのです。
(引用終了)

パラグラフ・ライティングの構造は、逆三角形になる。
三森さんの「言語技術」の本でも、同じ図が紹介されている。

元新聞記者が実感した、紙とウェブのライティングの違い | コンテンツ作成 | コンテンツマーケティング研究所 by バリュードライブ

(引用開始)
「逆三角形」のルールは同じ?
私が新聞記事の書き方として最初に習ったのが、「『逆三角形』の構成で書きなさい」ということでした。
共同通信社の「記者ハンドブック」にも、
一般の文章では結論を最後に書くが、ニュース記事はいきなり結論を先に出し、次に経過的に重要なこと、説明的なことを順次書く。この文体を「逆三角形」という。これは読者にまずニュースのポイントを伝えることになるし、文章を簡潔にすることにも役立つ。
と初めの頁に記されるほど、「逆三角形」は大原則です。
(引用終了)




| | コメント (0)

2019/06/16

業務系エンジニアが生き抜くのは難しい時代になった

業務系エンジニアが生き抜くのは難しい時代になったという記事をリンク。
以下、脈絡のないポエム。

【参考】
業務系エンジニアはどうしていくべきか? - 急がば回れ、選ぶなら近道

【1】日本のSIなら、プログラマからマネージャになるにつれて、実装技術から離れてしまい、どんどん技術から離れていく。
すると、一番怖いのは、技術の目利きが落ちることだと思う。
最新技術のメリット、デメリットをいち早く見抜き、どの場面で適用すると上手くいくのか、逆に失敗するのか、という目利きができなくなると、正直怖くなる。

結局、技術の全部を抑えておかないと難しい。

【2】「最終的にはシステムはIOに行き着く」という指摘は秀逸。
アプリ、ミドルウェア、インフラなどの層別アーキテクチャ(N-Tier)はいつの時代も基本。
最近は、インフラが熱い。
インフラを押さえれば、最近の技術の動向はいち早く把握できる。

【3】イノベーションを常に強いられる業界は、そこで働く人にとっては苦痛に思える人も多いだろう、と思ったりもする。

実際、若かった人も年を取ればどうしても、過去の経験値に縛られたり、集中力や瞬発力が落ちるので、新しい文化を取り入れるのが難しくなる。
広岡達朗の著書の中で「人間は常に保守的な存在だ」という文言を以前読んだことがあったが、たぶんその言葉は真実なのだろう。
人間は、従来成功したやり方を明日からいきなり変える、ということに抵抗感があるのだろう。

経験値がゼロで、獲得した資産や家族がなければ何も怖くはない。
しかし、長年蓄積してきた資産、経験、家族が増えてくれば、それを全て捨て去り、一から作り出すのは心理的に難しくなる。
一方、イノベーションのジレンマでは、過去の資産を活用できるプロセス・イノベーションを前提にしていない。
むしろ、イノベーションを阻害するような過去の経験は無い方が、イノベーションを生み出しやすい。

イノベーションを常に強いられるIT業界は、脱落するエンジニアが多く、経験豊富な人よりも若者の方が有利、という特徴が出てくるのだろう、と思う。
そして、「IT業界はイノベーションが激しい」ということと「IT技術は後方優位性が強い」ということは同じ意味なのだろうと思う。


| | コメント (0)

量子アニーリングの記事のリンク

量子アニーリングの記事をリンク。
あとで自分が読むためのリンク置き場。

これから量子アニーリングを学ぶためのスキル - Qiita

EMANの物理学・量子力学・ゲート式量子コンピュータの基本知識

| | コメント (0)

マイクロサービスにおける決済トランザクション管理のリンク

マイクロサービスにおける決済トランザクション管理の記事をリンクしておく。
まだ完全に理解できてないので、じっくり考える。

【参考】
マイクロサービスにおける決済トランザクション管理 - Mercari Engineering Blog

BASE: An Acid Alternative

以前、カード会社のトランザクション処理で、Recovery commitなる共通関数を作った経験があった。
それは、トランザクションが途中で失敗した時、失敗した時点までは確実にコミットするが、その時点以降はロールバックする仕組みだった。

上記の記事を読みながら、補償トランザクションの考えに似ているな、と感じた。
ただし、メルカリのCtoCの膨大なトランザクション処理を支える基盤だけあって、冪等性やBASE特性などよく考えられている。

現在のプラットフォームビジネスでは、こういうトランザクション基盤が必須ということがよく分かる。

| | コメント (0)

2019/06/15

「アジャイル時代の開発」スライド資料のリンク

「アジャイル時代の開発」スライド資料が素晴らしいのでメモ。
以下は感想を交えたポエム。

【参考】




下記の文言が心に響いた。

(引用開始・一部修正)
プログラミングはエラーとの戦い。
巨人の肩に乗るために巨人を探す作業。
リアルを知らない人は嘘(の数字)を欲しがる。
(引用終了)

自分の興味の赴くままにソフトウェア開発をするのは楽しい。
でも、請負契約やビジネス上のプレッシャーを強いられるソフトウェア開発では、もっとシビアな環境でプログラミング作業を強いられる。
たった一つのバグが、プロジェクトの評価を左右したり、最終的に会社の株価を下げる要因にもなりうる。

だから、ソフトウェア開発のベストなプロセス、プラクティスを探す作業がずっと行われてきたと思う。
その一つの解がアジャイル開発、と思う。
ソフトウェア開発の特徴を最も活かしたプロセス、それがアジャイル開発ではないか。

そういえば、下記の記事も印象に残った。

本田圭佑が開発者に熱く語った50分「僕がエンジェル投資家をする理由」【de:code2019】 | BUSINESS INSIDER JAPAN

(引用開始)
「プログラミングを学んで、率直に教えてください。面白かったですか?」

西脇が投げかけると、思わず本田は無言になった。

「あれ……これ流れ的には……」と西脇が苦笑に包まれた観客に続けると、本田は少し黙ったあと、こう続けた。

「大変だな、と思いました。……僕はうそをつくのがあまり好きではないので……。面白いか面白くないかというのは、なかなか分かっていない段階なので、そのレベルまでまだ行っていない」(本田)
(引用終了)

このインタビューを読んで、本田さんは非常に正直な人なのだ、と思った。
自分が実現したいモノがあったとしても、それをプログラムで表現するにはそれなりのコード量、テクニックを必要とする。
特に、システムはその整合性を取るのが難しい。
だから、アジャイル開発などのプロセス面、自動テストや仮想環境などの開発環境面のスキルも必要になってくる。
もっともっと色々必要になってくる。

| | コメント (0)

デジタルトランスフォメーションとはソフトウェア企業になることを意味する

デジタルトランスフォメーションとはソフトウェア企業になることを意味する記事が秀逸なのでメモ。
主張のないラフなメモ書き。

【参考】
米国企業のデジタルトランスフォメーションとはソフトウェア企業になること ? On Off and Beyond

「ソフトウェアが世界を飲み込む理由」「ソフトウエア、それが問題だ」の記事のメモ: プログラマの思索

最近やたらDXなるバズワードを聞く。
その言葉の背景には、既存企業はすべてソフトウェア企業として生まれ変わるべきだ、というメッセージが込められているのだろう、と思った。

上記の記事では、米国では、小売、新聞、音楽、DVDレンタル、書籍などの業界がAmazonの進出で、既存企業の売上が急激に落ちた事実を示している。
メーカー、医療、教育などの業界でも、その地震、余震は続いている。

日本では、DX推進により、既存企業がソフトウェア企業に変身する劇的な変化はまだ見られないように思えるが、時代の流れには逆らえないだろう。
日本の小学生もプログラミング教育が必須化される時代の中で、プログラミングやソフトウェアに慣れていない成年・中年・高齢者はどうやって生き抜くべきなのか?

DXとは、ソフトウェア革命の別名なのだろう。
現在進行中のソフトウェア革命の本質は、結局何だろうか?

| | コメント (0)

2019/06/14

キャズムの感想~イノベータ理論とホールプロダクト理論

キャズムの本がとても面白かったのでメモ。
キャズム理論は、イノベータ理論とホールプロダクト理論から成り立つことがようやく分かった。
以下、自分のためのメモ。

【参考】
ジェフリー・ムーアとマーケティングバイブル | ノヤン先生のマーケティング講座 | 講座 | マーケティングキャンパス

キャズム(きゃずむ) - ITmedia エンタープライズ

キャズム理論とは-ハイテクマーケティングの定番 | カ行 | マーケティング用語集 | 株式会社シナプス

イノベーター理論 | ア行 | マーケティング用語集 | 株式会社シナプス

製品戦略(プロダクト戦略) | サ行 | マーケティング用語集 | 株式会社シナプス

プロダクト3層モデル(製品戦略分析) | ハ行 | マーケティング用語集 | 株式会社シナプス

「キャズム」とは。イノベーションを起こすプロダクトが必ず通る道 - 論理と情緒と情熱と。

『キャズム』にみるプロセス改善の普及策 - Qiita

【0】キャズム理論は、主に製品の技術進化の激しい「ハイテクマーケティング」で適用できる理論

キャズム理論のアイデアは、イノベータ理論のベルカーブ、ホールプロダクト戦略などの過去の理論をIT製品マーケティングに適用しただけ、とみなすならば、おそらくそれほどの新規性はない、と理解できる。
一方、そういう既知の理論をIT製品マーケティングに適用することで、IT業界特有の要素、つまり、技術変化が激しく常にイノベーションを強いられる特徴を持つ場合、キャズム理論のマーケティングは非常に有効だ、と理解できた。

実際、僕が経験するIT業界では、メインフレーム→クラサバ2層方式→Webシステム→スマホ・クラウド→AI・機械学習のようにどんどん最先端の技術が進化している。
その技術進化によって、過去にヒットした技術はコモディティ化を強いられ、主流の製品から崩れ落ち、イノベーションのジレンマに陥る。
典型定期な例は、IBMのように思える。
たとえば、2000年初頭の頃は、LinuxやJavaで輝かしく見えたIBMも、今はGAFAの後方位置に強いられている。

よって、そういうIT業界では、キャズム理論を使って、新製品をいち早く市場に浸透・普及させて、ベネフィット(利益)をいち早く獲得すること、そして、そのベネフィットを得ている間に、次の時代の新製品開発を準備して新たな市場浸透戦略を打ち立てることが重要になる。

つまり、IT業界にいる企業の事業は、おそらく10年くらいしか寿命がないので、その間にキャズム理論を使って既存顧客から十分なベネフィットを得ること、そしてそのベネフィットを元に次世代の新事業を探し出し、キャズム理論を適用して市場浸透して、新たな顧客を増やして市場を拡大していくことが重要なわけだ。

【1】キャズム理論が流用する理論~イノベータ理論のベルカーブ

イノベータ理論のベルカーブは元々、「農村で農業に関する新しいイノベーション、つまり新しい農法や農機具、改良された品種などが入ってきて、それが地域に普及していく過程」から生まれた経験則。
つまり、イノベータ理論は農業の新技術がどのように普及していくか、という理論だった、という点が面白い。

(引用開始)
イノベーター理論の面白いところ、実務に使いやすいところは、「イノベーター:2.5%」「アーリーアダプター:13.5%」「アーリーマジョリティ:34%」「レイトマジョリティ:34%」「ラガード:16%」というように、各分類の割合が決まっていることです。
もちろん製品によって多少の前後はありますが、「どんな新商品の普及でも同じ割合と考えてよい」というのは重要な点です。
つまり、仮に市場全体のパイ=100%が計算できれば、現在の市場がどの段階にあるのか予想がつきます(15%ぐらい普及しているから、そろそろアーリーマジョリティに広がってきているころだ)。
つまり、これにより普及率を予測し、今どの分類の顧客がメインか、その顧客に対する最適なプロモーションミックスは何か?とマーケティング施策を考えることができます。
(引用終了)

つまり、自社の製品を販売しようとする時、製品を受け入れてくれる顧客・市場はどんな状況なのか、をイノベータ理論は教えてくれる。
もし、自社製品の市場シェアがアーリー・アダプター段階ならば、キャズムという壁にぶち当たるだろう。
一方、アーリーマジョリティー段階ならば、キャズムを既に超えているので、今後は積極的なマーケティングによって、どんどんベネフィットを獲得できる嬉しいタイミングになるわけだ。

【2】キャズム理論は、イノベーション普及のボトルネックを指摘した

「マーケティングの世界では長い間、このベルカーブの最初のイノベータとアーリー・アドプターを足した全体の16%のポイントを「クリティカルマス」と呼び、ここまで普及させることが出来れば後は一気にマスマーケットに普及すると言われてきた」。
よって、新製品を新市場にいち早く販売する時、いかに早くクリティカルマスに到達すべきか、を考えてきた。
この考え方は、たぶん、普通の人たちでも知っている常識かもしれない。

しかし、キャズム理論では、この経験則をハイテクマーケティングに取り入れた場合、「BtoB、特にハイテク市場においてはこのクリティカルマスは必ずしも存在せず、逆にこの16%のところに大きな亀裂(キャズム)が存在し、多くの製品・技術・企業がそこに落ちて這い上がれずに消えて行っている」ことを指摘した。

つまり、提唱者のムーアはシリコンバレーのハイテク企業でのキャリアの中でこれを発見したので、経験則なわけだ。

【2-1】では、なぜ、ハイテク市場では、アーリー・アダプターとアーリーマジョリティーの間にキャズムが発生するのか?

理由は、アーリー・アダプターとアーリーマジョリティーという顧客層は、心理変数が大きく異なるだけでなく、アーリー・アダプターのマーケティング戦略がアーリーマジョリティーのそれに適用できない弱点があるからだ。

【2-2】まず、ベル・カーブのイノベータ、別名「テクノロジーマニア」は新技術の造詣が深い心理変数を持つ顧客層。
ここから新製品を販売する。

次に、アーリーアダプター、別名「ビジョナリー」は、先進的でイノベーションのリスクを取ることができ、単なる改善ではなく、事業のブレークスルーを求める顧客層。
アーリー・アダプターは、新しいテクノロジーが自社の企業戦略に合っているかどうかを洞察し、このイノベーションの導入によりどんな夢が実現できるかを深く考える心理変数を持つ。
よって、アーリー・アダプターの顧客は技術に詳しくなるし、サービス提供者に自社の企業戦略に沿った機能を入れるように要求してくる時も多い。
「ビジョナリーの特徴として、「先進事例として紹介されることを好むこと」「価格に対して他の顧客グループに対して寛容であること」があげられます。」
まさに、アーリー・アダプターは「革新者」にふさわしい。
たぶん、アジャイル開発は、こういう顧客が一番向いているのではないだろうか。

一方、アーリーマジョリティー、別名「実利主義者」は、新しいテクノロジーを使ったリスク取得は好まず、成果が得られる実利を求める心理変数を持つ。
よって、アーリーマジョリティーは、他のユーザ企業がどのように新しいテクノロジーを使用しているのかを知りたがり、マーケットリーダーの製品・サービスを購入したがる。
また、サービス提供者同士を競争させたがる傾向がある。
つまり、実利主義社の特徴として、「他社の成功事例が紹介されることを好むこと」「価格に対して非常に敏感であること」があげられるだろう。

日本なら、大企業や官公庁のように、前例がなければ新技術は導入できない、という事象に似ている。
また、発注や入札のように、必ず複数のベンダーに相見積もりさせようとする事象に似ている。
たぶん、アーリー・アダプターは「発注者」にふさわしい。

【2-3】したがって、革新者であるアーリーアダプターと、発注者であるアーリー・アダプターは、心理変数が非常に大きく異なるので、アーリー・アダプターに通用した技術やサービスは、そのままの状態ではアーリーマジョリティーに適用できないことになる。

キャズム理論では、ベル・カーブに対応する各顧客層の心理変数を、ハイテク製品・サービス向けに具体化したこと、ビジョナリー(アーリーアダプター)と実利主義者(アーリー・マジョリティー)の心理変数に大きな差異があるのでそのままマーケティング戦略を適用拡大できない点、が独創的で面白い。

【3】キャズムを超える製品戦略~ホールプロダクト理論

キャズム理論の功績は2つある。
一つは、「イノベータ理論を適用してハイテク市場にキャズムがあることを発見し実証したこと」。
もう一つは、「キャズムからの脱出方法をイノベータ理論の各顧客層ごとに、ホールプロダクト理論を組合せて考案したこと」。

イノベータ理論の各顧客層の心理変数が異なる特徴に対し、それぞれの顧客層に合ったマーケティング戦略を行う必要がある。
では、どんなマーケティング戦略が必要なのか?

キャズム理論では、各顧客層の製品戦略にホールプロダクト理論を適用して、製品の特性と顧客の心理変数の組合せに着目させる。
ホールプロダクトの機能充実度では、コアプロダクト < 期待プロダクト < 拡張プロダクト < 理想プロダクト になる。

イノベータ、アーリー・アダプターは、技術優位性を持つコアプロダクトさえアピールすれば、期待プロダクト、拡張プロダクトの要件は、顧客が自ら申し出してくれる。
「イノベーター・アーリーアダプターに対しては多少使い勝手が悪くても、斬新で未来を変革するパワーを秘めているならば、不便な点は創意工夫して利用」してくれる。
製品ベンダーは、製品開発に専念しやすい。
アーリー・アダプターはプロダクトオーナーの役割を自ら背負ってくれるので、製品ベンダーと一体化したチームを作りやすい。

一方、アーリーマジョリティーは、「①具体的かつ実利的な目に見える成果②工夫なしに簡単に使えるユーザー・インターフェイス③過去の実績(信頼できるかという尺度)」をベンダーに要求してくる。
つまり、「アーリーマジョリティの層が製品の完全パッケージを要求していることにほかならない」。
彼らは、昨日の成果が直接分かる期待プロダクトはもちろん、予備知識無しで簡単に操作できる拡張プロダクトまで要求してくる。
さらには、iPhoneエコシステムのAppStoreのように、ユーザのカスタマイズ要望を自由に実現できる仕組みまで要求してくるかもしれない。
それは、理想プロダクトに相当する。

よって、アーリーマジョリティーの要求に対応するには、彼らの要望を引き出し、製品に機能を漸進的に反映していく開発スタイルが求められる。
また、彼らは成功事例に弱いので、数多くの利用事例を提供して実績を作る販売マーケティングも求められる。

【4】アーリーマジョリティーを攻略するマーケティング戦略~ボーリングレーン

イノベータ、アーリー・アダプターは市場の16%に対し、アーリーマジョリティーは34%も占める大きな市場。
アーリーマジョリティーの顧客層は多種多様なので一筋縄ではいかない。

そこで、キャズムでは、アーリーマジョリティーを攻略するマーケティング戦略として、ボーリングレーンに例えている。
「市場を細分化して、まず1番ピンに相当する市場を攻略し圧倒的シェアを獲得する。その後、隣のセグメントに波及していくという戦略」だ。
つまり、アーリーマジョリティーのうち、ニッチな市場を定めて「小さな池で大きな鯨になる」戦略を採用し、その後、ニッチ市場の成功事例を隣のセグメントへ展開して、浸透させていく。

| | コメント (0)

2019/06/13

Redmineのガントチャート改善パッチに注目しているpart2


「ファーエンドテクノロジーによるRedmine開発状況(2019年1~4月)」の記事が公開されていたのでメモ。

【参考】
ファーエンドテクノロジーによるRedmine開発状況(2019年1~4月) - ファーエンドテクノロジー株式会社

Redmineのガントチャート改善パッチに注目している: プログラマの思索

【0】2019年5月現在、@g_maedaさんの積極的なコミットのおかげで、ほぼ毎日trunkが更新されている。
内容は特に、画面UIの細かな機能改善が多い。

redmine trunk changesも合わせて読むと、コミット内容の理解も捗る。

【1】個人的に興味がある機能改善は、ガントチャート機能の改善だ。

Redmineのガントチャート改善パッチに注目している: プログラマの思索に書いたけれど、日本人のユーザの心を惹き付けるには、ガントチャート機能の改善が重要と考える。
なぜなら、日本企業はどうしてもメーカーの発想に近いWF型開発を基本に考えているので、PJ管理ツールにガントチャートは必須の機能だからだ。

おそらく、日本のRedmineユーザは、Redmine本体のガントチャート画面に独自パッチを当てている利用シーンは多いのではないだろうか?
なぜなら、Redmineのガントチャート機能は、その潜在能力が高いにも関わらず、UIも機能もまだまだ改善の余地がたくさんあるからだ。

【2】ガントチャート画面の下位WBSを折りたたむ機能が追加された。

Feature #6417: Allow collapse/expand in gantt chart - Redmine

WBSの階層と管理する職層はほぼ1対1に対応するので、この機能を使えば、たとえば、第1~3階層は経営層向け、第4層以下はチーム向けでガントチャートのビューを使い分けられる。

※画像は、Redmine本家のチケットからリンク。

【3】選択した項目をガントチャートに列として追加される。

Feature #27672: Show selected columns in gantt chart - Redmine

ガントチャート画面に担当者を表示したい要望は元々多かった。
さらに、予定・実績の開始・終了日、予定工数などもガントチャート画面で表示できれば、プロジェクトリーダーは使いやすくなる。

※画像は、Redmine本家のチケットからリンク。

【4】個人的に最も注目する機能改善は「プロジェクト一覧にフィルタ・オプション機能追加」だ。

Patch #29482: Query system for Projects page - Redmine

※画像は、Redmine本家のチケットからリンク。

SIやメーカーの大企業ならば、社内に数百以上のシステムを持っている場合が多いだろう。
彼らは、汎用機の頃から、長年数多くの社内システムを開発してきた。
すると、Redmineでシステム開発・運用保守を管理したい場合、Redmineプロジェクトに社内システムを単純に1対1に対応づけるだけでも、プロジェクト数は数百に増えてくる。
しかも、社内の申請承認ワークフロー、庶務業務、チーム単位の子プロジェクトなどを作れば、あっという間にRedmineプロジェクト数は膨大に増えてしまう。

しかし、現状のRedmineでは、全PJを一覧として見る画面の機能が弱いので、横串でPJそのものの状況を把握するのが難しい。
開発チームだけのPJ管理ならば現状のRedmineでも問題ないが、部長や役員などの経営層もRedmineを見たい場合、彼らが見たがるビューは違うからだ。
PMOや部長は、重点PJの集まり、事業部単位で複数PJを横串で状況を比較・把握したいのだ。
つまり、Redmineのユーザ層が現場のプログラマ、現場リーダーだけでなく、経営層まで拡大したことにより、PJ一覧画面を改善する動機が生まれたわけだ。

上記のパッチを見る限り、チケット一覧画面のようにプロジェクト一覧を検索できるようになる。
この機能だけでも十分ニーズに応えられるだろう。

そして、Redmineを長年運用している現場では、数百のプロジェクトを横串で参照する機能が追加されることで、いろんな使い方が提案されてくるだろう。
たとえば、PJ一覧画面で、PJの進捗率を表示したい、とか、PJメンバー人数を表示したい、とか、色々出てくるのではないか。
つまり、ほんの少しの機能改善が、ユーザの潜在ニーズを刺激し、新たな利用シーンに沿った機能改善が生まれてくるだろう。

今後もRedmineの機能改善に着目していく。

| | コメント (0)

« 2019年5月 | トップページ | 2019年7月 »