はじめに
目標としていた30件の記事をQiitaに投稿できたので、自分の記事を分析してみる。
今後のアクションが何か導き出せるとよい。
データ集計は2021/9/20 0:00くらいに行った。
データ分析の注意点
アクションに結びつかないデータ分析をしないように注意する。
課題解決・問題解消につながらないデータ分析をしないように注意する。
せっかくなので、趣味のデータ分析をして終わりにならないように注意する。
『データ指向のソフトウェア品質マネジメント―メトリクス分析による「事実にもとづく管理」の実践』
書籍『データ指向のソフトウェア品質マネジメント―メトリクス分析による「事実にもとづく管理」の実践』に示されている「品質データ分析の作法」の中に、「作法7:アクションに結びつく分析を行う」がある。
###『日本企業がデータドリブン企業になれない本当の理由とその解決方法』
河本薫の講演資料の中に以下の言葉が出てくる。
データ分析のゴールは、課題を解決し、問題を解消することである。
河本薫,「日本企業がデータドリブン企業になれない本当の理由とその解決方法」,ソフトウェア品質シンポジウム2020,2020
#データ集計結果
##集計対象データ
goods:LGTMの数
stock:ストックの数
views:viewsの数
views/goods:一つのLGTMをいただくまでに必要とするviewsの平均値
views/(goods+stock):一つのLGTMまたはストックをいただくまでに必要とするviewsの平均値
rewrite:記事の編集回数
links:記事内のリンクの数
views/goodsとviews/(goods+stock)は、記事の良さを示す指標となり得る。
views/goodsの詳細な説明は、@kaizen_nagoyaさんの以下の記事参照。
https://qiita.com/kaizen_nagoya/items/d30240b2a9adec288ca9
記事毎のデータ集計結果
投稿日時が新しい順に並べている。
title | link | tag |
---|---|---|
ダブルチェックとクロスチェックに関する参考情報 | https://qiita.com/kazuo_reve/items/f6e26643dc390b4a4120 | ポエム レビュー プロジェクト管理 新人プログラマ応援 プロセス改善 |
私達の最悪実行時間計測アプローチ | https://qiita.com/kazuo_reve/items/50176a1f192fb77aa576 | 組み込み 計測 RTOS処理 速度 プロセス改善 |
チェックリストに関する考察と私達のチェックリスト活用法 | https://qiita.com/kaizen_nagoya/items/81e3519e3740fa766d6a | ポエム プロジェクト管理 チェックリスト 新人プログラマ応援 プロセス改善 |
昔プロセス診断でいただいた所見・提言で、今も大切だと思っていること | https://qiita.com/kazuo_reve/items/06a76755b25dc7a2dec5 | ポエム プロジェクト管理 interview プロセス改善 アセスメント |
ELYZA DIGESTで自分の論文・記事を要約させてみた | https://qiita.com/kazuo_reve/items/f25b444fad35acfe6b41 | 自然言語処理 機械学習 DeepLearning 論文 AI |
私達のリスク管理の事例(オニオンモデル風の図&プロセス図&未来予想図の活用) | https://qiita.com/kazuo_reve/items/8664746290f092264d35 | プロジェクト管理 マネジメント リスク管理 リスクマネジメント プロジェクトマネジメント |
トム・デマルコ「ゆとりの法則」に関係する経験則 ~マネージャーの圧について~ | https://qiita.com/kazuo_reve/items/50fb4bf485e98b9355ed | ポエム プロジェクト管理 マネジメント プロジェクトマネジメント 心理的安全性 |
自分のコーディングでユーザーに喜びの声いただいたこと | https://qiita.com/kazuo_reve/items/b1a4ee2fc421422c6b9a | プログラミング 初心者 ポエム アプリ開発 新人プログラマ応援 |
アーキテクチャ設計のプロセスを改善するために参照した論文・資料・記事 | https://qiita.com/kazuo_reve/items/dc9e170a45fb033127fd | リファクタリング 設計 アーキテクチャ 組み込み プロセス改善 |
確率・統計についての勉強メモ | https://qiita.com/kazuo_reve/items/e0b4c078bcdcff521960 | 統計 データ分析 統計学 メトリクス 確率 |
マネージャーの役割を引き継ぐときに、メンバから聞いた”継続して欲しいこと” | https://qiita.com/kazuo_reve/items/68b01e25f1bfc7762fcd | ポエム プロジェクト管理 マネジメント チームビルディング プロジェクトマネジメント |
マネージャー・リーダーの私にとって有益な知見が得られた書籍 | https://qiita.com/kazuo_reve/items/6976029e72763ea73245 | 書籍 プロジェクト管理 マネジメント プロジェクトマネジメント Qiitaエンジニアフェスタ_技術書 |
2020年度SQiP研究会で発表された論文「自然言語処理を利用した類似障害情報の抽出と活用方法の提案」の内容を写経してみた | https://qiita.com/kazuo_reve/items/eb6cb30f96836ded95c7 | Python 自然言語処理 GiNZA 推敲 SQiP |
自動車の故障診断に関連するプログラマーになりたての方が参照するとよさそうな情報 | https://qiita.com/kazuo_reve/items/f773b320dcbf2ab316da | OBD2 OBDⅡ Diagnostics AUTOSAR 故障診断 |
新人の方によく展開している有益な情報 | https://qiita.com/kazuo_reve/items/d1a3f0ee48e24bba38f1 | 初心者 ポエム 初心者向け 新人プログラマ応援 |
プロセス改善に関して、個人的に有益な情報 | https://qiita.com/kazuo_reve/items/2c9a2d13bd57282bec1f | プロセス プロジェクト管理 品質管理 品質 プロセス改善 |
ソフトウェアテストに関して、個人的に有益な論文・資料 | https://qiita.com/kazuo_reve/items/157423aff900ac3b9e16 | テスト バグ プロセス改善 ソフトウェアテスト 品質 |
ソフトウェア品質シンポジウムでBest Paper Effective Awardを受賞するコツ? | https://qiita.com/kazuo_reve/items/b5e740328bebad179414 | 統計データ 分析 形態素解析 論文 KHCoder |
形態素解析を活用した推敲の方法 | https://qiita.com/kazuo_reve/items/6b7205ffb4ce6ad230ba | レビュー 形態素解析 ドキュメント KHCoder 推敲 |
見積りに関する情報と知見 | https://qiita.com/kazuo_reve/items/4d74723faaad1c2875a0 | データ分析 プロジェクト管理 マネジメント メトリクス 見積もり |
文章の推敲・校正の個人的なノウハウ | https://qiita.com/kazuo_reve/items/b15d99759d75f942b9f0 | レビュー 形態素解析 KHCoder 校正 推敲 |
トラブルシューティング(デバッグ)について実体験から学んだこと | https://qiita.com/kazuo_reve/items/d8fff990b8f2e691ad74 | ノウハウ デバッグ トラブルシューティング モブプログラミング FTA |
派生開発の課題を解決するための工夫 | https://qiita.com/kazuo_reve/items/847a7b0a7988078c6cce | テスト データ分析 派生開発 XDDP DRBFM |
「Rによる機械学習」の勉強履歴(5) | https://qiita.com/kazuo_reve/items/162ba2ebaf44bd4d449c | R 機械学習 RStudio |
「規模あたりのテストケース数はもはや意味をなさない」という問いに対する考え | https://qiita.com/kazuo_reve/items/50419ce788703746d14a | テスト データ分析 カバレッジ メトリクス ソフトウェアテスト |
ワークショップ「ソフトウェア開発におけるHAZOP入門」の結果 | https://qiita.com/kazuo_reve/items/c1c1d32baed5d60d55c7 | テスト 初心者 分析 HAZOP Jasst |
「Rによる機械学習」の勉強履歴(4) | https://qiita.com/kazuo_reve/items/7cb4d7beaf55a8a1e745 | R 機械学習 RStudio |
「Rによる機械学習」の勉強履歴(3) | https://qiita.com/kazuo_reve/items/609396b80384095f594f | R 機械学習 RStudio |
「Rによる機械学習」の勉強履歴(2) | https://qiita.com/kazuo_reve/items/388968db10b67dbbb7ac | R 機械学習 RStudio |
「Rによる機械学習」の勉強履歴(1) | https://qiita.com/kazuo_reve/items/d45506146aeef52f6c65 | R 機械学習 RStudio |
タグ毎のデータ集計結果
goodsが多い順に並べている。
numは、tagが使われていた記事の数。
tag | goods | stock | views | num |
---|---|---|---|---|
ポエム | 1864 | 2368 | 101343 | 7 |
新人プログラマ応援 | 1840 | 2351 | 95663 | 4 |
初心者 | 1839 | 2352 | 96409 | 3 |
初心者向け | 1836 | 2349 | 94441 | 1 |
プロジェクト管理 | 125 | 139 | 18971 | 9 |
マネジメント | 117 | 132 | 16379 | 5 |
プロジェクトマネジメント | 102 | 120 | 13661 | 4 |
Qiitaエンジニアフェスタ_技術書 | 75 | 97 | 6824 | 1 |
書籍 | 75 | 97 | 6824 | 1 |
プロセス改善 | 47 | 75 | 8914 | 7 |
推敲 | 41 | 24 | 7678 | 3 |
KHCoder | 34 | 15 | 5938 | 3 |
レビュー | 34 | 15 | 5665 | 3 |
形態素解析 | 34 | 15 | 5938 | 3 |
組み込み | 34 | 56 | 5141 | 2 |
アーキテクチャ | 32 | 56 | 5041 | 1 |
リファクタリング | 32 | 56 | 5041 | 1 |
設計 | 32 | 56 | 5041 | 1 |
データ分析 | 24 | 25 | 6257 | 4 |
校正 | 24 | 8 | 3584 | 1 |
機械学習 | 18 | 20 | 5893 | 6 |
メトリクス | 17 | 18 | 4550 | 3 |
R | 15 | 18 | 5235 | 5 |
RStudio | 15 | 18 | 5235 | 5 |
テスト | 15 | 28 | 6101 | 4 |
見積もり | 15 | 12 | 2718 | 1 |
チームビルディング | 12 | 11 | 1587 | 1 |
自然言語処理 | 12 | 13 | 3115 | 2 |
心理的安全性 | 11 | 6 | 3845 | 1 |
GiNZA | 9 | 11 | 2457 | 1 |
Python | 9 | 11 | 2457 | 1 |
SQiP | 9 | 11 | 2457 | 1 |
品質 | 9 | 17 | 2733 | 2 |
ドキュメント | 8 | 5 | 1637 | 1 |
DRBFM | 7 | 7 | 1707 | 1 |
XDDP | 7 | 7 | 1707 | 1 |
派生開発 | 7 | 7 | 1707 | 1 |
ソフトウェアテスト | 6 | 18 | 2856 | 2 |
バグ | 5 | 12 | 1181 | 1 |
論文 | 5 | 4 | 1375 | 2 |
プロセス | 4 | 5 | 1552 | 1 |
リスクマネジメント | 4 | 6 | 1405 | 1 |
リスク管理 | 4 | 6 | 1405 | 1 |
品質管理 | 4 | 5 | 1552 | 1 |
分析 | 4 | 5 | 2255 | 2 |
AI | 3 | 2 | 658 | 1 |
AUTOSAR | 3 | 4 | 1874 | 1 |
DeepLearning | 3 | 2 | 658 | 1 |
Diagnostics | 3 | 4 | 1874 | 1 |
FTA | 3 | 7 | 1281 | 1 |
OBD2 | 3 | 4 | 1874 | 1 |
OBDⅡ | 3 | 4 | 1874 | 1 |
デバッグ | 3 | 7 | 1281 | 1 |
トラブルシューティング | 3 | 7 | 1281 | 1 |
ノウハウ | 3 | 7 | 1281 | 1 |
モブプログラミング | 3 | 7 | 1281 | 1 |
故障診断 | 3 | 4 | 1874 | 1 |
HAZOP | 2 | 3 | 1538 | 1 |
Jasst | 2 | 3 | 1538 | 1 |
RTOS処理 | 2 | 0 | 100 | 1 |
計測 | 2 | 0 | 100 | 1 |
速度 | 2 | 0 | 100 | 1 |
統計データ | 2 | 2 | 717 | 1 |
interview | 1 | 0 | 248 | 1 |
アセスメント | 1 | 0 | 248 | 1 |
アプリ開発 | 1 | 0 | 430 | 1 |
カバレッジ | 1 | 6 | 1675 | 1 |
チェックリスト | 1 | 0 | 348 | 1 |
プログラミング | 1 | 0 | 430 | 1 |
確率 | 1 | 0 | 157 | 1 |
統計 | 1 | 0 | 157 | 1 |
統計学 | 1 | 0 | 157 | 1 |
#考察
- 記事内にリンクの数が多い「まとめ記事」は、viewsも多く、評価も高い傾向がある。
- 圧倒的に評価が高い(views/goodsが51、views/(goods+stock)が23)記事は、viewsも圧倒的に多い。
- 『新人の方によく展開している有益な情報』
- 自分にとって有益だった情報を展開した「まとめ記事」は、評価が高い傾向がある(6記事中4記事で、views/(goods+stock)が100以下)。以下の記事は、それほど評価が高くない。そもそも、この2つの記事で対象としている情報を必要としているQiitaユーザーの方が少ない可能性が高そう。
- 『自動車の故障診断に関連するプログラマーになりたての方が参照するとよさそうな情報』
- 『プロセス改善に関して、個人的に有益な情報』
- 「まとめ記事」にもかかわらず、以下の記事だけは、viewsも少なく、評価も低い。
- 『確率・統計についての勉強メモ』
- まだviewsはそこまで多くないが(viewsは2000以下で)、比較的多くの方々に評価をいただいている記事(views/(goods+stock)が100以下の記事)で、「まとめ記事」でないものが2つある。この2つの記事は、「まとめ記事」ではなく「自分自身の工夫を紹介した記事」である。
- 『私達の最悪実行時間計測アプローチ』
- 『マネージャーの役割を引き継ぐときに、メンバから聞いた”継続して欲しいこと”』
- 記事『新人の方によく展開している有益な情報』のタグを除くと、以下のタグがつけられている記事の評価が高い。
- プロジェクト管理
- マネジメント
- プロジェクトマネジメント
今後のアクション
- 『確率・統計についての勉強メモ』は、まとめ記事としてまだ価値がないので、改善する。
- 『私達の最悪実行時間計測アプローチ』と『マネージャーの役割を引き継ぐときに、メンバから聞いた”継続して欲しいこと”』は、自プロジェクト以外でも有益な知見である可能性がある。自分のプロジェクトで取り組みを継続しながら、記事で述べている方法を洗練させていく。シンポジウム等で発表することも視野に入れる。
- プロジェクトマネージャーとしての経験を更に積み、プロジェクト管理(プロジェクトマネジメント)の知見を言語化し、その知見を活かし業界に貢献する。
- 自分にとって有益だった情報は、他の方にとっても有益な可能性が高い。自分にとって有益な情報をまとめて展開するだけでも、業界に貢献できる可能性がある。自分が有益な情報を教えていただいたら、その有益な情報をまとめて展開することを、今後も継続する。
まだ、統計手法による分析が不足しているので、Rなどを使って、もう少し追加の分析をしてみたいと思う。
おまけ:統計手法による分析
「R コマンダー(Rcmdr)」で、統計手法による分析をしてみた。
Rcmdrの使い方は、以下の記事を参照。
https://qiita.com/kazuo_reve/items/388968db10b67dbbb7ac
分析するときに記事『新人の方によく展開している有益な情報』は外した。各変数の値が、他の記事と比べてかなり大きく、分析をするときに記事『新人の方によく展開している有益な情報』の影響を強く受けすぎると考えた。
散布図行列
psychというライブラリを使って、相関係数も表示される散布図行列を描いてみた。
※psychを使った散布図行列の描き方・読み方については、以下の記事でご説明していただいている。
https://joho-ka.mints.ne.jp/scatter-plot-matrix-in-r?doing_wp_cron=1633659222.1625850200653076171875
https://k-metrics.netlify.app/post/2018-09/pairplot/
分析結果
> Qiita <- read.table("clipboard", header=TRUE, stringsAsFactors=TRUE, sep="\t", na.strings="NA", dec=".", strip.white=TRUE)
> psych::pairs.panels(Qiita)
考察
- goodsとstockとviewsの相関関係が強い。よい記事は、よく見られる。よく見られる記事は、よい記事。
- rewriteとgoods、rewriteとstockの相関関係が強い。改善を継続している記事は、よい記事と評価されやすい。よい記事と評価されるためには、現状に満足せず、記事を改善し続けるとよいのかもしれない。
重回帰分析
ステップワイズ法を使って、重回帰分析をしてみた。
何がgoodsを増やす要因となるかを確認した。記事の編集回数を増やせばいいのか、記事内のリンクの数を増やせばいいのか、記事の参照回数をふやせばいいのかを明らかにしようとした。
- 目的変数:goods
- 説明変数:rewrite, links, views
Rcmdrの操作手順
分析結果
> RegModel.1 <- lm(goods~links+rewrite+views, data=Qiita)
> summary(RegModel.1)
Call:
lm(formula = goods ~ links + rewrite + views, data = Qiita)
Residuals:
Min 1Q Median 3Q Max
-9.0048 -2.2566 -0.1054 3.7025 14.7678
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -9.9195837 1.9001691 -5.220 0.00002109 ***
links 0.1143670 0.0845251 1.353 0.18815
rewrite 0.4462691 0.1363793 3.272 0.00311 **
views 0.0061605 0.0009731 6.330 0.00000126 ***
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 5.582 on 25 degrees of freedom
Multiple R-squared: 0.8709, Adjusted R-squared: 0.8555
F-statistic: 56.24 on 3 and 25 DF, p-value: 2.956e-11
> stepwise(RegModel.1, direction='backward', criterion='AIC')
Direction: backward
Criterion: AIC
Start: AIC=103.43
goods ~ links + rewrite + views
Df Sum of Sq RSS AIC
<none> 779.08 103.43
- links 1 57.05 836.13 103.48
- rewrite 1 333.69 1112.77 111.77
- views 1 1248.87 2027.95 129.18
Call:
lm(formula = goods ~ links + rewrite + views, data = Qiita)
Coefficients:
(Intercept) links rewrite views
-9.91958 0.11437 0.44627 0.00616
考察
- goodsの増減を説明するために、rewrite, links, viewsの全部の変数が必要。ただし、しいて言うなら、linksにはそれほどこだわる必要がない。goodsを増やすためには、有益な参考文献を多数紹介し、記事を継続的に改善し、多くの人の目に触れるようにする必要がありそう。
層別した散布図行列と箱ひげ図と数値要約
散布図と箱ひげ図をみて、バズったあとから、記事の質に変化があったか傾向を確認する。
データを以下の2つに層別している。
A:記事『新人の方によく展開している有益な情報』を執筆する以前の記事(バズった前の記事)
B:記事『新人の方によく展開している有益な情報』を執筆して以降の記事(バズった後の記事)
分析結果
views/goods(一つのLGTMをいただくまでに必要とするviewsの平均値)の箱ひげ図を、バズり前後で層別して表示。また数値要約も示す。
> numSummary(Qiita2[,"views.goods", drop=FALSE], groups=Qiita2$buz,
+ statistics=c("mean", "sd", "IQR", "quantiles"), quantiles=c(0,.25,.5,.75,1))
mean sd IQR 0% 25% 50% 75% 100% views.goods:n
A 447.2 386.3132 174.00 149 240.00 335 414.0 1675 15
B 261.0 151.8430 192.25 50 157.25 235 349.5 625 14
考察
- 記事『新人の方によく展開している有益な情報』を執筆して以降、質の低い記事を執筆する確率が下がってきたと思われる。
参考記事