昨年の2017年 ~> 2018年に向けてに続いて引き続き。
今年は元から海外メンバ、英語の負荷が上がることからそこ以外はあまり活動を積極的にしない感じでした。結果的に、ある程度英語圏における活動の幅が広がる種まきみたいな年でした。
2018年
会社関係
ちょうどこの12月から、HeadSpinというところで働き始めることにしました。米国のベンチャーです。”Senior Software Engineer, Device Automation“として、開発のコアメンバに参画します。
会社自体は最近の資金調達の記事や、The Rising Stars of QA: Six New Vendors to Watch in 2019とかに名前が載っている、モバイルアプリの性能テストの環境を提供するところです。Appiumの開発やCookpadにおけるテスト自動化の時に感じた課題感を解決/改善するところに共感し、一緒に活動することに決めました。toCのサービス開発会社ももちろん好きなのですけどね。年明けよりUS VISA取得に向けて弁護士と動き、家族でSilicon Valleyに引っ越すことを目指します。それまでは日本からリモートワークです。
11月まではCookpadの海外事業部で働いていました。イギリスのブリストルに拠点を置く事業部です。内容は、Software Engineer in Qualityとして、横断的な不具合収集フローの改善とかがありました。また、中頃くらいからはAndroidの開発インフラ周り(CI環境やテスト環境)の整備に多くの時間をかけていました。いくつかのブログ記事を公開したりしました。これとか、これ。
多様性のある環境(10は超えるnationalityをもつ人たちと一緒に働いていた)で働くことや、彼らの多くも英語を第二言語として学び仕事で使っていること、その環境下でプロジェクトなど回していくことを経験しました。その環境下において、開発の芯をどこに置くかといったことの大事さを再度認識しました。日本人同士が慣れた言葉、コンテキストの持ちようで会話するものとはやっぱり納得に到るまでにちゃんと言語として伝えることが必要であったりと。
総じて、技術的な学びもモバイルアプリを取り巻く環境の前進に伴いあったりはしたのですが、それ以上に多様性のある環境下で働く、活動するというものを強く学んだ時期でした。なお、Cookpad tech conf 2018ではテスト自動化の面で発表させていただきました。
仕事の多くは英語が中心です。issueに書かれた英語を読み、理解し、表現などを学び、自分もそういう表現を書き慣れていく。そんな感じでした。口頭コミュニケーションは来年以降の方が真剣に英語onlyの環境になりますね。(表現の多くもネイティブ英語話者が取り巻く環境になりますし)
OSS周り
特に、Appium周りへの貢献は継続して行なっていました。不具合対応の他、新機能の追加やW3C対応に向けた実装、動作確認のテストなど。こちらは仕事時間外の活動だったのですが、おかげでAppiumのW3C対応もW3C actions含めて終わりました。クライアントも、そういえばRubyの他にPython, .NETなんかもメンテをはじめました。.NETは本当に初心者なので、既存コードから学びながら、一部W3C対応する、といったことをしていました。
Appiumは最近ではtest.aiの記事にもあるように、画像ベース + 機械学習を交えた要素検索などの機能が利用できるようにもなりました。Google/Appleのような企業が自分たちのOS向けのUI Test frameworkを成熟させる中で、Appiumはそれらを抽象化した中間機として機能しているように見えますね。ツールごとに開発のなかでどの類のテストをケアできるか、という役割がある程度付いてきたように思えます。
カンファレンス
SeleniumConf 2019 Tokyoが開催されます!私はその運営者の1人として活動してきました。主には英語圏、スポンサー対応。毎年EUかUS付近で行なっていた公式SeleniumConfがアジア圏で初めて開催されます。CfPも多く集まりました。結構な作業負荷もありますが、色々と経験を積んだり、積んだものを活かしたりできているのでやってて楽しさもありますね。
AppiumConf2019へCfPを出しました。2019はインド。2018はロンドンで4月に開催されました。Cookpadで働いていた頃だったので、ブリストルオフィスへの出張を組み合わせて参加しました。
国内カンファレンスでは、JaSST Tokyoに今年の初め頃に出ました。クロージングパネルなんかでは米国Googleから来日した人と一緒にセッションしたりしました。他にも少し、私の海外のメンバと働く経験を共有したり。
12月頭にはテスト自動化カンファレンスをヘルプしたり。継続して運営側です。成果の内容が運用経験なども含まれてきて、より深い知見や議論の場になってきていてとても素晴らしかった。
そのほか
Androidテスト全書のレビューをさせていただいたり、そのiOS版の執筆準備をはじめました。入門、UIテスト付近を中心に貢献予定です。
開発言語がNodeJS, Python, Goが中心になった/なりつつあります。Go以外は主にはAppium周辺でも関わっていたり。
まとめ
テスト、品質全般とCookpadにいた頃は幅広く関わっていました。実際、そのような組織的にも横断的に広く関わる類のものは好きです。一方で、私が貢献している自動化の領域で特にやりたいなーと感じていた方面もありました。
Testing in Productionの文脈でリリース後モニタリングの話を見るようになりました。正しいのですが、リリース後に何かあったら対応する、というような発想に寄りすぎているようにも見えることがあります。
例えば、CDNを経由しているとはいえ、インドネシア、アフリカなどから実際に(モバイル)アプリを使った時にどうか、など。ネットワーク屋さん、アプリ屋さん、どちらにもそれを評価できるものが必要になります。そんな問題意識の中、HeadSpinをTechCrunchで知りました。結果的に、あちらからのお誘いもあり、その方面に少し時間を投資することにしました。
その他、海外に焦点を当てるために国内活動は最低限にしておきました。仲間集めですね。色々なネットワークも構築でき始め、だいぶ前進したように思えます。
2019年に向けて
新しい環境への挑戦を家族で楽しむことができる年にしたいですね。
新しい職場(HeadSpin)、新しい開発環境(NodeJS, Python, Go)に慣れる、理解することは基本としてやっていこう。その他、大事なものとしてUS VISA取得があるので、必要な書類などの入手はしっかりと。
Appiumやモバイルテスト自動化周辺、Selenium communityをはじめとした海外の人たちとの関わりは大事にしよう。海外の人たちと活動するようになって、エンジニア同士の繋がりといったコネクションは非常に大事なもの(就労という形も含めて)だと感じました。なので、ちゃんと信頼を得られるようにやっていきたい。
Test/QA界隈には関係し続けるので、機会を見つけて継続して顔を出していきたい。iOSのテスト本とかも。
プライベートでも、もしUS VISA取得が成功すると家族共々新しい場所に移ることになるので、そちらの優先度をあげて楽しめるようにしたいですね。これが一番大事かも。
2 Comments