見出し画像

二顧の礼で入社したAndroidエンジニア

サスメドのエンジニアブログの第1弾として、システム開発部の成澤さんに当社CTOの本橋さんがインタビューした様子をお届けします。

成澤さんがサスメドでの挑戦に飛び込んだ理由や、サスメドでの開発で感じる難しさと面白さ、今後チャレンジしていきたいことに迫ります。

プロフィール

成澤 諒(システム開発部)
新卒入社したSIer企業にてソフトウェアエンジニアとして複数業種のモバイルアプリ/Webシステム開発、及びモバイル向けフレームワーク開発を経験。2020年夏にサスメド入社。臨床試験/治験プラットフォーム(サスメドシステム)のスマホアプリの設計、開発を担当。

本橋 智光(取締役 CTO)
SIerの研究員、Web系企業の分析者を経て現職。
基盤・スマホアプリ・フロント・サーバ・機械学習・数理最適化等幅広く取り組む。個人として量子アニーリングコンピュータの応用研究にも従事し、 IPA未踏ターゲットに関わる。
システム制御情報学会奨励賞、KDD Cup2015 2ndなど受賞。著書に「前処理大全」(技術評論社)、「機械学習のための特徴量エンジニアリング」 (O'Reilly Japan)など。 日本情報システムユーザー協会や日経セミナーなどで講演多数。

画像3

2回目のスカウトメールで反応した理由は?

本橋:当時はどういう方向で転職活動してたの?

成澤:どの業界に、というよりは、自社でサービス開発しているところに絞って活動していました。

本橋:スカウト時のことはよく覚えているのですけど、最初のスカウトメールには全く反応が無かったんだよね(笑)

でも、Github上で音楽収集アプリをあげていて、アプリを作りきれる人は絶対欲しい、って思って諦めきれなくて「Githubのこのコードが大変素晴らしいのでぜひ!」みたいなスカウトをもう1回送ったらようやく反応してくれたんですよね。

成澤:最初にスルーしたのは、今まで医療業界に全然触れてこなかったので、前提知識がないとハードルが高く感じた、というのはありましたね。会社のホームページを見るとアカデミックにも強そうな会社で、ITだけじゃない専門性も求められる会社だなって思ってお見送りしました。

でも、またスカウトメールが来て、しかも自分が書いたコードの中身もみてメッセージを頂いたので、試しに話を聞いてみようかな、と思って受けてみました。

本橋:なるほど。その後、カジュアル面談させてもらって、会社概要や、会社で開発してる治療用アプリと、臨床試験/治験プラットフォームの説明をしたけど、それを聞いてどう思った?

成澤:治療用アプリ自体の治験計画のための特殊な要件(シャムアプリ)や、導入事例があまり見られないブロックチェーンを絡めた複雑なシステム構成などをお聞きして、非常に難易度の高いことをされていて、ここで貴重な経験ができそうだなと感じました。

ただ、一番魅力に感じたのは、その時に説明頂いた「ITの力で高騰する医療費を削減することで、持続可能な医療を実現する」という会社のビジョンですね。社会貢献度も高いですし、何よりもやるべきことがハッキリしているなと。正直この時も医療業界の知見が無い点や、私自身の技術力に不安がありましたが、このビジョンを根底に置いて仕事を進めていけば、少しずつ貢献できる幅が広がるのではないかと思い、選考に臨むことを決意しました。

画像4

両OSの開発を経験して初めて見えたこと

本橋:入社後最初にやった仕事は、確かサスメドシステム(臨床試験/治験管理システム)のAndroid部分でしたよね。ただ、今はiOSもやってくれてるけど。

成澤:Android/iOS両方やりましょうっていうのは会社、アプリチームの方針ですしね(笑)

本橋:実際、AndroidやっててiOSもちょっと触れてきたっていうのはプラスの部分とマイナスの部分とあるような気がするけど、どう感じてる?

成澤:プラスのほうが遥かに多いと思います。技術の幅を広げる意味でもAndroid以外に、せめてもう1つか2つ得意分野を持っておきたいと元々考えていたので、iOSも経験できたことはプラスだと思っています。

あと、両方やることで、両OSに共通した重要な考え方がよりクリアになった点も大きいですね。なんで標準のAPIはこういうインタフェースで分けられていて、使い方が似てるんだろう、といったところから、モバイルアプリ固有の要件や仕様が理解しやすくなったのが良かったです。

本橋:なるほど、それはよかった。とはいえ、最初の仕事でサスメドシステムの開発というのは結構難しかったと思ってます。なぜかというと、サスメドシステムってノーコードツール的なものだから汎用性と拡張性がめちゃくちゃ求められる。だから、ある特定の目的のための専用プロダクトを作るより、難しい部分も多いと思うのだけど、そういうのってどう感じました?

成澤:プラスに感じましたね。もともと前職では受託開発を多く行っていて、納期までにプロダクトを作り切る能力はすごく鍛えられたかなと思うのですが、反面、1つのプロダクトを最初から最後まで作りきって、その後も長く携わる経験がありませんでした。サスメドシステムの開発に携わることで、寿命が長くて拡張性の高いアーキテクチャの作り方を学べたのは良かったと思います。

本橋:そういう意味では、長期メンテナンス前提というのが自分に合ってたってことかな。

成澤:そうですね。きっちり書くという意味でも。

新しい技術を恐れず、検証して、取り入れる

本橋:あと、今は技術調査(SwiftUI/JetpackCompose)もやってもらってるけど、それは楽しい?

成澤:面白いですね。そもそも最新技術のキャッチアップを仕事の中でさせて頂けるのは非常に有り難いと考えていますし、そこで最新技術と既存技術を比較検討する経験が積める点が大きいですね。

新しい考え方、流行っている考え方を取り入れつつも、無条件に使うのではなく、これまでの技術と比較しながら落とし所を見つけるっていう点がどんな業務でも重要なことかなと思うので。

本橋:調べていて、具体的にここ落とし所難しいなと思った部分ってある?

成澤:新しいが故に、これまでのViewSystemとかUIKitで簡単にできたものができない点が存在するジレンマがありますね。例えば、SwftUIだとTextFieldにカスタムキーボードが設定できなかったり、JetpackComposeだとリスト更新の際のアニメーションが設定できなかったり。今後のアップデートでAPIも充実してくるとは思いますが、今これらを用いて開発を行う場合には、要所要所で落とし所を探る必要がありそうです。

本橋:あと、個人的な考えかもしれないけど、新しい最初のイケてない時を知っておくと、その後に良くなったものを触る時に経緯とかがわかるから、ああ、こう考えたな、これはこういう意図だよな、みたいなのが理解しやすい気がするんだよね。大事なところとか、ハマるところとか。

成澤:はじめにSwiftUIを触る前に、前のサスメドシステムでのUIKitなどを触れられたのはかなり大きかったですね。

本橋:多分知らないでやったらそういうもんか、ってなっちゃうもんね。それにしても、20代で、流行ってるものをちゃんと検討しながら取り入れていくっていう発言がすごいなって思う。私は20代の時そんなこと言えなかったなぁ。流行りに飛びつく人みたいな感じだったもん、今は流行りがコレだから、みたいな(笑)

画像5


成澤:でも、流行っているからといって新しい技術を無条件に取り入れずに、ちゃんと検討しよう、っていう考えがより強くなったのもこの会社に入ってからかなって正直思います。まず実現したいことがあって、プログラミングはあくまでも道具だっていつも本橋さんも仰ってますし。治験を扱うなど、どうしても失敗のリスクが大きいサービス、ということもあって、かなり検証する時間を多くとって頂けるな、と思いました。

本橋:いやでも、以前やってもらったカメラライブラリの調査もめちゃくちゃこなれてるなって思ったんだけど、前職でも結構調査とかまとめとかやってたの?

成澤:そうですね、前職でモバイルアプリを簡単に開発するためのフレームワークを開発するプロジェクトに入っていたことがありました。B2B向けのクロスプラットフォームの開発キットをベースにしたもので、WindowsでもAndroidでもiOSでも全部動くみたいな、かなり今のFlutterとかに近い...

本橋:昔のTitaniumみたいな。

成澤:そうですそうです。で、そのモバイル版のフレームワークの一部について調査をやってました。

本橋:あの調査みて、やっぱりそういったところで鍛えられてるんだなって思った。調査報告を出してくれて、考察も踏まえて、だからこうしたいと思うんですけど良いですか、ってなってたらYesって答える以外ないな、みたいな(笑)そういったところが強みですよね。

■カメラライブラリ調査の補足
写真撮影機能実現のためのカメラライブラリを選定するにあたり、当時の主流であったCamera2と、まだBeta版であったCameraXを比較しました。要件を満たすサンプルアプリを作成して社内端末で実機検証を行ったところ、CameraXの方が少ない工数で安定した機能を提供できることが分かったため、Beta版ではありながらも採用に踏み切りました。

カメラライブラリ実機調査表

クラウドプラットフォームじゃないGCPという言葉

本橋:サスメドに入って辛かった、というか、難しい、大変だったことってありますか?

成澤:そうですね、一時的にではあったものの、サスメドシステムの一部の工程を一人でどっちのOSもやるっていう時期があって、やりがいがあった分苦労したなって思います。iOSの経験が当時はまだ2〜3ヶ月間くらいしかなかったり、そこでやっぱりどうしてもiOSでうまく動かないっていう経験が多かったですね。

具体的にはUI構築について、AutoLayoutっていうAndroidでいうConstraintLayoutと同じような仕組みがあるんですけど、その挙動がかなり複雑だったんです。それで同じシステム開発部の高城さんに相談したら、関連の技術書とか紹介してもらえてなんとかできた、っていう感じでした。

あと、医療業界未経験で入ってきたので、どうしても全く知らない単語とかがあって。例えばGCP(Good Clinical Practice、医薬品の臨床試験の実施の基準に関する省令)と聞くと、Google Cloud Platformのことかと思ったりするじゃないですか。そこのキャッチアップは大変だったかなっていう感じがします。今は入社して1年くらい経ったので少しずつ身についてきてると思うんですけど。

本橋:SAS(Sleep Apnea Syndrome、睡眠時無呼吸症候群)とか聞いてもITの人だと会社名しか出てこないからね(笑)

成澤:そうですね(笑)

バグを憎んで人を憎まず

本橋:サスメドの気に入ってるところがあれば教えてください。

成澤:そうですね。最初はAndroidのエンジニアとして入って、かなり早い段階から、いつかiOSやってみたい、っていうことをお伝えしてたんですけど、やってみたい領域をかなり挑戦させてもらえてるのですごくありがたいなと思いました。

あと、会社の雰囲気としては、結構おとなしめの人が多い感じがしていて、私としてはすごく心地が良いです(笑)決して消極的な意味ではなくて、胸に熱い思いはありながらも、そこを感情的にならずに議論する、みたいな。

本橋:みんないい意味でがんこっていうか、ちゃんとロジカルに納得しないと「うん」っていわない(笑)でも、私もすごく心地よくて。みんな違うって思ったらちゃんと言ってくれるんだよね。自分の立場からすると、こうしようと思ってるって言った瞬間「じゃあCTOが言うから」って言ってうなずいてどんどん変な方向に行くのはめちゃくちゃ怖いんだけど、みんな怒ったりしないで「本橋さん、これは違うと思います」みたいな感じで、これはとても良い文化だなと思ってます。

他に何かいいな、って所ある?

成澤:そうですね、オフィスの自販機が無料ってところですかね(笑)

本橋:それ全然大したことないよ(笑)でも、それはよかった。コーディングとかはリモートの方が効率良いけど、議論のときなどは対面の方がやりやすい部分もあるのかなと思っていて、ただそれを会社に来い、と押し付けるのではなく、自然と来たくなるような会社にしましょう、っていうのが思いとしてありました。とはいえ、今は代表的なのがジュースしかないんですけど(笑)でもこれからもどんどん増やしていきます。

開発部や、チームに対して気に入ってるところはありますか?

成澤:システム開発部の平野さんがよく「バグを憎んで人を憎まず」と仰るんですけど、問題が発生したときも、あくまで問題を解決することだけに注力して、担当してた人を絶対責めないっていう文化はすごく良いと思います。

本橋:ありがとうございます、この文化は絶対に変えずにやっていくかな。だって、担当者を責めると、極論だけど、怒られないためには、作らない方が良いという結論になってしまうからね。やっぱり、作って、テストして、何か問題起きたとしてもそれは絶対構造上の問題だしね。悪意がある人間じゃない限りは、それは仕組みを改善して解決していきたいですね。

画像6

サスメドでの次への挑戦

本橋:今後やってみたいことはありますか?チャレンジしたいこととか。

成澤:入社時は、開発がもう始まってて、仕様とかアーキテクチャとかがある程度固まった段階だったので、それを実装していくとかテスト工程が多かったんですけど、今後の開発では、今やってる技術調査とかも踏まえた上で、アーキテクチャの部分から一緒に携わらせていただきたいなという思いはあります。

本橋:なるほど、もちろんやってもらうかな。ていうか、まだそんなに人いないんで、やってもらうしかないかなと(笑)

本橋:他には何かやってみたいことはありますか?

成澤:あとは、要件整理について、追加開発とかでは結構担当させていただいたりはするんですけど、1から全体の要件整理をしてみるっていうのも、興味が出てきました。やってみたいことの優先順位としては、まずはアーキテクチャなんですけど。将来的には、少なくともモバイルアプリ領域に関して、1つのプロダクトの要件整理 / アーキテクチャ設計両方を任せて頂けるようなエンジニアになっていきたいですね。