Slide 1

Slide 1 text

日経電子版 開発内製化の取り組み 2015/08/31 デジタル編成局 鈴木陽介

Slide 2

Slide 2 text

自己紹介 ● 鈴木陽介 ● 日本経済新聞社デジタル編成局 ● 2001年入社 ● NIKKEINETのコンテンツ運用、産業部記者、 ネット向けコラムの編集者などを経て、2009年 ごろから電子版の企画・開発 ● Pythonを主に、JavaScript(Coffee)、Goなど を仕事・プライベートで。Pebbleでも遊んでいる www.nikkei.com | 日経電子版

Slide 3

Slide 3 text

アプリ内製化の話がバズりました ● 特に新聞業界!の反響は大きかった www.nikkei.com | 日経電子版 s.nikkei.com/150609

Slide 4

Slide 4 text

日本経済新聞 www.nikkei.com | 日経電子版 ● 1876年12月に中外物価 新報として創刊 ● 2016年で140周年 ● 1000人以上の記者・編集 者 ↑一般の人の日経のイメージ

Slide 5

Slide 5 text

日経電子版について ● 40万人を超える有料会員 ● 有料ニュースサービスで世界4位 ● iPhone/Androidのモバイルサービスを強化 ● サービス系の開発部隊は40人ぐらい www.nikkei.com | 日経電子版

Slide 6

Slide 6 text

日経のシステム開発の歴史 ● 1972年 世界初の新聞制作システムを開発 ● 1984年 データベースサービス「日経テレコン」 開始 ● 1996年 NIKKEINET開始 ● 2010年 日経電子版創刊 www.nikkei.com | 日経電子版

Slide 7

Slide 7 text

NIKKEINET時代はけっこう内製してた ● 英文記者出身の人がVBで作ったCMSがけっこ う使われていた ● Perlでアクセスログ集計・解析ツールを開発 ● ColdFusionでサービス用のサーバーアプリ ケーション ○ PHPみたいなやつ。割とパフォーマンスが良かった → 属人的な開発体制ということもあり、徐々に外注 に変わっていった www.nikkei.com | 日経電子版

Slide 8

Slide 8 text

日経電子版の開発(創刊ごろまで) ● 超大手SIerがたくさん入って開発 ● 性能(レスポンス)はいい ● 変更コスト増大 ○ テストは基本手動、テストの工数で予算オーバーになっ て企画が実現できないことも www.nikkei.com | 日経電子版

Slide 9

Slide 9 text

内製化への流れ ● 2010年当時 ● ちょっとしたことにも割と手間と時間とお金がかか る構造 ● 企画を上げても実現されるのは少しのように思え る このままでいいのか?と素人的に思った (色々理由があったけど、この時は知らず) www.nikkei.com | 日経電子版

Slide 10

Slide 10 text

ほぼ勝手に2人で開発を始めてみた ● 最初はPHP+Ruby+MySQLで社内サーバー に作った ○ 2010年の夏頃 ○ 性能はイマイチ ● PC版の一部のページを実装 ○ 1か月半ぐらい ○ UIは変えてみた 結局このバージョンはお蔵入り。。 www.nikkei.com | 日経電子版

Slide 11

Slide 11 text

スマホブラウザー版(β)を開発 ● お蔵入りしたバージョンは存 在意義がイマイチだった ● 2011年当時スマホのブラウ ザー版がなかったのでそれを 作ってみることに ● GAEを使ってインフラ含めて 2人だけで作った ● HTML5の機能をてんこ盛り にしたエッジなサービスがで きた www.nikkei.com | 日経電子版

Slide 12

Slide 12 text

内製したサービスが正式版に ● 2012年にWindows8アプリを内製 ● 2013年にインフラ、フロントともに作り直したスマ ホブラウザー版(電子版モバイル)を公開 ○ フロントのJavaScriptは当時の新人が内製した ○ 今は別の新人が開発 ● 請負型ではなく、常駐のSEさんが社内で開発す るスタイルも増えてきた ● メインストリームじゃないけど、内製の雰囲気は 出てきた www.nikkei.com | 日経電子版

Slide 13

Slide 13 text

もっとモダンな開発がしたい! www.nikkei.com | 日経電子版 ● 内製化をより進めたい ● 2013年12月頃にnaoyaさんにと ある勉強会で技術顧問をお願いし たらOK! ● これでバリバリモダンな開発してい くぜ、と大船に乗ったような気持ち ではあった。。。

Slide 14

Slide 14 text

しかし、技術の問題じゃなかった www.nikkei.com | 日経電子版 ● まず着手したのはチーム体制の変更 ○ 目がつぶれそうなエクセルのアサイン表があった ○ チームをまたいだ兼務を極力解消する ● 内製の範囲を絞る ○ まずはフロントを中心に ● カイゼンチームを作って恒常的に活動 ● 情報共有する 僕に顧問をお願いしてくる会社、だい たいは技術の問題じゃないんですよ ね (rebuild.fm ep 105より)

Slide 15

Slide 15 text

技術の問題じゃなかった (2) www.nikkei.com | 日経電子版 ● 打ち合わせのアジェンダを ちゃんと時間かけて作る ● 打ち合わせの人数は絞る ● メンバーに自分事感が足りな い 等々、基本的なことでけっこう怒 られました。。。 内部にいると惰性になりやすい ことなのでありがたい

Slide 16

Slide 16 text

カイゼンチームの取り組んでいる課題 ● 情報共有 ● エンジニア採用 ● GitHub & Pull Request導入 ● デプロイ自動化 ● 自動テスト www.nikkei.com | 日経電子版 内部で課題に取り組みつつ、都度テーマを決めて naoyaさんとディスカッション

Slide 17

Slide 17 text

コミュニケーションツールの導入 ● Slack ○ 社内外のメンバー含めて270人超のチーム ● Qiita:Team ○ 社内メンバー100人超が参加 ○ 会議で「Qiitaに書いてありましたが」と言われることも増 えてきた ○ 累計1000投稿を突破! 最初はなかなか使ってもらえない → 粘り強く浸透させた 「日経電子版アプリ内製開発の舞台裏」( s.nikkei.com/150609 )に詳細 www.nikkei.com | 日経電子版

Slide 18

Slide 18 text

合宿を開始 ● 3〜4か月に一度、合宿を開催 ● ロードマップなどを共有 www.nikkei.com | 日経電子版

Slide 19

Slide 19 text

技術のほうも進んでいる ● GitHub ○ 内製を進めているチーム、フロントまわりのチームの移行 はほぼ完了 ○ モバイルアプリ、インフラのAnsible Playbook、Django でのAPI開発はPull Requestで開発 ○ デザイナーもプルリクしている ● CIと自動テスト ○ GitHubへのpushでCircleCIと連動 ○ モバイルアプリのユニット&e2eテスト ○ インフラのserverspec実行 www.nikkei.com | 日経電子版

Slide 20

Slide 20 text

採用ブランディング ● 勉強会で話す ○ ↑イマココ ○ iOSアプリの内製化の話 ● 勉強会の会場ホスト ○ Gocon ○ Rebuild Meetup ○ Ansible Meetup ● ハッカソン ○ クックパッドさんと共同開催 www.nikkei.com | 日経電子版

Slide 21

Slide 21 text

www.nikkei.com | 日経電子版 振り返って大事だったこと

Slide 22

Slide 22 text

● ビジョンをかかげ、そこに向かってチームを変革 する ○ 特に古い組織は動きが遅いし、邪魔も入りやすい ○ でも、みんな効率悪いことをやりたいと思っているわけで はない ○ 熱意を持って、理想に向かってがんばる ● 考え方はいろいろ違う、繰り返し情報発信する ○ Qiitaとかでいろいろ書くとちゃんと読んでくれる人もい る、建設的なコメントも多い ○ 技術的にモダンとかも大事だけど、それをみんなのため にやることが大事 www.nikkei.com | 日経電子版 熱意とビジョン

Slide 23

Slide 23 text

● いつまでも考えているばかりでは進まない ○ 他社事例とかは集めていてもそれだけでは進まない ○ どうしたらできる?じゃなくてやる ● まずは手を動かして実績を作ることも重要 ○ ものを作って内製できることを証明した ○ 2人いれば割とできる ○ コードは汚くてもまずはできることを見せる ■ 社内体制として内製できるようになってコードレビュー を導入 ● あんまり細かい事情を知らないからこそ、できる こともある www.nikkei.com | 日経電子版 とにかくやる

Slide 24

Slide 24 text

● 目的と手段は逆転しがち ● PDCAサイクルを高速に回すことができるのが内 製の強み ○ 外部に発注しているとこれが難しい ○ 仕様検討→見積もり→発注手続き等々 ○ ユーザーからの意見がダイレクトに来るフロントの内製化 を優先 ● 社内にノウハウが残る ● 取引コストを下げる ○ 無駄な打ち合わせを減らす ○ 昼間の打ち合わせが終わってようやく夕方から作業・・・ みたいのをなくす www.nikkei.com | 日経電子版 なぜ内製するかきちんと説明する(できる)

Slide 25

Slide 25 text

● ノウハウがないのに自力で全部は無理 ○ でも、まるっと外注だと社員にノウハウが残らない ● naoyaさん「外部の人の意見は聞いてくれる」( rebuild.fm ep 105より) ○ 実際、的を得ている意見ばかりだし、自分たちが無意識 的にやってしまっていたことを修正できる ● UIや技術についても ○ アプリのUIについてはfladdictさん ○ Pythonの開発については hirokikyさん ○ その他、過去にもいくつかメンター役を呼んでいる www.nikkei.com | 日経電子版 メンターを呼ぶ

Slide 26

Slide 26 text

● フロントからやる ○ 特にモバイル系 ● 新しいところからやる ○ 新API群 ● 作りなおすところからやる ○ インフラのAWS移行時にAnsibleを導入 ● 採用を強化 ○ 内製化にはやはり優秀なエンジニアが必要 ○ エンジニア向けのブランドイメージを改善する ● 上層部とイメージを共有 www.nikkei.com | 日経電子版 とは言っても、まだ道半ば

Slide 27

Slide 27 text

日経電子版(日経本社)は エンジニアを採用中 気楽に社内見学でもOK! [email protected] まで 学生の方は hack.nikkei.com からインターンに 応募してください www.nikkei.com | 日経電子版 www.nikkei.com | 日経電子版

Slide 28

Slide 28 text

www.nikkei.com | 日経電子版 日経電子版チームのいいところは? 雰囲気がゆるいところ 技術に詳しい人を呼んで指 導を受けることができる 2年目 大企業でありながらWEB ベンチャーのような開発が できます 新人 元アルバイト