2014年末時点のmartinfowler.comの状況報告

2015年1月28日



martinfowler.comサイトの運営は、Thoughtworksでの私の仕事の大部分を占めています。伝統的に、メインサイトよりも多くのトラフィックがありましたが、メインサイトが改善されるにつれて、それは喜ばしい変化を遂げています。私のサイトは、柱2の活動の一環として、業界に影響を与えるための手段です。

雑誌に記事を書くのではなく、ウェブサイトを運営することの良い点の1つは、分析データによってフィードバックが得られることです。トラッキングナンバーに過度に魅了されやすいですが、私はそれらを常に監視することが有用だと感じています。主に、どのような種類の記事が最も注目を集めるのかを測るためです。

今年の初めに、私は、何が起こっているのかをよりよく理解できるように、普段よりも少し多くの時間をトラフィック情報の確認に費やすことにしました。この取り組みを利用して、コンテンツ戦略担当者と情報を共有しましたが、これをより広く共有することが重要だと考えているため、Thoughtworks内でもより広く公開することにしました(後で公の場でも言及するかもしれません)。

サイトの目標

martinfowler.comの私の主な目標は、ソフトウェア開発を改善する手法の知識を広めることです。私は、主にThoughtworksの同僚を通じて、有用な手法を見つけ、他の人々がそれらを試して発展させることができるように明確に説明することを望んでいます。

この目標は主に柱2の取り組みですが、柱1にも大きな影響があります。需要面では、仕事を探す際にリードを生み出したり、私たちの信頼性を高めるのに役立ちます。採用担当者は、多くの人々が私のサイトによって私たちの存在を知ったか、そこでの執筆活動が人々がThoughtworksへの異動を検討するのに役立っていると主張しています。デリバリーにおいては、投稿がコンサルタントがクライアントにより良い道を説得したり、クライアントがより良い仕事をして私たちが取り組んでいることを理解するのに役立つことがあります。

柱3では、私は多様性の問題やインターネットの自由について執筆や講演を行ってきました。私のサイトの読者のほとんどは技術情報を求めていますが、特に技術者が影響を与えることができる重要な社会問題について彼らが認識していることを確認することも重要だと思います。

私自身の執筆だけでなく、意欲のある人の成長を支援することも重要だと考えています。たとえば、数年前には、ジェズ・ハンブルと共同講演にかなりの時間を費やしました。彼の知名度を高め、継続的デリバリーのアイデアを広めるためです。ジェズの異動は残念ですが、この活動を継続できることを嬉しく思っています。私がThoughtworksに入社したとき、多くの人が私を業界におけるThoughtworksの主要なスポークスパーソンと見なしていましたが、今ではThoughtworksが私だけでなく多くの人々によって知られるようになったことを本当に嬉しく思っています。martinfowler.comの人気記事の多くは、多くの場合Thoughtworkerである、私以外の人が執筆しています。

サイトのこれらのプロフェッショナルな目標に加えて、充実した人生を送る上での個人的な目標にも役立っています。私は講演が大嫌いで、それを最小限に抑えるよう努めています。同様に、私は1992年からいくつかの航空会社のマイレージプログラムのエリートメンバーであり、航空機の座席よりも自分のオフィスでの時間を優先しています。ウェブサイトの影響力が大きければ大きいほど、また別の講演の仕事で移動するのではなく、執筆に時間を費やすことを正当化できます。

2014年のトラフィック全体

いくつかの大まかな虚栄心の指標について考えてみましょう。

図1:月間ユニーク訪問者数比較 2012年〜2014年

単純な訪問者の観点から見ると、サイトは2014年に好調で、過去2年間から着実に増加しており、月間186〜249K人の訪問者がありました。ページビューも同様のパフォーマンスでした(歴史的に、私のサイトでは2つは非常に密接に追跡されています)。[1]

図2:ユニークページビュー数比較 2012年〜2014年

図3:私が分析データの収集を開始してからの訪問者の長期的な状況

人気記事

私は、このような幅広いページビュー情報に対して少し懐疑的になる傾向があります。結局のところ、この数を心配することは、読者にとって何の役にも立たないクリックベイトのタイトルにつながるだけではないでしょうか?

そのため、私は別の指標、つまり、どれだけ人気のある記事があるかに焦点を当てています。今のところ、人気のある記事とは、月に1000以上のユニークページビューを獲得する記事として定義しています。

図4:月間1000以上のユニークページビューを獲得している記事数の比較

傾向は、総ページビュー数や訪問者の傾向と非常に似ており、毎年、前年よりも着実に増加しています。このような集計は、私に温かく心地よい感覚を与えてくれます。しかし、より詳しく知りたい場合は、実際の記事を見る必要があります。

まず指摘すべきことは、人気のある記事には種類があるということです。記事は、新しい場合に多くのトラフィックを得ることができます。

図5:記事を公開してから最初の7日間におけるユニークページビューの合計のヒストグラム。ビンサイズは500です。記事は2012年から2014年に公開されたものです。

ヒストグラムからわかるように、ほとんどの記事は最初の7日間で1000回以上の表示回数があり、一部は10,000回を超える表示回数があります(通常はHacker Newsの注目によるものです)。しかし、6か月後の結果を見ると、別の状況が見られます。

図6:記事を公開してから6か月後の月におけるユニークページビューの合計のヒストグラム。ビンサイズは500です。

6か月後、ほとんどの記事は月に1000回未満の表示回数になります。適切に古く、人気のある記事が最も価値があるものだと思います。これらの記事の最新用語は「定番」です。(当然のことながら、大きく外れているのは、ジェームズ・ルイスと私によるマイクロサービスに関する記事です。)

2014年の定番記事

2014年の古く、人気のあるURLを特定するために、私は次の定義を考え出しました。

  • 2014年中の月間ページビューの中央値が1000を超えている必要があります
  • 1000ページビュー以上を獲得した月が少なくとも4か月間ある必要があります

2番目のルールは、ほとんどの一時的に人気のある記事を削除する必要がありますが、比較的新しい記事を調べることができます。(3か月のヒストグラムの形状は、6か月のヒストグラムの形状と非常に近いですが、どこかの時点で、早期から後期のページビューのスコアについて適切な相関分析を行う必要があります)。

その基準を考えると、2014年には86個の定番URLになりました。

ランクパスタイプ中央値公開日
1/articles/microservices.html記事32391102014-03-10
2/articles/injection.html記事2894612
3/ナビ2245612
4/articles/mocksArentStubs.html記事1155512
5/articles/continuousIntegration.html記事1141212
6/bliki/CQRS.htmlbliki1061412
7/refactoring/ナビ779812
8/books/eaa.html書籍766712
9/eaaDev/uiArchs.html記事745012
10/design.htmlナビ717212
11/articles/richardsonMaturityModel.html記事685412
12/articles/is-tdd-dead/ナビ622582014-05-19
13/articles/itsNotJustStandingUp.html記事596612
14/eaaDev/EventSourcing.html記事582812
15/nosql.htmlナビ5645122012-08-22
16/eaaCatalog/カタログ552712
17/articles/lmax.html記事5327122011-07-12
18/eaaCatalog/repository.htmlカタログ465812
19/articles/collection-pipeline/記事465762014-07-21
20/eaaCatalog/unitOfWork.htmlカタログ423512
21/intro.htmlナビ404512
22/agile.htmlナビ401912
23/bliki/AnemicDomainModel.htmlbliki378712
24/articles/newMethodology.html記事362412
25/aboutMe.htmlナビ357712
26/refactoring/catalog/カタログ350412
27/articles/designDead.html記事320512
28/bliki/TwoHardThings.htmlbliki315912
29/eaaDev/PresentationModel.html記事304712
30/books/refactoring.html書籍294212
31/bliki/FeatureToggle.htmlbliki293012
32/eaaCatalog/index.htmlカタログ279912
33/bliki/ナビ275712
34/bliki/PolyglotPersistence.htmlbliki2617122011-11-16
35/books/ナビ258912
36/eaaCatalog/dataTransferObject.htmlカタログ253712
37/eaaCatalog/dataMapper.htmlカタログ253212
38/articles/consumerDrivenContracts.html記事251310
39/eaaCatalog/domainModel.htmlカタログ249312
40/articles/enterpriseREST.html記事2488122013-10-21
41/delivery.htmlナビ246612
42/articles/testing-culture.html記事229882014-05-12
43/bliki/TestPyramid.htmlbliki228512
44/bliki/PageObject.htmlbliki2244122013-09-10
45/articles/evodb.html記事219912
46/bliki/BoundedContext.htmlbliki212712
47/bliki/CircuitBreaker.htmlbliki2101102014-03-06
48/articles/rake.html記事208012
49/dsl.htmlナビ206912
50/books/nosql.html書籍2038122012-08-17
51/bliki/FeatureBranch.htmlbliki203712
52/bliki/MicroservicePrerequisites.htmlbliki201652014-08-28
53/books/dsl.html書籍196112
54/bliki/TechnicalDebt.htmlbliki194912
55/bliki/BlueGreenDeployment.htmlbliki190312
56/bliki/FluentInterface.htmlbliki188212
57/bliki/InversionOfControl.htmlbliki184412
58/eaaCatalog/serviceLayer.htmlカタログ183512
59/eaaCatalog/activeRecord.htmlカタログ179212
60/articles/distributed-objects-microservices.html短い176052014-08-13
61/articles/asyncJS.html記事1712122013-09-03
62/bliki/ContinuousDelivery.htmlbliki1675122013-05-30
63/bliki/UnitTest.htmlbliki163782014-05-05
64/eaaCatalog/transactionScript.htmlカタログ160612
65/articles/useOfMetrics.html記事1580102013-02-19
66/bliki/TolerantReader.htmlbliki152110
67/tags/domain driven design.htmlナビ150210
68/eaaDev/PassiveScreen.html記事146912
69/articles/agileFluency.html記事1441122012-08-08
70/bliki/RulesEngine.htmlbliki141812
71/eaaCatalog/singleTableInheritance.htmlカタログ140312
72/eaaDev/SupervisingPresenter.html記事133012
73/articles/vagrant-chef-rbenv.html記事132742014-09-04
74/bliki/DeploymentPipeline.htmlbliki128392013-05-30
75/bliki/BusinessReadableDSL.htmlbliki125512
76/articles/enterprisePatterns.htmlカタログ124712
77/bliki/UbiquitousLanguage.htmlbliki119310
78/books/continuousDelivery.html書籍11889
79/bliki/GivenWhenThen.htmlbliki1169102013-08-21
80/books/buying.html書籍111310
81/articles/nonDeterminism.html記事110492011-04-14
82/articles/agileOffshore.html記事10717
83/bliki/BranchByAbstraction.htmlbliki106982014-01-07
84/bliki/OrmHate.htmlbliki104382012-05-08
85/bliki/DDD_Aggregate.htmlbliki101482013-04-23
86/eaaDev/EventAggregator.html記事10128

私は、調査しているURLを次のタイプに分類しました。

  • 記事: 長文の記事。通常、いくつかのセクションがあり、数ページを超えるでしょう。
  • 短い: 短い記事。通常、セクションがなく、1500語未満で書かれています。
  • bliki: blikiのエントリ。通常は短く[2]、タイトルになっている概念を定義する形式を取ります。
  • デッキ: 情報デッキ
  • ナビ: ナビゲーションページ。私のホームページやさまざまなガイドページ、タグページなど
  • 書籍: 私の本(または私のシリーズ)について説明するページ
  • カタログ: EAAパターンカタログやリファクタリングカタログのようなカタログの一部であるページ。

図7:タイプ別に分類された定番記事のストリップチャート。

この分析から私に際立ってわかったことの1つは、少しばかり憂鬱なものでした。過去2年間で、新しい形式のコンテンツである情報デッキの作成にかなりの労力を費やしました。トピックを説明するのに役立つ魅力的な媒体になることを期待していましたが、86個の定番記事の中に情報デッキは1つもありません。[3]

最近の投稿の状況

この別の見方として、私が過去数年間に投稿したURLを見直し、それらのうちどれだけが定番リストに入ったかを確認することもできます。新しい記事を公開する際には、そのページの表示回数の進捗状況を追跡するために、記録をとっています。

パス公開日タイプ12月の表示回数ランク定番?
1/articles/microservices.html2014-03-10記事372491T
2/nosql.html2012-08-22ナビ524815T
3/articles/is-tdd-dead/2014-05-19ナビ389023T
4/bliki/OrmHate.html2012-05-08bliki266736T
5/bliki/PageObject.html2013-09-10bliki232945T
6/bliki/TestCoverage.html2012-04-17bliki228847F
7/articles/enterpriseREST.html2013-10-21記事221750T
8/bliki/CircuitBreaker.html2014-03-06bliki211454T
9/books/nosql.html2012-08-17書籍200855T
10/articles/agileFluency.html2012-08-08記事198956T
11/articles/collection-pipeline/2014-07-21記事185662T
12/articles/asyncJS.html2013-09-03記事173566T
13/bliki/ContinuousDelivery.html2013-05-30bliki163168T
14/bliki/UnitTest.html2014-05-05bliki161869T
15/articles/useOfMetrics.html2013-02-19記事156870T
16/bliki/DeploymentPipeline.html2013-05-30bliki132677T
17/bliki/GivenWhenThen.html2013-08-21bliki129378T
18/bliki/MicroservicePrerequisites.html2014-08-28bliki126979T
19/articles/testing-culture.html2014-05-12記事120782T
20/articles/vagrant-chef-rbenv.html2014-09-04記事114684T
21/bliki/DDD_Aggregate.html2013-04-23bliki113485T
22/articles/distributed-objects-microservices.html2014-08-13短い107594T
23/bliki/TellDontAsk.html2013-09-05bliki102996F
24/bliki/BranchByAbstraction.html2014-01-07bliki922102T
25/bliki/ImmutableServer.html2013-06-13bliki776113F
26/bliki/CanaryRelease.html2014-06-25bliki743118F
27/bliki/ReportingDatabase.html2014-04-02bliki743119F
28/articles/dipInTheWild.html2013-05-01記事701125F
29/articles/workflowsOfRefactoring/2014-01-08デッキ684128F
30/bliki/SnowflakeServer.html2012-07-10bliki652131F
31/bliki/SelfTestingCode.html2014-05-01bliki613138F
32/bliki/CannotMeasureProductivity.html2013-08-29bliki588141F
33/bliki/StranglerApplication.html2014-06-30再投稿546150F
34/bliki/PhoenixServer.html2012-07-10bliki501162F
35/articles/schemaless/2013-01-07デッキ460172F
36/bliki/FlaccidScrum.html2014-01-29bliki459173F
37/bliki/AggregateOrientedDatabase.html2012-01-19bliki458174F
38/articles/nosqlKeyPoints.html2012-09-12ナビ425180F
39/bliki/SegregatedDOM.html2014-01-16bliki351199F
40/bliki/ParallelChange.html2014-05-13bliki326205F
41/articles/badri-hexagonal/2014-06-05ナビ305212F
42/bliki/MaturityModel.html2014-08-26bliki284216F
43/articles/eurogames/2013-10-02記事282217F
44/articles/go-interview.html2014-03-25短い263225F
45/articles/multiMobile/2012-06-19デッキ237235F
46/articles/bigQueryPOC.html2012-09-04記事231238F
47/bliki/UserDefinedField.html2013-07-23bliki218246F
48/bliki/OpportunisticRefactoring.html2014-07-30bliki197263F
49/bliki/Datensparsamkeit.html2013-12-12bliki190266F
50/bliki/UserStory.html2013-04-22bliki178275F
51/articles/modernMockingTools.html2012-09-10記事162286F
52/bliki/PurposeOfEstimation.html2013-02-27bliki162288F
53/bliki/BroadStackTest.html2013-04-22bliki160290F
54/bliki/InternalReprogrammability.html2013-01-10bliki159292F
55/bliki/NosqlDefinition.html2012-01-09bliki138326F
56/articles/bigData/2013-01-29デッキ128350F
57/articles/gap-scms-po/2013-04-23デッキ124357F
58/bliki/ComponentTest.html2013-04-22bliki123359F
59/articles/mobileImplStrategy.html2012-05-21記事111372F
60/bliki/ComposedRegex.html2014-07-31再投稿104384F
61/bliki/EnterpriseApplication.html2014-03-24bliki102389F
62/bliki/SoftwareDevelopmentAttitude.html2014-03-11bliki101391F
63/bliki/ExtremeProgramming.html2013-07-11bliki96400F
64/bliki/BusinessFacingTest.html2013-04-23bliki89417F
65/bliki/ExpositionalArchitecture.html2013-04-23bliki89419F
66/bliki/JavascriptPromise.html2013-04-22bliki88421F
67/bliki/PrimingPrimeDirective.html2012-10-23bliki79446F
68/articles/eliminatingSalesCommissions/2013-02-18デッキ73459F
69/bliki/EmbeddedDocument.html2013-06-04bliki71466F
70/bliki/UserJourneyTest.html2013-04-23bliki56510F
71/bliki/PreferFunctionalStaffOrganization.html2014-08-04再投稿52522F
72/bliki/ThrownEstimate.html2014-06-26再投稿46543F
73/bliki/HistoricallyDiscriminatedAgainst.html2013-10-10bliki43554F
74/bliki/StoryPoint.html2013-07-16bliki42561F
75/bliki/AlienatingAtmosphere.html2014-02-11bliki40568F
76/bliki/CloudComputing.html2013-07-11bliki38582F
77/bliki/StoryTest.html2013-04-23bliki33617F
78/bliki/ConfigurationSynchronization.html2013-06-13bliki30639F
79/bliki/NoDBA.html2013-02-25bliki29644F
80/bliki/FaultyTechniqueDichotomy.html2014-08-06再投稿27660F
81/articles/bothersome-privacy.html2013-07-25短い26666F
82/bliki/CourtesyImplementation.html2014-08-27bliki26667F
83/bliki/DiversityImbalance.html2012-01-11bliki26668F
84/bliki/StoryCounting.html2013-07-16bliki24685F
85/bliki/TransparentCompilation.html2013-02-12bliki18757F
86/bliki/CharityCodeJam.html2012-01-25bliki17767F
87/bliki/ThresholdTest.html2013-09-12bliki16785F
88/bliki/TransMediaApplication.html2012-11-01bliki16786F
89/bliki/CommunalDashboard.html2012-08-22bliki15794F
90/bliki/PresentationSmells.html2012-02-09bliki10870F
91/bliki/ProbabilisticIlliteracy.html2012-11-05bliki10871F
92/bliki/gotoAarhus2012.html2012-10-16bliki9897F
93/bliki/Nexus7.html2013-10-08bliki6979F
94/bliki/API_Copyright.html2013-05-31bliki51008F
95/bliki/IdealTime.html2013-07-16bliki51020F
96/articles/201402-call-congress.html2014-02-11短い41051F
97/bliki/Saba.html2013-02-01bliki41081F

タイプ分類は以前と同じですが、古い記事の再投稿用にrepostタイプを追加しました。これは5周年と10周年に行っています。これらの再投稿をすべてこの表に記録しているわけではありません。公開を追跡するのに一貫性がなかったためです。

この表は、公開した各タイプの数と、常緑リストにある数をまとめたものです。

すべて2014
タイプすべて常緑すべて常緑
記事13844
bliki6410164
書籍1100
デッキ6010
ナビ4221
再投稿5050
短い4131

この表を見ると、常緑の情報デッキがないことについての懸念が薄れます。情報デッキは6つしか公開しておらず、その間に公開されたbliki投稿の6分の1しか常緑になっていません。したがって、常緑のデッキがまだないことは、媒体が常緑になる傾向が低いという証拠ではありません。

一方、長編記事はかなりうまくいっているように見えますが、この違いが有意であるかどうかは判断していません。

マイクロサービスに関する記事

今年のサイトで最大のインパクトがあった記事は、間違いなく、ジェームズ・ルイスと私が書いたマイクロサービスに関する記事です。これはすぐにサイトで1位の記事となり、月間平均32,000ビュー、2015年には345,000ビューを獲得しました。

しかし、martinfowler.comのいかなる統計よりも重要なのは、このグラフです。

図8:Googleによる「マイクロサービス」という用語への関心のプロット。

私たちは2014年3月に(分割して)記事を公開し、Googleが追跡したように、その時点でこの用語への関心が大幅に高まっていることがわかります。マイクロサービスに関する誇大広告のすべての責任が私たちにあると主張するわけではありません。この用語は以前から存在しており、2012年初頭に当社の技術レーダーに初めて登場しました。このテーマについて話しているさまざまな人々が、私たちの貢献がなくてもその知名度を大幅に上げたと思いますが、私たちはそれに重要な触媒効果があったと思います。

残念ながら、Googleのグラフを他のソフトウェア開発のトレンドと比較することは困難です。そのため、近年普及を試みてきた別の用語である「継続的デリバリー」と比較したものを次に示します。

ページビュー数と、それに対応するGoogleの関心度は、記事の影響を測定する上で興味深い指標ですが、根本的に、私が記事の真の価値と見なしているものではありません。それは、長期的な影響、つまり主に、この用語の合理的な定義を示すことにあり、それが、意味の拡散SOAを最初からひどく捉えたのを減らすのに役立つことを願っています。残念ながら、それについてきれいなグラフをプロットするのはかなり難しいことです。

単語数と継続的な人気

時々、短編記事はADDに感染した現代社会でより人気があるということを耳にします。以前のセクションのいくつかは、少なくとも長期的に見るとそうではない可能性を示唆していました。これをもう少し掘り下げるために、ここ数年(2012年1月~2014年9月)のすべての記事(短編と長編)とbliki投稿を取り上げ、最近のページビューに対して散布図を作成しました。

図10:2012年1月から2014年9月の間に公開された記事の単語数と、2014年12月のユニークなページビューを比較した散布図。(マイクロサービスの記事(37,249:5,746)とテスト文化の記事(1,207:27,596)という2つの外れ値を取り除きました)

このグラフに相関関係が見られる場合は教えてください。私には確かによくわかりません。これは、短編投稿よりも成功した長編記事の割合が大きいことを裏付けていますが、私の統計スキルはこれをさらに分析するには限界があります。

寄稿著者

私自身が記事を書くだけでなく、他の人からの記事も積極的に受け入れたいと考えています。これらの寄稿記事の多くは、Thoughtworksの同僚からのものですが、専門職内の他のつながりからのものもあります。このような記事の編集にはかなりの作業が必要な場合があり、時には自分で書くよりも作業が多いように感じられますが、私が持つプラットフォームを使用して、他の価値のある声を増幅するのに役立つことは重要だと考えています。

図11:2012年以降に公開された記事の散布図。12月のページビュー、著者の種類、記事の種類を示しています。

寄稿者が関与した9つの記事が、常緑リストに掲載されています。

パスクレジットビューランク
/articles/microservices.htmlジェームズ・ルイスとマーティン・ファウラー323911
/articles/itsNotJustStandingUp.htmlジェイソン・イップ596613
/articles/consumerDrivenContracts.htmlイアン・ロビンソン251338
/articles/enterpriseREST.htmlブランドン・バイヤーズ248840
/articles/testing-culture.htmlマイク・ブランド229842
/articles/evodb.htmlマーティン・ファウラーとプラモド・サダラージ219945
/articles/asyncJS.htmlピート・ホジソン171261
/articles/useOfMetrics.htmlパット・クア158065
/articles/agileFluency.htmlダイアナ・ラーセンとジェームズ・ショア144169

脚注

1: このデータには矛盾があります。Googleアナリティクスは、martinfowler.comとrefactoring.comを同じサイトと認識していますが、別々にレポートしています。その結果、この訪問者数には、refactoring.comにアクセスし、martinfowler.comにアクセスしなかった人は含まれていません。

2: blikiエントリの80%は1000語未満であり、1500語を超えるものはわずか12件です(464件のblikiエントリのうち)。

3: 来年への希望はあるかもしれません。トビー・クレムソンのマイクロサービステストに関するデッキは、最初の数か月(いずれも約14,000ビュー)で非常に堅調な結果を残しています。

重要な修正

2015年1月28日: Thoughtworksタウンホールメーリングリストに公開

2015年1月13日: Thoughtworksコンテンツ戦略グループに回覧