Top Banner
81

会社としてのリファレンスコードを描く @IVS CTO Night & Day 2015 Spring powered by AWS

Jul 30, 2015

Download

Technology

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: 会社としてのリファレンスコードを描く @IVS CTO Night & Day 2015 Spring powered by AWS

会社としてのリファレンスコードを描く株式会社ユーザベース

たけうち ひでゆき

Page 2: 会社としてのリファレンスコードを描く @IVS CTO Night & Day 2015 Spring powered by AWS

アジェンダ

自己&会社紹介CTO事件簿出自そして思想

会社としてのリファレンスコードを描く

まとめ

Page 3: 会社としてのリファレンスコードを描く @IVS CTO Night & Day 2015 Spring powered by AWS

会社&自己紹介

Page 4: 会社としてのリファレンスコードを描く @IVS CTO Night & Day 2015 Spring powered by AWS

会社紹介

株式会社ユーザベース

2008年4月創業従業員数: 約190名 (インターン等含む)

エンジニア数: 約40名日本、シンガポール、香港、上海 で展開

Page 5: 会社としてのリファレンスコードを描く @IVS CTO Night & Day 2015 Spring powered by AWS

自己紹介

たけうち ひでゆき@chimerast

イノベーション担当執行役員チーフテクノロジスト(=CTØ)好きなAWSサービスは

DynamoDB

Page 6: 会社としてのリファレンスコードを描く @IVS CTO Night & Day 2015 Spring powered by AWS

プロダクト紹介

Page 7: 会社としてのリファレンスコードを描く @IVS CTO Night & Day 2015 Spring powered by AWS

SPEEDA企業・業界分析プラットフォーム

全世界300万社超 / 550業界のデータ

100万件以上のM&A情報データ

2009年6月ローンチ

500社超に導入済み(国外含む)日本、シンガポール、香港、上海で展開

Page 8: 会社としてのリファレンスコードを描く @IVS CTO Night & Day 2015 Spring powered by AWS
Page 9: 会社としてのリファレンスコードを描く @IVS CTO Night & Day 2015 Spring powered by AWS
Page 10: 会社としてのリファレンスコードを描く @IVS CTO Night & Day 2015 Spring powered by AWS

NEWSPICKS経済ニュース共有サービス

独自コンテンツの展開

45万ユーザ

企業の経営者層やビジネスマンに人気

Page 11: 会社としてのリファレンスコードを描く @IVS CTO Night & Day 2015 Spring powered by AWS
Page 12: 会社としてのリファレンスコードを描く @IVS CTO Night & Day 2015 Spring powered by AWS
Page 13: 会社としてのリファレンスコードを描く @IVS CTO Night & Day 2015 Spring powered by AWS

アジェンダ

自己&会社紹介CTO事件簿出自そして思想

会社としてのリファレンスコードを描く

まとめ

Page 14: 会社としてのリファレンスコードを描く @IVS CTO Night & Day 2015 Spring powered by AWS

CTO事件簿

Page 15: 会社としてのリファレンスコードを描く @IVS CTO Night & Day 2015 Spring powered by AWS

恐怖!!!○○○○○完全消失事件

Page 16: 会社としてのリファレンスコードを描く @IVS CTO Night & Day 2015 Spring powered by AWS

・・・中略・・・

Page 17: 会社としてのリファレンスコードを描く @IVS CTO Night & Day 2015 Spring powered by AWS

復旧手順

1. 何はともあれ即座に対象を unmount

2. 手を休めてじっくり考える!!!3. read-only でマウント4. 今回は extundelete でファイルを復元

Page 18: 会社としてのリファレンスコードを描く @IVS CTO Night & Day 2015 Spring powered by AWS

重要なこと

あきらめない心

コンピューター少年的知識

Page 19: 会社としてのリファレンスコードを描く @IVS CTO Night & Day 2015 Spring powered by AWS

アジェンダ

自己&会社紹介CTO事件簿出自そして思想

会社としてのリファレンスコードを描く

まとめ

Page 20: 会社としてのリファレンスコードを描く @IVS CTO Night & Day 2015 Spring powered by AWS

自分のCTOとしての役割を話す前に

どんな道を歩んできたのか

経歴を少し話させてください

Page 21: 会社としてのリファレンスコードを描く @IVS CTO Night & Day 2015 Spring powered by AWS

出自

Page 22: 会社としてのリファレンスコードを描く @IVS CTO Night & Day 2015 Spring powered by AWS

個人事業主時代

学部生時代から個人事業主として

色々仕事を請け負う

iアプリ向けJava製Webブラウザとか、ネットワーク技術の開発支援とかいろいろ作る

Page 23: 会社としてのリファレンスコードを描く @IVS CTO Night & Day 2015 Spring powered by AWS

学んだこと

お金の事=クライアントの欲しいものを考えて開発すること

Page 24: 会社としてのリファレンスコードを描く @IVS CTO Night & Day 2015 Spring powered by AWS

起業1社目取締役CTO修士1年の時に情報系学生3人で起業特に作るものを決めていなかったので請負い

起業したもう1社が忙しくなりほかの2人に迷惑をかけたので抜ける

Page 25: 会社としてのリファレンスコードを描く @IVS CTO Night & Day 2015 Spring powered by AWS

学んだこと

ビジネスとはなんなのか分からない状態で

起業してみても何も出来ない

Page 26: 会社としてのリファレンスコードを描く @IVS CTO Night & Day 2015 Spring powered by AWS

起業2社目代表取締役CEO個人事業主時代に知り合った人 & 高校時代の友達と起業

・・・略・・・

Page 27: 会社としてのリファレンスコードを描く @IVS CTO Night & Day 2015 Spring powered by AWS

・・・中略・・・

Page 28: 会社としてのリファレンスコードを描く @IVS CTO Night & Day 2015 Spring powered by AWS

結果

体を壊してしまい継続させる意思を持てず

作っていたサービスも先が見えなかったので

会社を解散&精算

Page 29: 会社としてのリファレンスコードを描く @IVS CTO Night & Day 2015 Spring powered by AWS

学んだこと

自分一人で抱え込みすぎない

他の人がやってくれることはやってもらう

自分しか出来ないことをやる

簡単にほかの会社が参入できるようなもの

は作らない

Page 30: 会社としてのリファレンスコードを描く @IVS CTO Night & Day 2015 Spring powered by AWS

株式会社ユーザベース(2008年~)2008年 体を壊して倒れている中、弟の紹介でリハビリがてらSPEEDAを作る2011年 社員になりチーフテクノロジストの肩書きをもらう

2013年 イノベーション担当執行役員という謎の役職につけられNewsPicksを作る現在に至る

Page 31: 会社としてのリファレンスコードを描く @IVS CTO Night & Day 2015 Spring powered by AWS

自分の経験をもってメンバーに語る

Page 32: 会社としてのリファレンスコードを描く @IVS CTO Night & Day 2015 Spring powered by AWS

ユーザーの欲しいものを第一に考えて作る

ビジネスとはなんなのか分からない状態で

システムを作っても良いものは出来ない

他の人がやってくれることはやってもらう

なにが自社のサービスの特徴であり参入障壁になっているのかを考える

Page 33: 会社としてのリファレンスコードを描く @IVS CTO Night & Day 2015 Spring powered by AWS

愚者は経験によって学び

と言うけれども

経験したからこそ

語れることもある

Page 34: 会社としてのリファレンスコードを描く @IVS CTO Night & Day 2015 Spring powered by AWS

思想

Page 35: 会社としてのリファレンスコードを描く @IVS CTO Night & Day 2015 Spring powered by AWS

学生時代の研究対象

アスペクト指向プログラミング

Page 36: 会社としてのリファレンスコードを描く @IVS CTO Night & Day 2015 Spring powered by AWS

ASPECTJの功罪メソッド呼び出しやフィールドの読み書き等のイベントの前後に処理を差し込む

アスペクト指向という言葉を広めるのには非

常に貢献

ただしアスペクト指向の一つの側面の実装で

あってアスペクト指向そのものではない

Page 37: 会社としてのリファレンスコードを描く @IVS CTO Night & Day 2015 Spring powered by AWS

ASPECT-ORIENTEDPROGRAMMING

[KICZALES ECOOP'97]

Page 38: 会社としてのリファレンスコードを描く @IVS CTO Night & Day 2015 Spring powered by AWS

一つのプログラミングモデルだけで

実際のシステムを作ろうとすると、うまく表現出来ない部分が出てくる

Page 39: 会社としてのリファレンスコードを描く @IVS CTO Night & Day 2015 Spring powered by AWS

システムを複数の側面でとらえ、複数の異なるプログラミングモデルで書き

最後にそれらを織り込む(weave)プログラミング手法の提案

Page 40: 会社としてのリファレンスコードを描く @IVS CTO Night & Day 2015 Spring powered by AWS

得意な部分をそれぞれ担当し

それらを組み合わせてシステム全体を織り上げる

Page 41: 会社としてのリファレンスコードを描く @IVS CTO Night & Day 2015 Spring powered by AWS

会社とアスペクト指向

会社にも当然いろんな側面がある

いろいろな人の得意な事を組み合わせて、うまく織り上げればすばらしい会社が出来る

エンジニアはITが絡むことに関して万能だという考え方を否定する

Page 42: 会社としてのリファレンスコードを描く @IVS CTO Night & Day 2015 Spring powered by AWS

全然関係無い分野のことでも

応用すると世界が広がる

Page 43: 会社としてのリファレンスコードを描く @IVS CTO Night & Day 2015 Spring powered by AWS

アジェンダ

自己&会社紹介CTO事件簿出自そして思想

会社としてのリファレンスコードを描く

まとめ

Page 44: 会社としてのリファレンスコードを描く @IVS CTO Night & Day 2015 Spring powered by AWS

会社としてのリファレンスコードを描く

Page 45: 会社としてのリファレンスコードを描く @IVS CTO Night & Day 2015 Spring powered by AWS

自律的に動く組織

ユーザベースでは会社全体として、個々のチームが自律的に動く組織を目指す

チーム内チーム外で自律的にコミュニケーションを取り

事業を進めていく

Page 46: 会社としてのリファレンスコードを描く @IVS CTO Night & Day 2015 Spring powered by AWS

2014年人数が増えて自分自身がボトルネックになるように

なってしまったときに

これの重要性を特に痛感

Page 47: 会社としてのリファレンスコードを描く @IVS CTO Night & Day 2015 Spring powered by AWS

ユーザベースの事例

人のマネジメントをしないCTO

Page 48: 会社としてのリファレンスコードを描く @IVS CTO Night & Day 2015 Spring powered by AWS

ユーザベース

技術チームの経営体制

Page 49: 会社としてのリファレンスコードを描く @IVS CTO Night & Day 2015 Spring powered by AWS

CTØとしての仕事: 指針の提案技術者としての技術へのふれ方

技術者としてのビジネスへの関わり方

ビジネスサイドの技術者への関わり方

これとは別で下記もやっています

基盤技術開発 & 先端技術開発火消し

採用&広報

Page 50: 会社としてのリファレンスコードを描く @IVS CTO Night & Day 2015 Spring powered by AWS

リファレンスコード

Page 51: 会社としてのリファレンスコードを描く @IVS CTO Night & Day 2015 Spring powered by AWS

リファレンスコードの存在意義

何か議論をしようにも、ベースとなるものがなければ議論が出来ない

ある程度まともで、動くものでなければ議論の対象にならない

Page 52: 会社としてのリファレンスコードを描く @IVS CTO Night & Day 2015 Spring powered by AWS

リファレンスコードである意味

実装コードであってはならない

自律的に動くためにはあくまで全員で実装

コード(=文化)をつくっていく会社の実態に即したものにしなければなら

ない

よりよい実装コード、多様なやり方が出てきて欲しい

Page 53: 会社としてのリファレンスコードを描く @IVS CTO Night & Day 2015 Spring powered by AWS

リファレンスコードであるために

自分自身が体現して示す

口で言うだけでは説得力が無い

CTOが絶対であるという雰囲気を作らない俺たちがCTOを倒したみたいな雰囲気を作れると最高

Page 54: 会社としてのリファレンスコードを描く @IVS CTO Night & Day 2015 Spring powered by AWS
Page 55: 会社としてのリファレンスコードを描く @IVS CTO Night & Day 2015 Spring powered by AWS

エンジニアと戦うためにエンジニアリングでトップに立つ

Page 56: 会社としてのリファレンスコードを描く @IVS CTO Night & Day 2015 Spring powered by AWS

CTOだからこうでなくてはならないこれをしなくてはならないという

固定観念を捨てる

Page 57: 会社としてのリファレンスコードを描く @IVS CTO Night & Day 2015 Spring powered by AWS

エンジニアのリファレンスコード

Page 58: 会社としてのリファレンスコードを描く @IVS CTO Night & Day 2015 Spring powered by AWS

世界と技術の話

Page 59: 会社としてのリファレンスコードを描く @IVS CTO Night & Day 2015 Spring powered by AWS

指先だけで世界を変えられる

エンジニアが世界を変えられることを見せる

小さいことから大きなことまで

狭いエンジニアの世界だけで閉じない

世界に対して興味を持つ

Page 60: 会社としてのリファレンスコードを描く @IVS CTO Night & Day 2015 Spring powered by AWS

世界が先、技術は世界を実現するために使うもの

まず先に実現したい世界の事を考える

明確にどんな技術で作るかが決まる

システムを組まなくても世界を作る方法は沢

山あることを知る

最小限の労力で最大の効果を生み出すシス

テムを組む方法を知る

Page 61: 会社としてのリファレンスコードを描く @IVS CTO Night & Day 2015 Spring powered by AWS

技術とのつきあい方

Page 62: 会社としてのリファレンスコードを描く @IVS CTO Night & Day 2015 Spring powered by AWS

技術って何だろう

問題が先にあって

その解決策として技術が存在する

Page 63: 会社としてのリファレンスコードを描く @IVS CTO Night & Day 2015 Spring powered by AWS

新しい技術と向き合う

何かとエンジニアは新しいモノ好き

何の問題を解決しようとしているのか、それは今立ち向かっている問題と

同じものなのかよく見てから適用する

Page 64: 会社としてのリファレンスコードを描く @IVS CTO Night & Day 2015 Spring powered by AWS

世界の事を考えることでよりよい技術が生まれる

目的と解決策を明確にする

世界の事を考えることでちゃんと使ってもら

える技術が生まれる

それはたとえエンジニアのための技術であっ

ても同じ

Page 65: 会社としてのリファレンスコードを描く @IVS CTO Night & Day 2015 Spring powered by AWS

システムの作り方

Page 66: 会社としてのリファレンスコードを描く @IVS CTO Night & Day 2015 Spring powered by AWS

高速に試行錯誤をできるように

設計の正当性よりも、いかに簡単に変更が可能なように作るか

設計をしなくていいという話ではない

スタートアップであるための必要条件

Page 67: 会社としてのリファレンスコードを描く @IVS CTO Night & Day 2015 Spring powered by AWS

作らずにすむ方法はないか考える

エンジニアがコードを書くよりも、直接DBを叩いてもらう教育コストの方が安い場合も

ある

不要な車輪の再発明はしない

Page 68: 会社としてのリファレンスコードを描く @IVS CTO Night & Day 2015 Spring powered by AWS

ジェバンニ文化

Page 69: 会社としてのリファレンスコードを描く @IVS CTO Night & Day 2015 Spring powered by AWS

ジェバンニが一晩でやってくれました

Page 70: 会社としてのリファレンスコードを描く @IVS CTO Night & Day 2015 Spring powered by AWS

しかしジェバンニは「間に合う」と即答してくれました

Page 71: 会社としてのリファレンスコードを描く @IVS CTO Night & Day 2015 Spring powered by AWS

プロトタイピングを一晩で

技術プロトタイピング程度であれば、時間もかからないのでさっさとやる

ビジネスサイドへの技術力アピールにもなり、信頼関係が醸成される

昨日の夜一晩でやりましたと言うと良く効く

Page 72: 会社としてのリファレンスコードを描く @IVS CTO Night & Day 2015 Spring powered by AWS

簡単に業務改善が出来るものならさくっと作る

エンジニアが少し手を動かせば、劇的に改善するものも多い

「NicoNico SPEENYA」

Page 73: 会社としてのリファレンスコードを描く @IVS CTO Night & Day 2015 Spring powered by AWS

最近やってみていること

Page 74: 会社としてのリファレンスコードを描く @IVS CTO Night & Day 2015 Spring powered by AWS

社外のリソースも使って目的を達成する

目的を達成するために社内だけで

頑張ってやる必要はないのでは?

Page 75: 会社としてのリファレンスコードを描く @IVS CTO Night & Day 2015 Spring powered by AWS

オープンソースで会社を超えて解決する

明日のTech Pitchで話します

Page 76: 会社としてのリファレンスコードを描く @IVS CTO Night & Day 2015 Spring powered by AWS

まとめ

Page 77: 会社としてのリファレンスコードを描く @IVS CTO Night & Day 2015 Spring powered by AWS

マネジメントを極力しない

というやり方がある

自律分散協調型組織

Page 78: 会社としてのリファレンスコードを描く @IVS CTO Night & Day 2015 Spring powered by AWS

会社としての方向づけを達成するために

リファレンスコードを提案する

という方法がある

Page 79: 会社としてのリファレンスコードを描く @IVS CTO Night & Day 2015 Spring powered by AWS

完全に蛇足ですが

実際のプロダクトでも

社内のリファレンス実装を

よく書いてます

Page 80: 会社としてのリファレンスコードを描く @IVS CTO Night & Day 2015 Spring powered by AWS

提 供

ご静聴ありがとうございました

Page 81: 会社としてのリファレンスコードを描く @IVS CTO Night & Day 2015 Spring powered by AWS

QAなにかあれば