先日開催された YAPC::Kansai 2017 OSAKAで、『はてなシステムの考古学』というタイトルで発表しました。
スライド中のリンクが効かないのであまり意味がないのですが、一応 Speakerdeck にも上げてあります: はてなシステムの考古学 / History of development at Hatena // Speaker Deck
はてなの開発の歴史を Perl エンジニア視点からふり返るというもので、どちらかというと『はてなの開発の歴史学』とでも読んだほうがしっくりくる内容になりました。
具体的な成果物を伴わない話をするのは苦手なほうだと思っていましたが、今回はあえてこんな内容でトークすることになりました。その背景には、いつの間にか自分が社内でも古参のエンジニアになっていたこと、また、事業や組織の拡大とともに開発のあり方が多様化してきて、それまで暗黙的に共有されてきたものに頼ることが困難になってきた感覚があったのだと思います。
なぜ歴史を語るのか
発表の参考にした『歴史とは何か』より、
歴史とは歴史家と事実との間の相互作用の不断の過程であり、現在と過去との間の尽きることを知らぬ対話なのであります。
と発表中に引用したとおり、歴史とは過去を語るだけでなく、過去のほうからも現在(と自分自身)を語ることでもあります。たとえばスライドでいうところの近代以降、フレームワークは時代の空気とでも呼べるものになったわけですが、普通にしていては明らかではないその実体に、歴史を通じて光を当てることができるのではないかという試みでもありました。
また同書より、
歴史というのは、獲得された技術が世代から世代へと伝達されて行くことを通じての進歩ということなのです。
歴史における進歩は、[…]獲得された資産の伝達を基礎とすること、[…]この資産は、物質的所有物と、自分の環境を支配し変更し利用する能力との両方を含んでいます。
……ということで、継承されてきた技術や思想、という観点から現在の自分たちの開発の現状を省みることで、新たに入社した人たちにもなぜ今がそうあり、未来にどうなっていくべきなのかということが、点ではなく線のようにイメージできるのではないかと考えたのでした。
準備にあたっては、エンジニアたちの過去の発表資料が当時を語るものとして非常に役に立ちました。少し前までは、はてなのエンジニアの大きな発表機会といえば YAPC::Asia で、京都から何人も出張するのでお祭り感があった(今もそうだけど)ものでしたが、つい最近であれば try! Swift や DroidKaigi ほか、それぞれの言語や技術分野コミュニティの大きな集まりにエンジニアたちが積極的に顔を出していて、あるべき姿に多様化してきているのだなと感じます。
そして振り返ってみるとこういう外部への発表こそが、自分たちの内に暗黙知として蓄えられていたものを整理する、SECIモデルでいうところの形式知への表出化の機会でもあったのかな、とも思います(この発表も、それがないとここまでちゃんと考えなかっただろうということも含めて)。
- 作者: E.H.カー,E.H. Carr,清水幾太郎
- 出版社/メーカー: 岩波書店
- 発売日: 1962/03/20
- メディア: 新書
- 購入: 14人 クリック: 227回
- この商品を含むブログ (116件) を見る
- 作者: 野中郁次郎,竹内弘高,梅本勝博
- 出版社/メーカー: 東洋経済新報社
- 発売日: 1996/03/01
- メディア: 単行本
- 購入: 13人 クリック: 103回
- この商品を含むブログ (68件) を見る
リンク集
スライド中で言及した・作成の参考にした資料へのリンクを記しておきます。
- スパム対策のための認証を提供するシステム「はてラボ人間性センター」をリリースし、はてな匿名ダイアリーなどのラボサービスに組み込みました - Hatelabo Developer Blog
- 会社情報 - 株式会社はてな
- 沿革 - 株式会社はてな
- サービス一覧 - 株式会社はてな
- 採用情報 - 株式会社はてな
- はてなCTOの伊藤直也氏が語る「はてな開発の裏側」
- Hatena-Camp // Speaker Deck
- 「へんな会社」のつくり方 (NT2X)
- はてなウェブサービス
- はてな技術発表会日記 - 機能変更、お知らせなど
- はてな、京都に上ル 4月に本社を移転 − @IT
- id:jkondoが聞く、はてなブックマークリニューアルの舞台裏
- はてなサマーインターン2016 レポートサイト
- ぼくのかんがえたさいきょうのうぇぶあぷりけーしょんふれーむわーく - YAPC Asia 2011
- Perlの上にも三年 〜 ずっとイケてるサービスを作り続ける技術 〜 // Speaker Deck
- Hatena Blog Development Flow // Speaker Deck
- はてなアプリケーションエンジニア座談会 - 株式会社はてな
- はてなブログチームの開発フローとGitHub // Speaker Deck
- Workflow at Hatena Mackerel Team // Speaker Deck
- git-pr-release | RubyGems.org | your community gem host
- GitHub - motemen/prchecklist: WIP
- Scala In Perl Company // Speaker Deck
- はてな社内で開催したDDD勉強会の様子をご紹介します - Hatena Developer Blog
- はてなブックマーク in Scala