「ランサーズ Advent Calendar 2018 」23日目の記事です。
こんにちは
ランサーズでEngineering Managerをしてます神庭(godgarden)です
残すところ, 今年も数営業日。1年の振り返りをしている方も多いと思います.
個人的にも, ランサーズに戻ってきて1年とちょっとが経ちました.
友人の皆さんには生存報告と, はじめましての方には, ランサーズのエンジニアこんなことをやってるんだなという, いちエンジニアの事例として開発の雰囲気を知っていただければと思います.
- FYI: 僕がランサーズに再び戻ってきたわけ
10年目を迎えた 「Lancers」 の完全HTTPS化
復帰作 1品目は, lancers.jp の完全HTTPS化
テクニカルな要素こそあまりありませんでしたが, 10年運営される複雑化した仕様や, ユーザやSEOをはじめとした社内外のステークホルダーにも影響を出さず移行する役目でした.
体制
- エンジニア: 1名
- 期間: 1ヶ月前後
もし, まだ移行が完了していない方がいれば少しでも参考になれば嬉しいです.
分析基盤 / モニダリング環境の構築
ランサーズのKPIシステムの変移だけで, ひとつ記事が書けそうですが, それはまた別の機会にでも.
分析基盤のシステムアーキテクチャの設計から, モニタリング環境の土台を作ったりしてました.
体制
- 人員: エンジニア1名, PM(プロダクトマネージャー)1名
- 期間: いくつかのフェーズに区切って, 2ヶ月ほど
Before
- 依頼が集中しエンジニアは開発に, 企画者は企画に集中できなくなる
- クエリが人によって異なり結果の差異がでる
- データベース以外のデータが活用されていない
- お手製KPI管理システムはメンテナンスが滞っている
- 同じようなデータ調査を複数の人間がしている
- データ依頼部屋がカオス…(´;ω;`)
After
- Redash導入
- KPIや定常依頼系のクエリをダッシュボード化
- 分析用のViewの作成(ex. 流通, 報酬, 取引のペア etc…)
- アクセスログやアプリケーションログの構造化
- ログ収集やETLのシステム一新
- Athena導入
- BigQuery導入
- Digdag, embulk. fluentd, etc のETL環境
効能
以前に比べ, データ出し依頼業務も少なくなり「とりあえずRedashを見ればデータがある」がといったデータの民主化した状態は作ることが出来ました.
先日Redashのクエリを見ると, 一時的なモノも含めると 1,000を超えるクエリが登録され活用されていました.
学び
組織として, もっと早くデータに関する仕組みを整えることが出来ていたら…という点は悔やまれます.(スタートアップ期から, お手製のKPIダッシュボードは存在していましたが組織の成長に合わせて, データ環境も育てていくべきでした)
また, 同じようなプロジェクトを考えているエンジニアの方にアドバイスをしておくと,
エンジニアだけでやると結構な確率で死にます!
途中から, PMとタッグを組めたのは大きかったです(ありがとう Uさん!)
データ基盤は自社のステージ, チームとアーキテクチャを意識して設計し育てていくことが大切です.
運用に携わるエンジニアは, ただの運用者にならずデータ基盤を育てていきましょう(コストセンターからプロフィットセンターへ)
参考
- ランサーズの分析基盤(capybara)と運用について紹介
- Athenaを使ってS3のログを検索できるようにしたら運用コストが改善されたお話
- Google Analytics(GA)のデータをembulkを使ってBigQueryに転送させる方法
ランサーズを支える会計システム基盤
全社横断のタスクフォースプロジェクトに助っ人参加。
詳細は, 22, 24日担当の @sayakob と@autumnlike の記事をご覧ください!
- 「全社横断!プロジェクトマネージャーとしてタスクフォースに入隊した話」
- 「ランサーズの複雑な仕組みと向き合い、会計システムをリプレイスした話」(後でリンク追加)
エンジニア組織
エンジニアの最高な福利厚生は, 好きなプロダクトを 優秀なエンジニアと働けて自己成長できることだと自分は思っています.
ランサーズには, 最高な仲間が多くいますが, 真面目な気質もあってか社内に留まっている外部に伝えきれていない魅力も多くあったり, 自分の凄さに気づけていないエンジニアも一定いたりしました.
社外のエンジニアと接点を増やすことで今の自分達の立ち位置を知って, 何かキッカケを少しでも作りたいと考え,試行錯誤してました.
- 採用面談 / 面接にとにかく出る
- スカウト
- 登壇イベントの企画,運営
- エンジニアブログ推進大臣
- ランサーズ開発ランチ(Lunchers)の企画,運営
- 採用要件の定義(ジョブディスクリプションから, 求人作成, ライター業など)
- 社内のエンジニアロールの策定とジョブディスクリプション, ミッション定義(リードエンジニア制, EM)
学びの機会。ランサーズ開発ランチ(Lunchers)
月に1, 2回ほど社内開発部メンバーと(エンジニア、デザイナー、PM)社外からゲストをお招きして、お弁当を食べながらカジュアルに交流をする開発ランチを企画/運営していました.
きっかけで, 興味を持ってくれた入社してくれた仲間や, 社内の開発に取り入れたりと.
登壇していただいたご友人や, ブログを書いてくれたり参加してくれた社内外のメンバーにも感謝です.
- ランサーズ開発ランチ(Lunchers)はじめました。〜はてな Mackerel CRE 編〜
- ランサーズ開発ランチ 〜オミカレCTO そーだい氏〜
- ランサーズ開発ランチ ~ねこもり高橋さん PHPバージョンアップ編~
- ランサーズ開発ランチ 〜海外で働くクリエイターのリアル
- ランサーズ開発ランチ 〜PHPカンファレンス福岡2018予行練習編〜
- ランサーズ開発ランチ ~kakakakakkuさんによるzenhub & モブプログラミングによるプロジェクトリード~
- ランサーズ開発ランチ ~Kyash社でのプロダクト開発プロセス~
- コネヒトさんとのランチLT大会
- ランサーズ開発ランチにお邪魔してきた!
エンジニア採用
当時, 社内の事情や, 過去の経緯も重なりエンジニア採用に関してダイレクト・リクルーティングに完全振り切っていました.
正直, もっとうまい手があったと振り返ると感じるところ多くありますが, やってみて分かる多くの学びもありました.(書ききれないのでランチでも!)
お世話になった方のTwitterからの引用 になりますが, 以下に尽きると思います. 自分が決断した時もそうでした.
いい人を採用したいならやることは1つ。
声をかけ続ける。
これに尽きる。
心変わりのタイミングなんていつ来るかわからない。本人すら予測できない事も多い。
「一緒に働きたい」と心折れずにどれだけ伝え続けられるか。
その人が魅力か?ビジネスは成長するのか?仲間は?は、もっと後の話。
幸いにも, 活動の過程での出会いもあり, フリーランスCMOに許 直人氏が就任 や年明けからも優秀な仲間のJOINが決まって, 諦めかけた頃に結果はポツポツとついてくるので, 諦めないことが秘訣だなと感じました.
昨日より明日をもっとよくするをモットーに頑張りましょう.
とある新規事業の価値検証
とある新規プロダクトの価値検証を社内外のメンバーを含めた混合チームの開発リードをしてました.
詳細は, 現時点ではあまり多くは語れませんが, 落ち着いたタイミングでブログを書こうと思います.
技術スタックだけ書くと, 適材適所にに技術選定し新しいことにも取り組んでいます.
- サーバーサイド: Go
- フロントエンド: React
- インフラ: AWS Fargate
- ツール: Prott, Zeplin
ランサーズといえば, PHPのイメージが強いですが, 色々な技術スタックを実は扱ってます.
最後に
駆け足になりましたが, 思い出深いプロジェクトに沿ってランサーズのエンジニア生活の1年を振り返りました.
変えきれなかったり力不足を感じることも多くありますが, 間違いなく変化をつけられたこともあるので, 引き継ぎやっていき精神で頑張ります.
最後に, 2019年から新しい仲間も加わり, 色んなプロジェクトも動き出すので, すこしでも興味を持ってくれた方や, 関係なくもっと裏話聞きたいというお優しい方がいれば気軽に 「話を聞きに行きたいボタン」 やTwitter などで反応ください. ランチでも参りましょう
それでは良いお年を. あでゅ