この記事は NTTテクノクロス Advent Calendar 2022の20日目です。
こんにちは。NTTテクノクロスで、エバンジェリストとして活動している神原(@korodroid)です。会社では、高度専門人材向けのキャリアパスが準備されており、私はその中のエバンジェリスト領域でキャリアを積んでいます。
普段は主にモバイル/ウェアラブル/IoT関連の開発や技術支援、国内外の講演、各種執筆、ソフト道場研修講師、技術ブログ、CSR活動(学生向けIT/キャリア教育)などを行なっています。カンファレンスやコミュニティイベントなどでの講演のご依頼等ございましたら、個別にご連絡いただけますと幸いです。
今年は、海外カンファレンスへのオフライン参加も再開でき、現地を訪れて講演に取り組んだりと、 Face to Faceのコミュニケーションのありがたみを再認識した1年 にもなりました。
つい先日、↑登壇や海外動向(技術や渡航関連、街の様子等)について、社内イベントで共有を行いました。ただ、社内だけに閉じる必要もないので、社外のカンファレンスやコミュニティイベントなど何か機会がございましたら、お声がけください。また、社内の仲間たちと技術書を共同執筆し、技術書典へ出展しました(「宣言的UIアプリ開発食べくらべ」)。よろしければ、読んでいただけるととうれしいです。
プライベートでは、これまでと変わらず、ランニングと英語の世界の楽しさ(と苦しさ)に没頭する日々を送っています。
今回は、 ITエンジニアとして大切にしている3つのこと について、ご紹介します。ここ最近、モバイルやウェアラブルなど技術的なテーマ以外にも、学生の皆様向けにITエンジニアの仕事を紹介する機会が増えてきました。準備する過程で、自身のこれまでの活動、および、ITエンジニアとして何を意識しどんなことを大切にしているかを振り返る機会がありました。
もちろん、何を大切にするかは人それぞれですし、どれが正解ということはないと考えています。そのため、本記事ではあくまで1エンジニアとして活動を振り返り、個人的に大切にしている(してきた)ことを、実際のエピソードを交えお伝えします。
ITエンジニアとして大切にしている3つのこと
これまでITエンジニアとして生きてきて、社内/社外を問わず、周囲の多くの皆様から様々なことを学ばさせていただきました。そして、自分自身、会社業務やプライベート活動を通じ、経験を積む中で、特に3つのことを大切にしているということに気付きました。うまくいったこともいかなかったことも両方あります。失敗談を含め順番にご紹介します。
1.大切なものに挑戦し続ける
自分はガラケー向けアプリ開発から、エンジニアとしてのキャリアがスタートしました。その後、正式版(ver.1.0)になる前のAndroidに出会い、その自由度の高さに凄まじく感銘を受け、これは将来、世界を席巻するプラットフォームになるのではないかと当時感じました。そこで、自分なりに学びを重ね、会社やプライベートで多くのアプリの開発に携わってきました。
今から10年前の挑戦(初めての海外講演)
2012年某日、 人生初の海外講演の話 をいただきました。当時のAndroidアプリ開発は、複数のOSバージョン(ver. 2.x/3.x/4.x)が市場に混在することを考慮しなければならないという問題が顕在化し始めていた時期でもありました。また、Android搭載端末の画面サイズも多岐にわたるため、画面レイアウトが崩れることなく、適切に表示されるようにするには、発生しうる課題を意識した上で設計や実装を行わなければならないという、頭を悩ませる問題もありました。
幸いなことに仕事やプライベートを含め、多くのアプリ開発を通じて経験を積むことができていたので、それらをコンテンツ化し、研修や勉強会を通じて水平展開を行なっていました。そのため、この講演についても、技術的には頑張れば何とかなるであろうと考えた一方で、 最大の課題となったのが英語力 です。当時の自分は、TOEIC LR 500点台後半-600点台前半(LRそれぞれ300点付近)、そして、スピーキングに至っては全くもってと言えるくらい、できない状況でした。
海外講演の話(Droidcon London 2012)が出てきた時に、 そもそもやるかやらないのか?を非常に悩みました 。自分の頭の中で、「そもそもスピーキングがまるでできないのに無理に決まっている」「めちゃくちゃ頑張って講演できたとしてもその後にQAあるし気絶するに違いない」などネガティブ方向にばかり、思考が傾きました。ただ、その一方で、「こんな大きな機会は今後ないのではないか?」「当日まで必死に準備すれば何とかなるのではないか?」とポジティブな考えも芽生え、自分の中での葛藤がありました。最終的に覚悟を決めて、挑戦することにしました。その後、本人的には人生で最大レベル(大袈裟に見えるかもしれませんが、本人的にはそうでした)と言っても過言でないくらいの苦労がありました。その過程をご紹介します。
まずは初めての英語でのプレゼンテーション資料作りです。良い例を見つけるべく、slideshare(最近だと代わりに、Speaker Deckを使っています) で公開されていた、他技術カンファレンスの資料を多数見ました。資料のレイアウトや構成、流れなどを参考にしつつ、資料を作りました。
そして、当時は全くもって、英語を話せる状態になかったので、 話すことをスピーカー用Noteとして事前準備 する作戦を選択しました。ただ、これには、良い点・悪い点と両方あります。詳細は、別の記事(海外講演を通じて得られた知見(英語力+α編))に書いていますので、興味ございましたら、ご参照ください。その後、 スライドを印刷して、飛行機の中、自身のプレゼンテーションの直前まで粘りに粘って、話す内容をカスタマイズ しました。
最終的に、本番と同じ形式でプレゼンテーション練習を何度も何度も行い、何とか無事に当日を乗り切ることができました。
と優等生的なストーリーはここまでにして、泥臭い当日のありのままの自分をお伝えします。当時のプレゼンテーションで、実は2つのことに困りました。
1つ目が 海外カンファレンス特有の空気感 です。「Droidcon London」は1,000名越えの規模、非常に大きなカンファレンスです。また、自分からすれば、初めての海外講演で完全アウェイ。そして、私のトークがなぜかメイン会場に割り当てられていて、目の前には900人近くの来場者。正直、心臓が飛び出そうでした。。ただ、やるしかないので、 「あとはなるようになれ。ベストだけは尽くすぞ💪」 と、 完全に消えかかったロウソクに、超ポジティブ思考で火を灯し、自分を奮い立たせた ことを覚えています。
2つ目が セッションのあとのQA です。発表後、(おそるおそる) 「質問ありますか?」 と振ると、ちらほら手があがりました。。 質問いただくのはスピーカーとして光栄なことであり、本来は喜ぶべき状況 です。が、大変申し訳ないことに、当時の自分にとっては、貧相な英語力ゆえに、うれしいよりもうわーの気持ちの方が上回っている心境でした。。案の定、英語のリスニング力にも難ありの自分だったので、シンプルな質問にはなんとか答えられたものの、長い文章の複雑な質問は、そもそも英語的な能力の問題から正直理解できませんでした。ただ、こうなることは、当時の自分にも残念ながら予想できていました😇。そこで、 事前に考えていた、ある裏技 を実行しました。それは「めっちゃいい質問ありがとう。ぜひ議論したいので、セッション後にここに来てもらえますか?」と伝えることでした。正直、褒められる答えでは全くないですし、おすすめできるものでもありません。ただ、そのときの自分にできるベストとして、これで乗り切りました。幸いなことに、その質問くれた人は、セッション後に本当に来てくれて、 「当時のテーマの1つであったFragmentをどう実際のアプリの画面に当てはめるかの議論」を身振り手振りで したことを記憶しています。
これら経験から学んだのは、 「どんな困難な状況でも、できるのは、できる限りの準備を自分なりにやる。↑のように最悪の事態になることは想定して、どう対応するか考えておく。あとは本番になったら、ベストを尽くすのみ。」 という心の持ち方です。あれから10年経った今でも、この考え方は、自分の中で変わっていません。振り返ってみると、このときの経験は、自身のキャリア形成の第1歩になったように思います。
2022年の挑戦(初めての海外パネルディスカッション/ワークショップ)
その後、海外カンファレンスで登壇経験を積ませていただき、あれから10年。今年は、 自身にとっては初の海外でのパネルディスカッション/ワークショップ の機会に恵まれました。
海外パネルディスカッションは、 Droidcon SG(シンガポール)で経験しました。同カンファレンスで講演させていただくことは既に決まっていた状況でしたが、事務局よりパネルディスカッションへの追加オファーをいただきました。
その時点で海外でのパネルディスカッションの経験はなく、自分に対応できるのか考えました。ただ、事前に準備さえしっかりしておけば何とかなると判断し、お受けしました。 講演とは異なる準備もいくつか行いました。 参加者の皆様にとって、できる限り有益な情報をお伝えできるよう、あらかじめ当日の議論テーマを入手して、こんなことを話そうと事前に考えておきました。議論の流れの事情から、予想していたことと違う話題が出たりはしたものの、 事前にシミュレーションし準備しておいたことで、(比較的)心を落ち着けて参加できました。
海外ワークショップは、 Droidcon KE(ケニア)で経験しました。2022年は勉強会や技術カンファレンスなどにおいて、講演テーマとしてFlutter/Android/iOSなどモバイル関連技術に加え、Wear OSなどウェアラブル関連技術についてもお話しする機会をいただいていました。そんなある日、私の友人でもあり、Googleで働いているJoshから、 「Wear OSのセッションを開催しようと思っているんだけど、一緒にやらない?」 から誘いがありました。できるか分からないけど、まずは話をしてから考えようと思い、オンラインで打合せを行いました。2人で議論した結果、 「(開催するなら)Wear OSのアプリ開発の基礎について講演+実際に手を動かしながら作り方を学んでもらうワークショップのハイブリッド形式で最適であろう」 という結論になりました。
その一方で、英語での技術ワークショップ担当は1度も経験がなく、また、セッション時間も90分と長く、対応できるのか?考えました。ただ、これまでの海外講演での場数や、必死にしがみついて取り組んでいる、毎日のオンライン英会話(累計1,500+レッスン)を通じて、やっとこさで、頭で考えたことをその場で話せるくらいにはなってきていたので、何とかできると判断しました。その後、会社にも説明し、快く了承を得られたため(ありがとうございます🙏)、エバンジェリスト活動の一環として、参加してきました。
このワークショップでは、あえて、 スピーカー用Noteを一切事前準備せず、参加者の皆様の様子を見つつ、思い浮かんだことをその場で話す 作戦を取りました。というのも、英語力うんぬんよりも、技術ワークショップなので、反応を見ながら、雰囲気を感じ取って進めることがベターであろうと考えたためです。参加者の方々からは、とても有益な内容で、新しいことにトライしてみようという気持ちになれたよとなど、好意的なフィードバックをいただくことができました。我々のセッションに参加してくださったRich Bowenさんが書いてくださった記事を読んだ時は、頑張ってやってよかったなと、心にぐっと込み上げてくるものがありました。また、共同スピーカーとしてに加え心温まるフォローをしてくれたJosh、(Droidcon KEだけでなく全てのカンファレンスにおいて)いつも親切にサポートしてくださる事務局など運営の皆様、現地で出会った全ての皆様、そして、活動を後押ししいつも協力してくださっている会社の皆様に、感謝の気持ちでいっぱいです。本当にありがとうございます。
これら経験から学んだのは、 「どんなに遠い目標でも、できることは、それに向かってほんの小さなことを積み重ねること」 です。と書いてはみたものの、自分は技術力、英語力ともに、まだまだ全然です。だからこそ、これからもまだまだ磨くべく、自分なりにこれからも次の挑戦に向かって取り組んでいきます。
(参考)海外ワークショップで実際に使ったコンテンツ
「講演資料(Building for Wear OS “Workshop” - Introduction & Part1-)」、「技術ワークショップコンテンツ(Building for WearOS Apps Codelab)」で公開しています。いいねと思ってくださった方は、Likeをお待ちしております🙏また、↑コンテンツなどWear OSに関する内容、Flutter/Android/iOSなどモバイル関連技術について、カンファレンスやコミュニティイベントなどでの講演のご依頼(国内/海外問わず)がございましたら、ぜひご相談いただければと思います!
2.エンジニアリング力=個人力×チーム力
エンジニアリング力についてです。例えば、モバイルアプリ開発の世界においても、非常に多くの開発言語やフレームワークがありますよね。
- Android
- Kotlin/(Java)/+(Jetpack Compose)…
- iOS
- Swift/(ObjectiveC)/+(SwiftUI)…
- Cross Platform
- Flutter/React Native/KMM…
もちろん、エンジニアが個人ごとに学んで自己成長していくこと( 「個人力」 )は必須だと考えていますが、その一方で、会社・チームで協働することで、お互い切磋琢磨しながら磨くこと( 「チーム力」 )も同じレベルで重要だと認識しています。
個人力(技術力の高め方の1例「個人開発」)
個人力の観点で、技術力の磨き方について、会社・プライベート毎に、個人的に以下のように考えています。
それぞれの機会で場数を踏んでいくことで少しずつ成長していけると考えています。今回は、後者のプライベートでの開発について、紹介します。Androidに出会ってから、Androidの楽しさにのめり込み、仕事だけでなく個人開発としても多くのアプリを作ってきました。
↑のように、正直、くだらないアプリもたくさん開発しました。 個人的に、質は当然ながら大切だと思う一方で、その質を高めるために量をこなす ことの重要性も身をもって学びました。最初に作ったアプリは、1Activityの中にビジネスロジックをモリモリ書いてたり(Fat Activity)、みんな大嫌いANRが頻発したりと、酷い状態でした。しかし、懲りずに、2本目以降のアプリを開発・公開しては、ユーザの皆様に使っていただき、コードをリファクタリングし、得られた視点を次の開発に活かしていくというサイクルを回していく中で、多くの学びがありました。また、 自分の考えだけで、アプリの仕様、利用する言語やフレームワークなどを決定していくことで、仕事とは違う視点での経験や気づき もありました。その結果、技術的にも成長できたと感じています。そこで得られた知見は、その後、仕事にも活かせる機会も多くあり、個人開発に日々取り組んできて良かったなと感じています。
ときどき、「アプリ開発をこれから勉強しよう・始めてみようという方から、どうやったらアプリ開発できるようになりますか?」と聞かれることがあります。そのときは、 「基礎を学んだ後は自分でアプリを1本開発する!(題材は何でもOK) 」 と自分はお伝えしています。
チーム力(チーム力の高め方の例「有識者ミートアップ」「TX English Hours」「3 minutes Tech Talk」)
続いて、チーム力についてです。個人力を伸ばすことと並行で、 「みんなで刺激し合う環境を如何に作るか?」 を考えています。会社・チームで一緒に働いているからこそ、お互い切磋琢磨することで、会社・チームとして、加速度的な成長につながると感じています。
会社の中では、別の記事で紹介した施策「有識者ミートアップ(特定の技術分野ごとに組織横断で技術交流/記事後半で紹介)」や「TX English Hours(英語スピーキングに特化したLTイベント/記事後半で紹介)」などを立ち上げ、現在も続けています。よろしければ、リンク先の各記事をご覧ください。
追加で、もう1つ別の施策「3 minutes Tech Talk(略称3mTT)」をご紹介します。これは、チームで取り組んでいるもので、文字通り、 「みんながそれぞれ気になった技術的なトピックについて、チーム定例のタイミングで、3分間を目安で紹介する」 というものです。我々はモバイル技術を専門分野とするチームではありますが、本トークでは特にテーマは絞らず、技術に関連するものであれば何でもOKとしています。というのも、技術トレンドの変化は激しく、視野を高く持つことが重要だと考えているためです。また、3分間とあえて短くしているのは、みんなの準備の手間をできるだけ軽くすることで負担なくずっと続けられる施策にしたかったためです(ただ、実際は、テーマによっては、かなり盛り上がり、それ以上に話すケースも多々あったりします)。
施策のまとめ
今回挙げたものは、あくまで例であり、正解とは限らないと考えています。他の会社様などで、色んな施策に取り組まれていることもエンジニア仲間からよく聞くことがあります。そして、当然ながら、会社や事業内容、個人、そして、ご家族など仕事以外の面を含め、取り巻く環境はそれぞれ全く異なり、そして、状況は常に変化しています。
だからこそ、今、そこにある正解のように思えるベスト「ぽく見える」プラクティスが、そうではなくなることも頻繁に起こることも感じています。ということで、エンジニアとして生き続けるという道を選択する場合に、最も大切なのは、「社会や技術などのトレンド」を常につかみ、経験を積むだけでなく、自分の頭で「状況を分析し、時には新たな施策」を考え、実現するために行動していくことも大切かなと考えています(と自分自身に言い聞かせています)。
3.人とのつながりを大切に
英語にまつわるトラウマ(?)とトライは、↑で書いたとおりですが、視点を変えて、 人とのつながり についてご紹介します。過去の自分を振り返ると、英語力を上げようにも現地で話す機会がないしということで、完全諦めモード、正直言えば、逃げていました。ただ、それを言い続けていても英語力は高まらないということも実感していました。
そこで、考え方を改め、 「機会がないなら自分で作るぞ💪」 と自身のプライベートプロダクト(話した言葉をリアルタイム翻訳するアプリ)のセカイフォン(Kotlin/Swiftで開発)、セカイフォンPro(Flutterで開発)の実証実験を兼ね、そして、自分への投資とも考え、プライベートでもふらふらと1人で海外を訪れることがあります。
実際に行ってみると、向こうから話しかけられることもある一方で全然それだけでは機会が足りていないことにも気づきました。そこで、 機会をもっと増やすには自分から話しかけることが大切 だと悟り、治安および相手の雰囲気には気を付けつつ、積極的に話しかけるようにしました。インドのカレー屋でご飯を食べていると、小ネタを言ってくる面白い店員がいて、英語でネタ返しをしてみたり、ブルネイ行きの機内で隣の人と話していると話が盛り上がり、めっちゃいい人で空港から市街まで自家用車で送ってくれたりと、 小さな勇気を振り絞ったことで世界が広がった と感じることが多々ありました。
また、エンジニアとしても、たくさんの技術コミュニティやイベントに参加したことで、社外のエンジニアやデザイナー、その他、色々な職業の皆様ともつながり、仲間ができたのは本当に良かったです。これら交流がきっかけの1つとなり、技術書を一緒に書かせていただいたり、最終的には、単著で本を1冊書かせていただいたりという機会にもつながったりもしました。
これまでの出会いに感謝しつつ、自分にできうる形で技術コミュニティやイベントに対して還元すべく、これまでの経験や得られた技術的知見を紹介していくなど、貢献していこうと考えています。これからもよろしくお願い致します。
おわりに
ここまで読んでいただき、ありがとうございました。今回は「ITエンジニアとして大切にしている3つのこと」について、ご紹介しました。当社では、様々な分野で多くのエンジニアが活躍しています。興味を持ってくださった方は、NTTテクノクロス Advent Calendar 2022から気になる記事も読んでいただけますとうれしいです。
明日は@yukimurakiによる「AWS関連の記事」が予定されています。こちらもお楽しみに!