空飛ぶ羊

勉強したり登壇したり勉強会参加したり

#eventdots 「明日から真似したい!スタートアップベンチャーを支えるテクノロジー 〜サービスづくりや自動化について〜」に参加したよ

昨日は渋谷のdots.でやった
「明日から真似したい!スタートアップベンチャーを支えるテクノロジー 〜サービスづくりや自動化について〜」
に参加してきた。

eventdots.jp

togetter.com

感想

0→1状態を終えたばかりのスタートアップによるセッションはすごく新鮮だった。
@ngsさんは開発インフラの作り込みについて丁寧に説明してらっしゃったし、
@shinisuzさんはスピードより品質が大事と言うのが印象的だったし、
@adamrockerさんはSlack bot 最強な印象と、オフィスの変遷が面白かった。
参加者の中にスタートアップの経営者が多かった印象。もっと話したかった。

各セッションについて

少人数で複数プロダクトを開発する技術的な工夫たち - 長瀬 敦史さん(@ngs)

  • 発表資料
  • その日のタスクは毎朝のdaily meatingで決める。

    大切にしていること

  • 製品の問題と解決策について、日々議論できているか
  • 自分たちが、楽しんで仕事できているか
  • 困っている人を助けているか
  • 悩んだら、抱え込まずに、すぐ人に相談できるか

  • 暗黙知を作らない、協働のための技術基盤」製品開発の前に時間をかけて作って、その後の製品開発をスムーズに行っていく

    採択している技術

  • Production/Frontend→Docker/nginx/AWS 。WebPackはS3にアップ
  • Backend APIScalaで書いてJava VM上でビルド→Docker→AWS
  • dockerやAWSの操作はHubotにお願いしてる。以前はREADMEに書いてたけどそれを書く必要・読む必要がなくなって新規参画者も簡単に入れるよ! https://t.co/8Va76bDIl2
  • インフラはAWS上。TERAFORMで管理している。https://t.co/KPPbh6ZAmN
  • TERAFORMで管理すればインフラエンジニアしかわからないインフラの設定というのがなくて便利! CIとの付き合い方は慎重に。間違えてインスタンス消しちゃった!みたいなこともあった・・・今は手作業でやっています
  • iOSのテスト・ビルドの自動化は本番/Local/Staging環境を用意している。ビルドしてs3にあげて、Slackで通知。
  • iOS向けCIのソースはこちら https://t.co/XjpyeLf4g6
  • oneteamの規模でもQAがいるのか・・・さらっと話してたけど衝撃。
  • 採用前にone day intern(と言いつつ半日)を行っている。そうするとミスマッチしなくなってきた。

参考URL

サービスと共に成長するチームとアーキテクチャ - 鈴木 真一郎さん(@shinisuz)

  • 最近民泊始めたSPACEMARKET
  • 組織構成はプロダクトチーム(8名)と営業・広報チームの二つ
  • プロダクトチームが大切にしていること「プロダクトのクオリティ」クオリティ>=スピード
  • How?→エンジニアとデザイナーが密接に協働する文化
  • 全部GitHubフローで回している。フォトショのファイルをプルリク→in vision(ツール)上でレビュー→指摘事項をSlackで共有
  • CTOがデザインの意図を理解した上でエンジニアに引き継ぐことができる。橋渡し役をCTOがやることで、意思決定のスピードが速くなるし曖昧さがなくなって仕様の確度が向上する

    良いプロダクト3か条

  • 直感的なUI/UX
  • 安定して動く(SLA)
  • 創り手が自信を持ってリリースできるか

  • 3カ条を浸透させるためにやっていること→職種で固まらない席割り。3ヶ月ごとにチーム合宿(SPACEMARKET使用)→dogfooding兼集中して意識合わせやアプリのUI/実装集中検討 https://t.co/ARvFsqnqym

  • 「合宿のアイスブレイク=チームビルディング。」ディレクターが一番画力ないの意外www

技術の採択

Ph.1サービス開始

  • Webサーバ(Rails)とDB(MySQL)のモノシリックな構成

    Ph2. アプリ提供

    microservice移行。WebサービスはPh1.同様モノシリックな構成。アプリはAPIサーバ(Rails)とDB(Web側と同じ)

    Ph3.WebのSPA化

    React.jsを採用。WebもAPI経由でDB操作するようになった。フロントエンド/backendの切り分けができるようになった。技術的負債を返しつつ攻めの技術採択ができるようになった!(ここまで2年かかった)

  • Slack/Trello/AWS/TEAMDOCS/Google Apps for work/in vision/zendesk/pusher/parse あたりを使っています

技術指向スタートアップを支えるテクノロジーと仕組み - 足立 昌彦さん(@adamrocker)

  • Rinkak作ってる会社。
  • 3Dプリンタが大好きなドイツ人がジョインした話は面白かった(特に日本が好きだからではなく、サービスに惹かれてジョインした)

    カブクオフィスの変遷

  • 立ち上げ期
  • 従業員:2〜3名
  • オフィス:コワーキングスペース3坪くらい
  • 初期
  • 従業員:4〜9名
  • オフィス:コワーキングスペース7.5坪くらい
  • 加速期
  • 従業員:10〜19名
  • 賃貸オフィス40坪くらい(←now!!)
  • 来週から
  • 従業員:20〜40名
  • 賃貸オフィス90坪くらい@新宿

    Joel Testの項目に対応した技術な話

  • Joel Testのスコアで開発のしやすさを測る
  • プルリクのコツ「自分のことは棚に上げ理想論を振りかざすことを推奨する」
  • クラウド:python, backend:c++, frontend:JS
  • ビルド管理はC++で特に大事。Dockerでビルド環境統一する問題は解決!JS周りはgulpとか。
  • 基本GCP使ってるよ!Datastoreはkey, value系の使ってる
  • バグトラッキング→Issue登録面倒くせぇのでSlackbotよろしてる。(Slack→Google App Script→BitBucket)
  • 書く前にバグ修正しよう!→お客様が離れる・業務に影響するレベルのバグは即時対応
  • TODO管理はやっぱりslack bot! /todo でadd done listコマンドも突っ込めばいちいちgoogle spread sheet開かなくていい
  • 仕様書はコアな部分だけ仕様書しっかり書いている。 外向けはgoogle documentに書いてるからすぐ共有できて便利!
  • 賑やかな環境なのでチームの効率を優先すべく、プログラマ単体の効率が犠牲になっているかも。楽しいよ!
  • Wi-FiNURO超オススメ
  • スタートアップはトライアスロン!食べながらいろいろ(走ったり・泳いだり・自転車とか)やる!

その他質問タイム

Q「one teamの方、dockerのwas使うときにデプロイするのは何使ってますか?」

  • A「docker habにpush->それを書き込んだJSONで突っ込む。ビルドごとにdocker habを立てる。」

Q「技術採択の判断基準は?」

  • A:カブク「楽しいか楽しくないか。最近tutolialが充実してるからそれでまずは触ってみる」
  • A:spacemarket「1か月くらいで趣味プロダクト作ってしっくりくるか」
  • A:oneteam「肌感覚&技術の運営がこれからも開発しそうか」

Q「エンジニアは何を求めて御社へ入ってる?」

  • A:oneteam「知り合いづたい。手伝ってよ!って感じ」
  • A:space「初期メンは前職の後輩。それ以降は大企業出身者に訴求してる。全部できるよ!」
  • A:カブク「知り合いづて。深く話せる→採用サイト/Wantedly」