blog

DeNAのエンジニアが考えていることや、担当しているサービスについて情報発信しています

2022.10.04 CTOが訊く

Androidアプリ開発者の福利厚生?スペシャリストの挑戦

by Atsushi-Kobayashi

#android #mobile #swet #droidkaigi

「CTO が訊く」は、DeNA の @nekokak (ねこかく)こと小林 篤が、社内のメンバーに、その人となりや仕事っぷり、そして野望を訊くコーナーです。*

第7回の対談ゲストは、DroidKaigiで4連続登壇採択され、ソフトウェアテストのスペシャリストチームであるSWETでも大活躍されている @fgfgtkm (田熊 希羽)さん。

本記事の内容は YouTube でもご覧いただけます。 また、本記事は、お読みいただきやすいよう一部編集して掲載しております。

*2022年8月に収録した内容をもとに記述しています。

入社理由は『SWETに入りたい』

▲左から @fgfgtkm、@nekokak

@nekokak
皆さん、こんにちは。DeNA の小林です。

本日は Android アプリエンジニアの田熊さんをご招待しました。よろしくお願いします。

@fgfgtkm
よろしくお願いします。

@nekokak
まずは、田熊さんの自己紹介からお願いします。

@fgfgtkm
品質本部品質管理部 SWET 第二グループに所属してます、田熊 希羽です。自分は現在、Android プロジェクトへの自動テストの導入だったり、開発のサポートをしています。

@nekokak
田熊さんは、いくつか対外的な活動をされていると思うのですが、DroidKaigi にはこれまで何度も登壇されてるんですよね?

@fgfgtkm
はい。初めて登壇したのは2019年の DroidKaigi です。それから2020年の DroidKaigi Lite、2021年の DroidKaigi ときて、今年で4回目になります。

@nekokak
4回も登壇されてるんですね!僕は初めて田熊さんとお会いした時のことを覚えているんですが、「外に向けて話すのは実は苦手なんです」と仰ってたので、僕が「慣れですよ」ってお伝えしたんですけど、もうすっかり慣れてらっしゃいますね(笑)。

@fgfgtkm
はい(笑)。毎回緊張するんですけど、終わった後すごい達成感なんです。

@nekokak
お〜素晴らしい!

そういえば、 DeNA.apk という取り組みがあると聞いたんですが、どういうものですか?

@fgfgtkm
はい、社外に対して Android のコミュニティを盛り上げる目的で、社内のエンジニア達と一緒に活動しています。例えば DeNA TechCon のときに、社内の Android エンジニアだけでなく、社外のエンジニア達にも参加してもらってアーキテクチャのガイドを読んだり、意見を出し合う会として、 DeNA.apk をやったりしてます。他には SWET で Test Night という勉強会を主催しています。

@nekokak
それは、社内の勉強会とかで得た知見を積極的に外に向けて、DeNA のエンジニアが能動的に発信をやっているということでしょうか?

@fgfgtkm
そうですね。

@nekokak
素晴らしい取り組みですね。

田熊さんは運営にも関わられているんですか?

@fgfgtkm
はい、運営と登壇とどちらもやるようにしてます。

@nekokak
とても素晴らしい。 田熊さんが所属されている SWET という組織について紹介していただけますか?

@fgfgtkm
SWET は" ソフトウェアテスト技術 “を強みにしたチームで、DeNA のエンジニアが品質の高いサービスを素早く届けられるように仕組み作りをしているチームです。具体的には、SWET エンジニアが開発現場の中に入り込んでいって、自動テストの整備だったり、CI基盤の整備も行っています。

他には、開発の早い段階で品質を作り込んでいくためのプロセスを整備したり、それに必要な技術の導入もやっています。

@nekokak
田熊さんは2018年頃に DeNA に入社されたと思うんですけれども、どういうところに魅力を感じて入社しようと思われたんですか?

@fgfgtkm
自分は『SWET に入りたい』っていうのが一番の理由でした。前職ではモバイルアプリの開発をメインでやってたんですけど、DeNA のように品質を管理する専門の部署はなくて、エンジニアがテストの設計や実施もやっていたんですね。

その中で自分は『テストをもっと良くしていくことで、チームがもっと良くなるはずだ』っていう想いがあったのでプロセスの改善をやっていたんですけど、そのあたりを勉強すればするほど、もっとプロフェッショナルな方がいたり、ナレッジがある組織に入ってみたいという想いが強くなって DeNA への転職を決めました。

@nekokak
なるほど。前職でもテスト領域に興味を持ってやられていたものの、より自分自身の成長だったり、いろんな経験をする為に DeNA に入られたんですね。

入社されてから今まで、どういった取り組みをされてるか教えていただけますか?

@fgfgtkm
自分は SWET の一員として、主に社内の Android エンジニアに対して貢献するところをメインでやってます。

DeNA に入社して最初にやったのは、まず社内の Android エンジニアのテストの基礎的な知識をある程度一定のレベルにすることを目指して、テストのハンズオンを作成しました。

そうしているうちに、” テストを書きたくても設計的に難しいプロダクトが多い ”という課題があることがわかってきたので、実際のプロダクトに自分が入っていって、テストの導入を推進することをやってきました。

最初に入ったプロダクトは『MOV』(現在の  GO  )というタクシーアプリで、リファクタリングして自動テストを導入していく、といったことをやっていました。

その後、ライブコミュニケーションアプリの  Pococha  に入り、最初は自動テストの導入をやってたんですが、現在ではそれに加えて機能開発も一緒にやらせていただています。

@nekokak
田熊さんは元々テスト的な、「裏側」というとあれですけど、プロダクトを支える基盤的な部分を長年経験されてきたというお話でしたが、今は Pococha においてテストだけじゃなく、機能開発もやられてるということですよね。久々に機能開発をすると「やっぱり開発をやりたいな〜」とかってならないんですか?

@fgfgtkm
機能開発をする傍らで、自分と同じように SWET から Pococha にジョインしているメンバーと「こういうところは自動テストでもっと良くできるんじゃないか」みたいなことをディスカッションして、そのメンバーに仕組み作りを手伝ってもらったりしているんです。だから、自分は機能開発を楽しみながら、他の SWET メンバーと一緒にテストの基盤も良くするっていうことを結構バランス良くできていて、非常に楽しくやっています。

@nekokak
なるほど。作り手というか、機能開発を経験していく中でそこでの難しさを実感しながら、テストの部分もしっかりと取り組んでいて、両軸を上手くやられているっていう感じなんですね。

@fgfgtkm
そうですね。

Androidアプリ開発の好きなところ、嫌いなところ

▲@fgfgtkm

@nekokak
田熊さんが Android アプリ開発に出会ったきっかけを教えてください。

@fgfgtkm
新卒研修の時に、数十人いたメンバーが適当にチーム分けされたんですが、たまたま自分がアサインされたのが Android のアプリのチームだったことがきっかけでした。やってみるとアプリの開発が楽しくて、ずっと今もやってるような感じです。

@nekokak
なるほど、なるほど。

新卒時代からこれまで Android アプリ開発をやられてきた中で、好きだなと思うところと、ここはちょっと微妙だなと思うところがあれば教えてください。

@fgfgtkm
まずは DroidKaigi みたいな非常にレベルの高い発表が聞ける機会が1年に一回あるっていうのが本当に素晴らしいことだと思っていて、とても感謝しています。やっぱりこの部分が自分のモチベーションになってるなって思います。

あと、フレームワークのソースコードが読めたりとか、そのテストや設計の考え方みたいなところが結構オープンになっているので、そのあたりも魅力的で面白いなっているように感じてます。

微妙だなと思うところはそんなにないんですけど(笑)、強いて言うなら、問題があった時に「これって端末依存なんじゃないか」と感じるというか、" 不具合の特定の難しさ “みたいなところはちょっと大変だなって感じます。

@nekokak
確かに!Android って端末がいっぱいあって、メーカーによって挙動が違ったりとかもあるだろうし、OS バージョンもバラバラですもんね。

@fgfgtkm
そうなんですよね。新しい端末が出ると、「この端末って Android に忠実なのかな?」という点が気になったりします。

@nekokak
そうですよね。ということは、「これは間違いなく端末側の問題だよね」っていうケースにぶつかることもあるんですか?

@fgfgtkm
はい、そういうこともあります。

@nekokak
そういうときって、一概には言えないとは思うんですけど、どういう風な対処をされることが多いんですか?

@fgfgtkm
そうですね…「問題を引き起こしたのは端末なんだけども、実装的にあんまり良くなかったよね」みたいなパターンもあるので、そのあたりを直すことは多かったりします。

@nekokak
それは、実装側が本来やるべきことと違うことをやってて、なんかあってもおかしくないよね、みたいなのがあったりするという感じでしょうか?

@fgfgtkm
そうですね。とはいえ、Pococha とかだと、明らかに端末依存の問題とかもあるので、そういうときは「この端末の場合はこうする」みたいな処理が入ってしまうような場面もあります。

『DeNA の Android エンジニア達もアウトプットすることに非常に積極的』

▲左から @fgfgtkm、@nekokak

@nekokak
田熊さんは Android の開発や Android にまつわるテスト技法といったところに取り組まれてきたと思うんですけども、これまでやってこられたことを思い返したときに「ここはすごい思い出に残っているな」というエピソードってありますか?

@fgfgtkm
2019年に初めて DroidKaigi で登壇させていただいたときが印象的です。それまではあまり登壇の経験がなかったんですけど、DroidKaigi で初めて何人いるかわからないくらいすごく大きな会場で登壇させてもらえたことで、『登壇すること』や『外に発表すること』のハードルがすごく下がりましたし、人に向けて話すことを目的に資料を整理することで、自分の中の考えや知識とかが整理されていくのが本当にいいなっていう風に思っています。

@nekokak
ちなみに、DroidKaigi に登壇する前は、オーディエンスとして見に行かれていたんですか?

@fgfgtkm
はい。

@nekokak
そうすると、見ている側から一転して登壇する側になったときってすごく緊張したでしょうし、そこのハードルを実際に越えられる人って何気に少ないなと僕は思ってて、自分自身が登壇するというのは大きなチャレンジだと思うんですけど、ハードルを越えられたきっかけってあったんですか?

@fgfgtkm
SWET メンバーって、アウトプットすることや発表することにすごく積極的だし、DeNA の Android アプリエンジニア達もアウトプットすることに非常に積極的なんですよ。「DroidKaigi の季節だから、みんなとりあえず何か応募しようよ」みたいな。そういったポジティブな雰囲気があるおかげで「自分も出してみよう」と思えて、そのハードルを乗り越えられた感じです。

@nekokak
つまり、周りのエンジニアが「俺、これやるわ」「私はこれやる」と普通に言ってるから、「ああ、そういう感じだったら私もいけるかな」みたいな?

@fgfgtkm
そうです、そうです。そして周りのエンジニアに「こんな感じのってどう思いますか?」って聞いたら、「それは面白そうだね」っていうフィードバックとかもらえたりして。

@nekokak
それはすごくいいっすね!なるほどな〜。

確かに、僕も社内 Slack の Android チャンネルをたまに見るんですが、DroidKaigi のような登壇のプロポーザルを出すときにみんなでワイワイ盛り上がってるのを見たことがあります。 「ああ、なんかこういう雰囲気いいな」と純粋に感じたんですけど、この雰囲気のおかげで田熊さんはチャレンジできたんですね。

『開発プロセスがポイントになっている』

▲@nekokak

@nekokak
次に、田熊さんが Android で色々と経験を積まれている中で、「これは自分の代表作だな」と思えるものってありますか?

@fgfgtkm
代表作というか、タクシーアプリに自動テストを導入したことが自分の中での基礎になってるなと感じています。

それが DeNA でのプロダクト開発チームに関わったきっかけだったんですが、そこにいた Android アプリエンジニアの方達みんな本当にレベルが高くて、そんな彼らに「いいね」って思ってもらえるようにしようっていうのが自分の中のモチベーションになってました。

その時に感じた反省点や学んだことが今の Pococha への取り組みに繋がってるので、あれは自分の原点みたいな取り組みだったな、と思っています。

@nekokak
なるほど。それはすごくいい経験されたんですね。

今、田熊さんは Pococha をはじめとした複数のアプリ開発に関わっているかと思うのですが、横断的に複数のアプリに関わることで良かったことはありますか?

@fgfgtkm
プロダクトによって抱えている課題って全然違ったりして、それぞれに対して自動テストがどのように活用できるかっていうところを考える面白さはありましたね。

『Pococha』には自分は開発者としても入っているので、それによって現場が抱える課題の解像度がすごく高く見えるようになってきたんです。実際は、自動テストだけでは改善できないプロセス的な問題とか、そういうのもあったりするんだってことがよくわかりました。

ゴールは『DeNA のエンジニアが品質の高いものを素早く提供する』だと思っているので、そこに対して「どういうことができるんだろう?」「自動テスト以外のアプローチはないかな?」ということが考えられるようになったっていうのがすごく良かったです。

@nekokak
具体的に、自動テスト以外のアプローチってどういうものなんですか?

@fgfgtkm
開発プロセスのアプローチです。品質管理チームが開発プロセス後半のテストの段階ではいっていたのを、企画段階からどんどん見てもらって「一緒に品質を作り込んでいこう」といったプロセスに改善するチームに参加させてもらっています。

@nekokak
僕も品質管理部にずっと関わってたんでよくわかるんですけど、昔の品質管理って後工程でテストする人、いわゆる” テスター ”がいて、開発者はそこに任せりゃいい、みたいな感じの時代があったかなと思うんですけど。

それが今は、品質を作り込む初期のフェーズから品質管理メンバーを巻き込んで、伴走してもらいながら要件とかちゃんとすり合わせをして、開発者が開発してるときに同時に品質管理メンバーはテスト設計をしていってみたいな感じですよね。今は開発チームと品質管理チームが並行して走れるようになってる。そこが本当に変化としてありますよね。

『スペシャリストが集まった横断的なチームがいくつもあって、技術をすごく大切にしているんだなって』

▲左から @fgfgtkm、@nekokak

@nekokak
他に、横断的に携わる中で DeNA の Andoroid アプリエンジニアについて感じることはありますか?

@fgfgtkm
まず、非常に有り難いことに、新しい取り組みや SWET でこういう取り組みをしたいという提案に対して、とても歓迎的なムードで受け入れてくれるんです。だから、ポジティブな方が多いなっていう風に感じます。

あとは、皆さん個性豊かで、技術面ももちろんすごい尊敬できる方が多いんですけど、なにかしらに強みを持ってるっていう方が多いんです。日々、「○○さんのこの部分に尊敬できるよな」って感じられることが多いですね。

@nekokak
さっきもちょろっと言いましたけど、DeNA 社内の Android のコミュニティの空気感ってすごくいいですよね。すごいみんな仲良しだなって思います。

定期的に TechTalk(テクニカルなトピックに興味がある人なら誰でも参加できる社内勉強会) をやったりとか、Google I/O が終わった後のレポートを見ながらみんなで話をしたりとか、積極的にやってますもんね。Android エンジニアとして、社内にコミュニティがあるのはすごく勉強になるだろうし、新しいチャレンジをしやすいのかなって思いますよね。

@fgfgtkm
はい、そうですね。

@nekokak
2018年から在籍されている田熊さんからだと DeNA ってどういう会社に見えますか?

@fgfgtkm
SWET もそうなんですけど、スペシャリストが集まった横断的なチームがいくつもあって、技術をすごく大切にしているんだなっていう印象をずっと持っています。

最近だと、 モバイル基盤 のチームか立ち上がって、彼らのおかげで Android エンジニアが自然と新しい Android の情報をキャッチアップできたりとか、モバイル基盤の方達が積極的にコミュニティに関わってくれることで、社内のコミュニティもすごく活発になったので、非常に感謝してます。

@nekokak
今、田熊さんが注目していたり、気になっている技術はありますか?

@fgfgtkm
Android の Jetpack Compose が気になっています。導入を進めていきたいものの導入が進めきれていない技術なので、自分の中でもチームの中でもプラクティスみたいなのがまだ確立しきれてないところですね。なので、そこの実例を増やしていくっていうのを直近頑張っていきたいなと思ってます。

@nekokak
わかりました。

あと、DeNAっていう会社でもいいですし、田熊さん個人としてでも構わないんですけど、今後チャレンジしたいなと思っていることはありますか?

@fgfgtkm
Android のエンジニアにとって SWET のチームを福利厚生と思ってもらえるようにしたいなっていう風に思ってます。SWET メンバーのアウトプットを見たり、対話することによって、自然と Android のテストについて詳しくなったり、品質を作り込んでいく考え方のベースができるようになればいいなっていう風に思ってます。

@nekokak
ぜひ、そこはやっていただきたいなと思います。

DeNA の中で Android はいろんなアプリ開発で使われているので、そこが良くなると顧客に対してもっとデライトを届けられるようになると思うので、引き続き SWET で活躍していただければと思います。

@fgfgtkm
はい、ありがとうございます。

@nekokak
今日は Android アプリエンジニアの田熊さんに来ていただきました。ありがとうございました。


最後まで読んでいただき、ありがとうございます!
この記事をシェアしていただける方はこちらからお願いします。

recruit

DeNAでは、失敗を恐れず常に挑戦し続けるエンジニアを募集しています。