« 2017年10月 | トップページ

2017年11月

2017/11/22

Redmineのもう一つのEVMプラグインEVM Calculation Plugin

先日の東京Redmine勉強会で、アンケート資料にあるプラグインを見ていたら、EVMプラグインがあったのでメモ。

【参考】
Redmine.tokyo 13回 参加者アンケート結果

EVM Calculation Plugin - Plugins - Redmine

redmine_issue_evm/README_ja.md at master ・ momibun926/redmine_issue_evm

チケット駆動開発にEVMの概念を導入してみる: プログラマの思索

RedmineにおけるEVMの考え方: プログラマの思索

RedmineプラグインRodmapsにEVMの機能を追加する: プログラマの思索

RedmineからPMBOKのEVMを計測する方法: プログラマの思索

【公開】未発表資料「チケット駆動開発におけるEVMの考え方」 #RxtStudy: プログラマの思索

RedmineにおけるEVMの実装方法は、過去にたくさん書いてきた。
また「チケット駆動開発」「Redmineによるタスクマネジメント実践技法」にもアイデアは書いた。

上記のEVMプラグインは、OSSなのにほぼ実用的に使える機能が整っている。
Redmineに予定工数、実績工数が入力される運用があるなら、EVMを使いたくなってくるだろう。

従来はExcelでEVMを管理するしか方法がなかったので、きちんとプロジェクト管理を徹底しているリーダーは、自分でExcelマクロで実装している人が多い。
EVMをきちんと運用できれば、プロジェクトの状況を正確に把握しやすくなる。
特に、製造業の製品開発のように、リードタイムがソフトウェア開発よりも多少長い場合は有効だろう、と思う。

しかし、EVMは運用が難しい。
理由は、いくつかある。
一つは、予定工数と実績工数を入力させる運用は手間がかかること。
しかも、仕様変更や進捗遅れでリスケするたびに、ガントチャートの保守が面倒になる。
そういう場面のために、仕様変更やリスケのタイミングでベースラインを設定して、進捗やコストを比較したいわけだが、その運用も結構面倒。

もう一つは、EVを計算しても、リーダーの感覚ではシステム上計算されたEVとプロジェクトの現状が合致していない場合が多いこと。
普通のEVMでは、WBSの進捗率を元にEVを計算するわけだが、進捗率が50%や90%で停滞したまま放置されてくると、プロジェクトの現状と合わなくなるのは当然。
たぶん、進捗率ベースのEVMの運用は悪手だと思う。
完了チケットでEVを計測する方がいいと思う。

なお、プラグイン上の注意点は、
・EVは進捗率を使わずに完了チケットで計算していること
・バージョンとは別にベースラインを設定してEVMを比較できること、
・チャートの表示にはHigthChartを使っていて商用目的では利用のできないライセンスであること
だろう。

つまり、EVはプロジェクトの現状よりも低めに計算されやすいので、こまめにチケットを分割したり棚卸ししたりすることが必要だろう。
また、ベースライン機能があるので、プロジェクトのスコープが変化した時にEVMの履歴が残せるのは便利。
但し、チャート表示のライブラリのライセンスには注意。

| | コメント (0)

2017/11/19

第13回東京Redmine勉強会の感想~『Redmineの今と未来』 #redmineT

昨日の勉強会は参加者、スタッフの皆さん、お疲れ様でした。
あいにくの雨にもかかわらず、参加率が約90%で大変盛り上がりました。
楽しかった余韻が冷めないうちに、感想をラフなメモ書き。

【参考】
第13回勉強会 - redmine.tokyo

第13回勉強会 - redmine.tokyo ~『Redmineの今と未来』(2017/11/18) #redmineT - Togetterまとめ

redmine.tokyo 第13回勉強会 - connpass

“CODA” チケット管理システム | JSS2@JAXA

【1】数多くの参加者に感想を聞いた所、JAXA様の講演が聞きたかった、という話もあったが、LTも含めて運用事例からプラグイン開発などの技術、最新バージョンの紹介、ちょっとしたプラグインの利用事例、家庭内のRedmine利用事例など、幅広いテーマで面白かった、という話があった。
また、参加者層も初心者から10年近い利用者まで、年代層も20歳から40代まで幅広かった。

akipiiさんのツイート: "#redminet 今日も参加率90%で驚異的でした。利用事例から技術まで幅広いテーマで面白かったと言う声をたくさん聞けてスタッフ一同嬉しいです。参加者層も初心者より数年経験者の人が半数以上いた。Redmineコミュニティが今後も長続きできるといいなと思う。"

さらに、女子の参加が10名を超えたのも初めてではないかと思う。(正確に数えてない)

akipiiさんのツイート: "#redminet 今日の東京Redmine 勉強会は過去最高で女子率が高くて華やかだったと思う。以前、@agilekawabata さんが、Redmine はおっさんのツールだから若い人や女子は少ないんですよ、と言ってたが、時代が変わった?"

第7回Redmine.tokyoの感想 #redmineT: プログラマの思索

そんなことを振り返ると、多種多様な年齢層や女性という人口的変数、プロジェクトリーダーだけでなくSEPG等の品質保証部の人からプラグイン開発者までの心理的変数というセグメントが幅広くて、たくさんの化学反応があって面白かったと思う。
幅広い利用者が集まるコミュニティになれば、ある人はRedmineを使っているなら常識と思っていても、他の人にとっては新鮮な内容であることも多いだろうから、そういう数多くの議論が発生して、さらに理解が深まるだろうと思う。

たとえば、Redmineのそんな所でつまずくのか、という質問が、実はRedmineというツールではなく、プロセス保証やプロジェクトマネジメントの根本的な問題に触れていたり、とか。
僕も色々気づきがあった。

【2】JAXA様の利用事例で、興味深い点は二つある。

“CODA” チケット管理システム | JSS2@JAXA

【2-1】一つは、フローの管理とストックの管理を明確に別々に分けていること。

akipiiさんのツイート: "#redmineT JAXAでは、議事録はチケット、構成管理すべき文書は、文書管理機能、実際はDMSFプラグインで管理を区別してる。フローの管理はチケット管理、ストックの管理は構成管理ツールでなく文書管理プラグインで制御してる。全文検索プラグインで文書も全文検索できると、かなり良… https://t.co/AVf8WAHtsc"

Redmine本来の設計思想では、日々流れるフローのような管理対象はチケットにする。
タスク、かんばん、ISOの変更依頼書のように、作業指示書のようなレベルのものは、ステータス管理の方が重要だ。
つまり、日々のフローで管理する時、担当者とステータスに着目する。

一方、ストックのような管理対象は基本は、GitやSubversionのような構成管理ツール、あるいはWikiに蓄積する。
たとえば、ソースコードやExcel設計書は構成管理ツールの配下で履歴管理したり、技術や共有情報などのナレッジはWikiに蓄積する。
あるいは、チケットそのものを議事録にしたり、障害管理票のようにチケットに障害の発生原因や修正履歴を追記して、チケットそのものをナレッジにしてもいい。

Redmineのメリットは、フローとストックの管理を一つのツールで一元管理できるので、フローとストックの間で相互リンクを貼ることにより、トレーサビリティを実現できることだ。
よって、成果物から要件の発端まで前方追跡して変更理由を探したり、発端となった要件から成果物まで後方追跡して仕様変更の影響範囲を探る、といった使い方ができる。
この運用ルールが「No Ticket, No Commit」であり、他のプロジェクト管理ツールにないチケット管理ツール特有の最大の特徴でもある。

しかし、JAXA様の運用では、ストックの管理はRedmineの文書管理にDMSFプラグインを入れて活用されている。
この点がRedmine本来の設計思想と大きく異なる。

その理由を推測すると、成果物の対象がExcelであるため、構成管理ツールだけでは文書の変更の権限制御がやりにくい点があるのだろう。
そこで、DMSFプラグインを入れることで、Excel文書の変更履歴を残したり、Excel文書の参照・更新の細かな権限制御を付けることで、より使いやすくしているわけだ。

たとえば、外部委託したベンダーには特定のExcel文書は参照権限はあるが、更新権限は与えない、といった使い方をしたい場面があるのだろう。

【2-2】もう一つは、Redmineではボトムアップで運用ルールを柔軟に変更して、より良くしていく手法がある点。
Redmineは管理画面にあるワークフロー、ロール、トラッカー、カスタムフィールドを細かく制御できるので、運用しながら標準プロセスを固めていくことも可能だし、そういうやり方の方が普通なのではないか。

akipiiさんのツイート: "#redmineT Redmine の良さは、管理機能をフレキシブルに変更できる点。実際の運用は、かなり試行錯誤した、とのこと。プロセス標準化は一夜にしてならず、ですね"

akipiiさんのツイート: "#RedmineT 更新ロールと参照ロールに分ける。基本ワークフローは、全般トラッカーと名付けて、プロジェクトごとでカスタムフィールドを切り替えて利用する。つまり多様なプロジェクトの構造を管理画面の機能で制御するわけだ"

たとえば、Redmineの基本ロールは「PJ管理者」「開発者」「報告者」だけだが、実際に運用してくると、PJ管理者とシステム管理者の間のロールが欲しくなってくる。
その場合、「ロールのORルール」を用いて、「システム管理者でない管理者」のロールを新規作成し、各プロジェクトで各ユーザにそのロールを追加付与すればいい。
すると、既存のロールをいじることなく、既存ロールにパッチを当てる感じで、権限を細かく制御できるようになる。
たとえば、基本ロールと追加ロール、参照ロールと更新ロールのようにロールを細かく作っておけば、ロールのORルールを適用して、数多くのバリエーションで権限制御できるようになる。

すなわち、運用で試行錯誤しながら、ロールやワークフローを再定義したい時に、Redmineではパッチを当てる感じで既存の運用フローを修正していくことが可能なのだ。
こういう運用が可能な理由は、Redmineの管理画面の機能が豊富で柔軟であるからだろう。
換言すれば、Redmineの豊富で柔軟な機能をもっと理解しておけば、最初からトップダウンで完璧な運用を目指すのではなく、運用しながら標準プロセスを固めていく、といった、アジャイル的な発想を取り込めるはずだ。

僕はアジャイル開発が好きなので、ソース修正だけでなくプロセス構築にもアジャイル的なやり方を組み込むことは、実現不可能と思っていないし、むしろ、トップダウンでガチガチに固めてしまってメンバーのやる気を失わせるよりも、メンバーのより良い意見を取り入れながらチーム一丸でRedmineをより良く使いやすくしていくことは可能だと思っている。

【3】前田剛さん、堂端さんからRedmineの次期バージョン4.0に関する講演があり、興味深かった。

Redmineウォッチャーとしては、Railsの最新バージョンに追随する形でRedmineもどんどん最新化して欲しい。
性能面、セキュリティ面、今後の機能追加のしやすさ、を考慮すれば、開発基盤の最新バージョンに追随して欲しいから。
講演によれば、Ver4.0は早めにリリースしたい、とJPLが言っていた、とのこと。

Ver4.0で問題になってくるのは、既存プラグインがそのままでは、ほぼ使えなくなることだろう、とのこと。
Rails5に追随できるようにプラグインの修正が必ず発生する。
過去のRedmneのバージョンアップでも、追随できなかったプラグインは数多くあったので、利用ユーザは注意すべきだろう。

前田剛さんのアドバイスでは、古いRedmineはあらかじめVer3.4へVerUpしておくべきこと。
理由は、Rails5ではRuby2.2.1未満は切り捨てられるので、Ruby2.2.1に対応済みのVer3.4のRedmineで動作できるようにしておくと事前に検証できるから。

【4】他の講演も面白かった。
Redmineの利用が深まる中で、色んな問題意識があげられていて、興味深かった。

RedmineとSlackなどのコミュニケーションツールは、どのように使い分けた方がいいのか?

お子さんの宿題管理にRemdineを適用し、EVMや分析を行ったが結局使いこなせなかった、とのこと。
このLTも、普段のRedmineとは違う観点で面白い、という別の参加者の感想もあった。
個人的には、Redmineが使いこなせなかった理由には、Remdineが見れるPCをお父さん部屋しか置かず、子供の導線上で見える化しなかった点もあるのでは、と思った笑。

akipiiさんのツイート: "お母さんの反省点はRedmineが見れる端末を廊下と子供部屋に置くことかな笑。RT @agilekawabata: お母さんの反省会で導線が大事だったということで、JAXAの事例にもあったように、ホーム画面に担当者が必要となる導線を置くことはとてもいいと思う #redmineT"

【5】Redmineの面白さは、プロジェクトリーダーや品質保証部の観点でプロセスを自分で構築できて運用を試せる一方、プログラマの観点で不足機能をカスタマイズしたりプラグイン開発してより使いやすくできる、という両面があることだろうと思う。

すなわち、前者の観点では、Redmineは標準プロセスの運用基盤またはメトリクス収集・集計のプロセス基盤である一方、後者の観点では、Redmineはプロジェクト管理ツールの汎用的な開発基盤とみなせることだ。
つまり、ソフトウェア工学の観点とRuby開発の観点の両面からRedmineをいじくり倒せる点が、面白い点なのだろうと思う。
そして、その両方に詳しい人はほとんどいないので、Redmineコミュニティで多種多様な人達が集まることで色んなメリットが出てくる。

僕もRubyやRailsをちょっとずつ勉強しなくては、ね。。

他の資料はコチラ。

| | コメント (0)

2017/11/15

データ分析の課題はどこにあるのか

「データ分析の力 因果関係に迫る思考法」を読んで、データ分析の課題はどこにあるのか、理解できたことをメモ。
ロジカルでないラフなメモ書き。
初心者の妄想なので、間違っていたら後で直す。

【参考】
データ分析の面白さはどこにあるのか: プログラマの思索

【1】データ分析の課題はどこにあるのか?

僕の感想では、現時点におけるデータ分析の課題は、次の3つがあると思う。

・データ分析から得られる結論の再現性はあるのか?
・データ分析したい研究者は、自由にデータを収集できる環境にあるか?
・得られた因果関係はマクロレベルだけでなく、個人というミクロレベルでも正しいのか?

【1-1】データ分析から得られる結論の再現性はあるのか?

最近のパワフルな環境で、いくらデータ分析できたとしても、その結果に再現性がなければ無意味。
間違った前提条件でデータをこねくり回しても、その検定処理が有意であるか、とはすぐには言えない。

「データ分析の力 因果関係に迫る思考法」を読むと、データ分析の結果の再現性を保証するために、数多くの理論が提唱されている。
また、そういう理論の前提条件を満たしているか、というデータの事前準備の方にかなり神経を使っているのがよく分かる。

【1-1-1】「データ分析の力 因果関係に迫る思考法」では、データ分析の再現性を保証するための手法として、いくつか紹介されている。
まず、「ランダム化比較試験」が最も推奨される方法。
次に、「自然実験」と呼ばれる手法があり、「回帰不連続設計法」「集計分析」「パネル・データ分析」があげられている。
(個人的には、「疑似実験」と呼ぶ方がしっくりくると感じる。
あたかも、反実仮想の条件が揃った、という意味を連想させるから)

確かに、フィッシャーの3原則「局所管理(小分け)の原則」「繰り返し(反復)の原則」「無作為化(ランダム化)の原則」を思い出せば、サンプルをランダムに抽出するようにデータを作ればいい。
その理論は、既に数十年以上前から知られている。
よって、ランダム化比較試験では、データ分析よりも、実験しやすいようにランダムとなるデータを事前準備することに注力する、という点で最も納得できる。

すると、ABテストのように、Webシステムやセンサー機器の方が、ランダム化比較試験を実施しやすいだろう。
広範囲なデータ収集のコストが低いので、システム側でコントロールしやすいだろうから。
換言すれば、ビッグデータとかIOTのようなバズワードが流行するのは、ランダム化比較試験の環境を構築しやすい点にあるからだろう。

そのデータ分析手法が、最先端のIT会社で使われて新たなビジネスモデルを生み出し、さらに政府の政策効果の評価手法にまで影響を及ぼしているわけだ。
昨今のアジャイル開発、リーンスタートアップという手法も、ランダム化比較試験を用いたデータ分析による高速なPDCAサイクルと見なせば、より理解しやすくなるのではないか。

【1-1-2】一方、既に得られたデータや公開されている各種統計データから、データ分析する手法「自然実験」もいくつかある。

たとえば、「回帰不連続設計法」は、非連続となる境界値に着目して、因果関係を見出す手法。
「集計分析」は、境界値が階段状となる制約条件に着して、因果関係を見出す手法。
「パネル・データ分析」は、時系列の統計データで、自然に介入群と対照群が分かれているデータに着目して、因果関係を見出す手法。

たとえば、「回帰不連続設計法」の例では、70歳の分岐点で日本人の医療費が極端に上昇する点に着目して、70歳に医療費負担が3割から1割に減る政策によって、逆に医療費が増えている、という因果関係を示している。
「集計分析」の例では、自動車の燃費規制の政策が、車の重量が増えることで燃費の制約が下がる負のインセンティブを発生させて、車体を重くすることで燃費の悪さを助長し、交通事故の損害を増やしている、という因果関係を示している。
「パネル・データ分析」の例では、デンマークで所得税率を下げることで、優秀な移民が増えている効果がある、という因果関係を示している。

そういう事例と実験手法を読むと、得られた因果関係の結論が面白い一方、その結論の再現性や正しさを保証するのに相当苦労している、と感じる。

【1-1-3】他にも思いつく課題をいくつか、適当に書いておく。

データ分析で得られた因果関係は、実験対象の集団や個人の範囲を超えて、他の集団にも適用できるのか?
データ分析の再現性は、どこまで言えるのか?
外的妥当性と内的妥当性の問題。

「実際には起こらなかった潜在的な効果を測定できない」という「因果的推論の根本問題」はどこまで解決できるか?

因果関係が出た事象に対し、「そうではなかった場合」=反実仮想をどうやって作り出し、データ分析する実験をどうやって準備すべきか?

実験をやることによって、実験対象の集団に副次効果が発生して、実験当初の前提条件を崩してしまう場合がある。
その話は、「風が吹けば桶屋が儲かる」「バタフライ効果」を思い出させる。
ほんの少しの発端から始まった因果関係が、大きな影響を与えているのではないか、という考え。

そんな課題を洗い出してみると、社会科学の実験は、自然科学の実験手法を流用しながらも、いかに結果を再現させるか、という課題を解決するために、ものすごく労力を費やしているように思える。
逆に言えば、再現性に関する面倒な議論は、そういう発端があるのだ、と考えればいいかもしれない。

ABテストのような実験環境を、Webだけでなく人間の集団にも適用して、因果関係の発掘をどんどん推し進めたいわけだ。

【1-2】データ分析したい研究者は、自由にデータを収集できる環境にあるか?

【1-2-1】ランダム化比較試験をやるには、いくらWebシステムなどで自動収集できるといっても、システムを構築するコストが発生する。
ゆえに、研究者個人が手っ取り早く、データを集めて研究したい時、既存の統計データを流用して、自然実験の各種手法を使ってみたい。

しかし、社会や教育など、個人情報に関わるデータはそう簡単にアクセスできない。
個人情報が削除されたデータは、個票の属性情報がかなり抜けているだろうし、そのデータの信憑性が悪い。
たぶん、研究者が使いたいレベルの詳細な情報を取得するには、たぶん公開されている統計データだけでは不足する場合が多いのではないか。

「学力の経済学」のように、本来は税金を投入して集められた学力テストのデータを個人レベルまで収集し、そのデータを使って、いろんな観点で因果関係を分析したいはずだ。
しかし、そういう個人情報が含められたデータは、そのまま公開されると悪用されやすい。
また、政治的影響も大きいだろうから、中途半端なデータとしてしか収集できていないのではないか。

【1-2-2】「自然実験」の各種手法では、いかに良質なデータにアクセスできるか、という課題がある。

本来は、政府が経済・社会・教育などのデータを収集して、一元管理して、研究者に公開したり、もっと一般に広く公開するのがいい。
そうすれば、オープンソースのように、優秀な技術者や学者が、無料でそれらデータを分析してその結果を公開してくれるはず。
実際、「学力の経済学」では、南アフリカでは国の統計データが公開されているらしいが、その理由は、公開しておけば、世界中の学者が統計データを使って、補助金を出すことなく無料で研究してくれて、その成果を出してくれるからだ、という一節があった。

その流れが、オープンデータという考え方なのだろう。

オープンデータ - Wikipedia

オープンソースの魅力である「世界中の優秀な開発者や熱心なユーザの力を利用して、無料でソフトウェアを構築・改善していく」手法を、データ分析の世界にも適用したいわけだ。
そういう発想が進んでいるのが米国などの欧米諸国なのだろう。
そして、日本はたぶんその流れに遅れているのだろう。

とはいえ、日本でもオープンデータの流れがある。

総務省|ICT利活用の促進|オープンデータ戦略の推進

現在の日本の環境でも、個人レベルでクラウド環境は整備できるし、R言語やPythonなどのプログラミング環境もあり、そのノウハウもネット上にいくらでもあるのだから、個人の研究者レベルでデータ分析して研究する、というやり方も現実的なはず。

【1-3】得られた因果関係はマクロレベルだけでなく、個人というミクロレベルでも正しいのか?

データの再現性の問題は「外部妥当性」がどこまで保証されているか、という内容と関係する。
つまり、実験対象の集団を超えて、他の集団にも因果関係を適用できるのか?

「データ分析の力 因果関係に迫る思考法」では、ランダム化比較試験では外部妥当性まで保証できる、と言われているが、他の実験手法では限界がある時もある、とのこと。

でも、データ分析して得られた因果関係は実験対象の集団に適用できても、その集団の中にいる個人まで適用できるのか?
集団にはそういう傾向がある、と言っても、個人レベルでは、その傾向の濃淡は様々だ。

経済現象では納得できても、教育や政治などのセンシティブな話題で個人レベルまで適用されると、自分は違うよ、と天邪鬼になる人も多いのではないか?

この辺りはまだよく分からない。

【2】現在のデータ分析にそういう課題があるとしても、今後はますます有用性が高まるに違いない。
なぜなら、統計学の理論は既に広く深く成立していて、プログラムとすごく相性がいいからだ。
また、データが膨大であっても、クラウドに配置すればいいし、処理性能もクラウド環境の方が調整しやすいから。

特にWebシステムでは、個人の行動履歴をログとして自然に蓄積しやすいので、データ収集のコストがすごく低い。
後は、コンピュータの性能に任せて、大量データをいくらでもデータマイニングすればいい。

その時に、各種の統計理論を使って、どの理論がとても有効であるのか、という理論の評価もできるはず。
つまり、従来はこの理論の方が良いと考えられていたとしても、実際に使ってみたら、そうではなかった、とか、むしろ、この理論であるべきだ、という知見がもっと出てくるだろう。

たとえば、「How Google Works」の本では、人の能力は、身長のような正規分布ではない、むしろべき分布のように偏っている方が自然だ、と主張していて、なるほどを思った。
こういう知見は専門家からすれば当たり前なのかもしれないが、素人からすれば非常に興味深い。

個人的にはそういう新たな知見をもっと知りたいし、研究してみたいなと思う。

【3】他に、僕が興味を持っているアジャイル開発やRedmineにも、データ分析の知見を活用することはできるか?

アジャイル開発だけでなく、リーンスタートアップ、MVPによるビジネスモデルの仮説検証は、データ分析の手法なくして実現できないのではないか?
換言すれば、AARRRのようなWebデータ解析手法が整ったからこそ、リーンスタートアップのようなWebのビジネスモデルの検証がやりやすくなったのではないか。

また、Redmineはソフトウェア工学に関するデータ収集基盤である、と位置づければ、今までのデータ分析の手法を使って、新たな知見を導き出すことができるのではないか。
たとえば、組織文化が異なる2つのチームに対し、Redmineのチケットをデータ分析したら、いくつかの因果関係を示せた、のようなことはできないか?

考えたことはまたまとめてみる。

| | コメント (0)

2017/11/11

データ分析の面白さはどこにあるのか

最近、統計学を勉強してみて、データ分析の面白さと課題について、色々感じるものがあった。
長くなったので、「データ分析の面白さ」だけ書いてみる。
以下はラフなメモ書き。
初心者の妄想なので、間違っていたら後で直す。

【参考】
データサイエンスのすゝめ — シリコンバレーに全てを飲み込まれる前に – learn data science

【1】データ分析の面白さはどこにあるのか?

【1-1】時代がようやく統計学の理論に追いついた、という点が面白いのだろう、と思う。
コンピュータが貴重であった頃、データ量が多いほど、データ分析は手計算では正直無理。
だから、いかに計算を省略するか、という所に力を入れて研究されていた。

また、大量のデータを収集する作業そのものも難しかったから、いかに少ない標本数でデータ分析の精度を高めるか、という研究が多くなされていた。
たとえば、コンピュータがない時代で、国勢調査で全国民からアンケート用紙を記入して回収し、集計する作業がどれだけ大変だったか、コストがかかるものだったのか、考えればいい。

しかし、今は、コンピュータの処理能力が劇的に向上し、Excelでも簡単に計算できるようになった。
今は、Excelで箱ひげ図も描ける。
データ量が増えても、クラウド環境、R言語などの優れたプログラミング言語などの開発環境が揃って、問題ない。
また、Webシステムや組込システムのセンサーのように、人手をかけずに機械が自動的にアクセス・ログを集集する仕組みが整ってきている。
むしろ、データがたくさんあるほど、幅広く奥深くデータを検証できる。

さらに、統計学の理論は既に固まっている。
したがって、データ分析の手法の仕様が決まっているので、プログラムに落としやすい。

また、あるいは、データ分析で得られた因果関係を、他の環境でも再現できる確率はどれくらいなのか、とか、データの再現性に関わる議論は、既に数多くの理論で提唱されている。
たとえば、データ分析の手法がどこまで、因果関係や相関関係などの正しさを保証できるか、とか。
そういうデータ再現の保証が理論で提示されているので、データ収集の前提条件さえきちんと詰めておけば、いくらでもプログラムでデータ分析できるし、今まで知られなかった因果関係を導き出すことができるはず。

【1-2】統計学の応用は、昔から幅広く行われていた。

医学の分野では、コレラとか流行の病気の原因追求、新薬の効き目の効果測定など。
経済学なら、国勢調査で、人口統計や住所、財産などの傾向分析など。
教育・心理学なら、学力テストによる知能の測定とか、アンケートによる行動の分析、とか。
生産管理なら、大量製造による量産品の品質管理。管理図とか、散布図とか。

つまり、コンピュータが使われる以前から、数多くの方面で統計学は応用されていたし、データ分析もなされていた。
では、最近はどういう点が違っていて、どういう点が面白いのか?

【1-3】今は、教育・人事やマーケティング、経済学への適用が興味深いのだろう、と思う。

【1-3-1】「郊外の小売店では、ビールと紙おむつが関連購買でよく売れる」という都市伝説は、データマイニングによるマーケティングへの応用。
大量のPOSデータから関連購買を分析すればいい。

特に、Webの販売サイトでは、アクセスログや購買履歴を個人レベルで簡単に蓄積できるので、データクリーニングさえできれば、いくらでもデータマイニングできる。
そういう経緯もあって、販促の経験則も、AIDMAからAARRRへ変わったのだろうと思う。

「AARRR」 今更だけど抑えておくべきグロースハッカーのコンバージョンの見方 - Content Hub(コンテンツハブ) | ナイル株式会社

たとえば、ユーザのアクセスログから、導線を推測して、逆にユーザを誘導して購買させるWebサイト作りへ変化させる。

また、ABテストも、Webシステムだからこそやりやすい手法。

ABテストとは ? 今さら聞けないABテストの基礎中の基礎まとめ | 株式会社アッション

多数の人達から、無作為に選んでもらう環境作りは普通は難しいが、Webサイトでは、フィッシャーの3原則「局所管理(小分け)の原則」「繰り返し(反復)の原則」「無作為化の原則」の条件を整えやすい。
つまり、Webサイトでは、ランダム化比較試験のような環境を作りやすいので、得られたデータ分析の結果も効果が出やすいのだろう。

最近、ソフトウェアが世界を食うという事象が頻繁に見られる理由は、Webサイトから安価に大量の顧客データを収集できて、それらをデータ分析で因果関係や相関関係などの結果を導き出し、より効果的な施策を実施できるビジネスモデルができているからではないか。
そういうビジネスモデルを持たない従来の企業は、そういう新興企業に押されている、という状況なのだろう。

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

【1-3-2】心理学への統計学の応用では、人の行動に焦点を当てた分析結果が有用だろうと思う。
たとえば、リーダーシップ条件適応理論では、リーダーシップは部下の成熟度で変化させるべきだ、という結論がとても参考になった。
皆薄々感じているけれど、実際の計測データを元に導き出された結果なので、信頼性が高いのだろう。

日本データ分析をバックにした理論が少ないと聞くが、三隅二不二によって提唱されたリーダーシップ理論であるPM理論が唯一の理論らしい、と聞いた。

この分野で目を引くのは、Googleの施策ではないか。
「ワーク・ルールズ」の本を読むと、Googleでは人事施策や組織文化に関する問題解決手法とデータ分析を頻繁に使っている。
人の能力、モチベーション、業績評価などをより良いものにするデータ分析を使って、どんどん改善していく。
その様は、生産管理における品質管理のカイゼン手法を連想させる。
人も部品と同じように、品質管理されて、良い品質を保つように改善されていくわけだ。

「ワーク・ルールズ」の感想: プログラマの思索

日本の品質管理がISO9001やシックスシグマに変わっていった歴史: プログラマの思索

【1-3-3】計量経済学という分野がまさに統計学と密接に関わる分野になるらしい。

経済学は自然科学とは違い、規範的な学問であるという立場を主張するならば、政治での政策効果や費用対効果を計測することで、政策を評価することが重要になってくる。
たとえば、ある政党がある政策を採用して実行すると決めたならば、その政策の効果が本当に出たのか検証すべきだし、その結果、効果よりもコストが大きくて損したならば、その政策はやめるべきだ。

つまり、各種の条件や前提をおいた後で、補助金や予算による政府の投資でどれだけの効果があるか、事前に推定できるならば推定して、政策実行を判断したいし、実際に実行した結果と事前推定の結果との比較分析からさらに多くの知見が得られるだろう。

そもそも、ミクロ経済学では、消費者行動や企業行動をパレート最適などの前提条件のもとで、消費者や企業は経済合理的に最適な行動を選択する、と仮定しているので、理論を当てはめやすい。
本当にそうなのか、は不明だが。

エビデンス・ベースの政策作りが米国では流行している、と聞くが、その理由は、経済学の理論や統計的手法とコンピュータによるデータ分析がうまく組み合わさって、政策の効果測定が簡単に実現できるようになったから、という背景もあるのだろう。
そういう雰囲気が進めば、Webシステム開発やデータ分析のできるプログラマはより重宝されるようになるのだろう。

【1-3-4】最近では、政治の世界でも経済学の重要性がすごく大きくなっている。
政治の政策作りの殆どが年金、医療、教育、中小企業に関わる補助金のバラマキが主になってくれば、そのばらまきが本当に効果があるのか、経済学の知見を使いたくなってくるのだろう。

教育経済学という分野を初めて知ったけれど、教育という古い分野に経済学における費用対効果の手法を適用することで、教育施策の政策効果を測定し、より効果的な教育政策を採用しよう、という考え方は面白い。

「エビデンスベースト」が日本の教育を変える?中室牧子氏に聞く | eduview

たとえば、少人数学級の方が効果があるのか、紙の書籍よりもiPadを与えた方が効果があるのか、大学生に奨学金を与えると効果が出るのか、とか。
こういう教育政策はとてもセンシティブな内容なので、得られたデータ分析の結果は本当に正しいのか、と疑ってしまいがちだが、経済学と統計学の手法を組合せて簡単に政策効果を評価できるなら、どんどん使っていくべきなのだろう。

従来の政策を運用したコストよりも効果が少なければ、その政策はむしろ破棄すべきだろうから。

【1-3-5】最近、IOTが注目される理由は、スマートフォンのみならず、全てのハードウェアにセンサーを組み込んで、いくらでもログを簡単に収集できる仕組みが整った点だろう。
つまり、Webシステムで緩やかにログを収集する構造と同じ仕組みを、Web業者だけでなく、メーカーも作れることが大きなメリットなのだろう。

たとえば、メーカーも収集したログやデータを分析することで、機械が故障する予兆を事前に把握して予知保全を行う、などといった手法を取れる。
あるいは、機械を扱うユーザの行動をログで記録して、CRMで分析して次世代の新製品開発に活用する、という使い方もできる。
さらには、ABテストみたいに、製品利用の課金サービスの売上を上げるために、製品が運用される環境を故意に作ってランダムにテストし、どのパターンが最も効果的なのか、を検証することもできる。

すなわち、Web業者が販売システムでAARRRやCRM、ABテストなどのデータ分析・活用をやっているのと同じやり方を、メーカーも行える基盤が整った、という点がIOTで最も重要な観点なのだろう。
メーカーも、GoogleやAmazonなどと同じ土俵にようやく立てる基盤が整ったわけだ。
但し、だからといって、メーカーがすぐに、最先端テクノロジーを持つWeb系ライバル業者と競争できる力を持てるわけではないだろう。

あくまでも、シリコンバレーのAmazon、Google、Facebookのような企業と同等の開発基盤を、メーカーにもIOTによって同じように持つことができるようになっただけに過ぎない。
メーカーの組織文化は、シリコンバレーのIT企業のそれとは全く違う。
どこまで彼らが変化できるのか、じっくり見てみたい所。

| | コメント (0)

第13回東京Redmine勉強会の見所 #redmineT

@madowindaheadさんが第13回東京Redmine勉強会の見所を公開されていたので、自分も書いておく。
以下、ラフなメモ書き。

【参考】
第13回勉強会 - redmine.tokyo

門屋 浩文さんのツイート: "来週の第13回https://t.co/EeqCzge6c7の見どころ! #redmineT https://t.co/7T2RrBBjUb @madowindaheadさんから"

第13回redmine.tokyoの見どころ! | MadosanPlace 新しい風をプラス!

【1】今回のテーマは『Redmineの今と未来』。
スタッフと企画した時に、Redmineの運用や管理面の講演は現時点の話、次期バージョン4.0に伴う技術面の講演は未来の話だね、という意見が出て、このテーマに決まった。

【1-1】運用面の話は、見える化の話とJAXAの利用事例のお話。
Redmineのチケット集計結果を見える化する内容は、特に、プロジェクトリーダー層が興味を持つだろう。
彼らから改善要望として出てくる意見のほとんどが、このテーマに関わる内容だからだ。

また、JAXAのRedmine利用事例をようやく東京でも講演頂けるようになった。
昨年夏にRedmine大阪で講演して頂きましたが、その時の内容からブラッシュアップされている、とのこと。

JAXAのスーパーコンピュータ活用課でRedmineを使ったチケット管理システムの経験論文: プログラマの思索

日本の大企業におけるRedmineの利用事例の資料のリンク: プログラマの思索

JAXAのRedmine利用事例で興味深いのは、Redmineの機能を論理モデルの観点で階層構造でモデル化していること、その分析内容を元に「ロールのORルール」「カスタムフィールドのANDルール」などのプラクティスを生み出して、利用プロジェクトの多様性をRedmineの機能で制御しようとしている点だ。

JAXAのRedmineモデル~Redmineはレイヤ構造になっている: プログラマの思索

これは、アナリシスパターンにおける「知識レベル・操作レベル」に相当する、という指摘もあった。
その後、他にどのようなプラクティスを研究されているのか、楽しみ。

【1-2】Redmineの次期バージョン4.0では、Rails5に対応が予定されているので、アーキテクチャが大幅に変わることになる。
特に、既存のRedmineのプラグインは、現状のままでは全く動かなくなる、という指摘があった。

そこで、Rails5におけるプラグイン開発の内容、さらに初心者向けにRedmineプラグイン開発のお話も合わせて、アジャイルウェアの堂端さんに講演を依頼することになった。
日本では、OSSのプラグイン開発者が多いし、スタッフにもプラグイン開発者がいるので、直接的に役立つだろうと思う。

【1-3】LTでは、数多くの方に講演していただくことになった。

特に、ファーエンドテクノロジーの石川さんのお話が個人的に興味がある。
理由は、Redmine本家にガントチャートの改善パッチを送られているからだ。

Redmineのガントチャート改善パッチに注目している: プログラマの思索でも書いたけれど、Redmine標準のガントチャートは正直使いにくい。
チケットタイトル欄の枠を広げたい、担当者を表示したい、ガントチャート画面上で編集したい、などの改善要望は2010年頃からずっと、Redmine本家にも要望があがっていたのに、ずっと改善されて来なかった。
しかし、ようやく、石川さんがパッチを送ってくれて実現可能性が上がった。
今は、Ver4.1のターゲットバージョンで設定されている。

Redmineを改善するパッチを書いて、OSSへの貢献もする仕事 - ファーエンドテクノロジー株式会社

また、日本ではRedmineの利用度合いが高いのに、Redmine本家へのフィードバックが少ない状況に対し、石川さん他幾人から、Redmine本家へのパッチが最近あげられている。
まだ少ないけれど、利用ユーザだけでなく開発者として日本人も貢献できればいいな、と思う。
(自分もやらねば、ね。。)

| | コメント (0)

« 2017年10月 | トップページ