鶏口牛後

神奈川の自宅でソフトウェア開発をする一人親方のブログです。

スーパーエンジニア Richardさん来日 meetup に参加してきた

はじめに

@kseta19さんからのお誘いで、『スーパーエンジニア Richardさん来日 meetup』なるものに参加してきました。

f:id:imunew:20170730233634j:plain

リチャードさん(@mackstar)のプレゼンテーション

ざっとプロフィールはこんな感じ。

f:id:imunew:20170730233716j:plain

  • プレゼンテーションも質疑応答も日本語、違和感なし、すごい
  • BBC時代はフリーランス
  • Skyではプリンシパルエンジニア
  • コードを書くのは1週間のうち、10時間から20時間ほど
  • Skyで働く傍、個人的にスタートアップを手伝っていて、そこではElixirを使っている
  • Skyは1989年から続くイギリス最大の通信キャリア

Skyでの取り組み

  • 既存システムをメッセージ駆動開発+マイクロサービスで再構築
  • REST APIはプル型、メッセージングはプッシュ型
  • 様々なサービスがREST APIで同じ情報を取りにいくので無駄が多かった
  • ログインした段階で、注文サービスにメッセージを送り、データを読み込んでおく(キャッシュする)といった使い方
  • メッセージングには、RabbitMQやApache Kafkaを利用
  • Mobile側はGraphQLを利用

業務委託(アウトソーシング)について

  • Skyのチームの中にも業務委託のエンジニアはいる
  • 業務委託のエンジニアは高い(日給800ポンド(約11万)の人もいるとか)
  • 基本常駐(オンサイト)してもらっている
  • オンサイトにしているのは、チーム内のコミュニケーションを重視するため
  • チームに合わないと判断した場合は、2日で契約終了にしたこともある

チームマネジメント

モバイル開発について

  • iOSAndroidで2重に開発するのは、本当にコストが高いと思う
  • React Nativeには興味があるが、Webでもいいんじゃなかと思う

フロントエンド開発について

  • Skyでは、Webのフロントエンドは、必ずReactで開発することにしている

テストについて

  • 業務委託の場合は、テスト書かないエンジニアもいるが、社員採用でテスト書いたことがない人はそれだけで不採用にしている

Scalaについて

  • Scalaはいろんな書き方、実装パターンがあって読んでもすぐには分からないので辛い
  • Scalaエンジニアは、オブジェクト指向派と関数型プログラミング派で派閥がある
  • 関数型プログラミング派もさらに2つの大きな派閥があって、とにかくまとまらない
  • PHPから2年かけてScalaに移行した日本の会社があるという話を聞いて、『それは意味ないんじゃない。PHPでできないことほとんどないでしょ。』

機会学習について

  • どのような仕組みで動いているか学ぶことは大事だとは思う
  • 今、頑張って独自の何かを作ったとしても、2年後には使い物にならない、もしくはもっといいものが登場しているのではないか
  • 今までも様々なソフトウェアを組み合わせて開発してきたのだから、機械学習も便利なツールとして、使うべきところで使えばいい

いいエンジニアとは

  • ひとりで全部やらずにコミュニケーションをとりながらチームを育てることができるエンジニア

かなり個人的な所感と勝手に確信した方向性

@koriyamさんもおっしゃっていたが、まるで数千人規模のカンファレンスの基調講演でも聞いているようでした。 この機会に感謝。 で、ここからは、最近の自分の仕事環境をふまえて、かなり個人的な所感。

文化とか言わないと思っていた

  • 開発現場が抱えている問題は日英でそんなに差がないと感じた
  • クラウドを嫌がる企業があるとか、好きな言語が使えないから辞めていくエンジニアがいるとか
  • 正直、もっと人間関係はドライだと妄想していた
  • 繰り返し、文化が大事だと何度もおっしゃっていたのが印象的
  • オンサイトでのコミュニケーションを重視しているのも正直、意外だった

自分の近況に照らして考えたこと

それでもリモートワークにこだわる

  • チームワークにはコミュニケーションが重要なのは理解している
  • それでもリモートワークを自らの制約として課していく
  • 業務や利用者の動きが想像しにくいものは、リモートワーク向いてない気がする

仕事の中で成長できるように

  • 色々な現場で様々な課題の解決に取り組むのが自分の性格にあっている気がする
  • 一つの企業にフルコミットしないことを制約として課していく
  • 会社員に戻る選択肢も切る

できることを増やす

  • 開発現場には、まだまだテストコードがないことも多いので、テスト自動化おじさんとして引き続きスキルと経験を積む
  • 自然と丸っと投げられることが多い=フルスタックが求められる
  • 仕事に直接関係ない技術を学ぶ(React勉強しよう、Elixir勉強しよう…)
  • 勉強する時間を作る
  • 法人化して軌道に乗ったら、社員を育ててどんどん移譲していきたい

おわりに

今回、懇親会は参加しませんでした。 前日に、@ttskchさん@okapon_ponさんとバンカラ行って十分楽しんだのと、月曜日に備えて早めに帰りました。 日曜日の夜に都内で懇親会はつらいよ。

ban-kara.com

ではでは。