※2021年9月1日時点の内容です
私はとても内向的な子どもでした。大人になるにつれて少しはましになりましたが、実際のところ今でも変わっていません。当時、なんとか友達をつくることはできましたが、ほとんどの時間を絵を描いたり、本を読んだり、ゲームをしたりして一人で過ごしていました。幸運なことに、家族や友人たちはそれを普通のこととして受け入れてくれましたし、思いやりのある素晴らしい環境で育ったと思っています。
フランスでは通常、学生は夏に約2ヶ月の休みがあります。中学時代に夏休みをどう過ごそうか考えているとき、初心者向けのHTMLとCSSを使ってWebサイトを構築する方法を学べるサイトにたどり着きました。私はそれに夢中になり、友人と一緒にさまざまなサイトを作り始めました。同時期にAdobe Photoshopにも出会い、飽き性だった私は毎週ごとに、最初から全部作り直して新しいバージョンを作り続けました。
高校生活の終盤、進路について、私は芸術かコンピュータサイエンス工学のどちらを専攻するか非常に迷いました。ですが、両親に相談したところ、芸術の道よりはコンピュータサイエンス工学を専攻した方が将来的に安心だと言われたのでコンピュータサイエンス工学を選びました。今は仕事に対してとても情熱を持っていますし、空いている時間にアートのスキルを磨くことにも取り組めていますので、当時の選択が正しかったと感じています。
大学には、修士課程を取得するまで5年間通いました。そこの強みは、プログラミングのためのプロジェクトベースのアプローチを取り入れているところで、ビデオゲームやOCR、Photoshopのようなプログラム、チェスAIなど、ほとんどのプロジェクトをゼロからつくりあげていました。具体的なゴールを意識しながら新しい何かを実践的に学ぶにはとてもいい方法だと思います。その他に、データ構造、言語理論、ネットワークアーキテクチャ、プロジェクト管理などのより理論的なコースだけでなく、経済学、法律、マーケティング、インパクトのあるプレゼンテーションの作り方などのIT関連以外のコースもありました。最後の2年では専門分野を選択する必要があったので、私は「マルチメディアと情報工学」を選択しました。
いえ、そんなことはありません。アメリカや他のヨーロッパの国々も検討しましたが、私と同じソフトウェアエンジニアでもあるパートナーと話し合い、今までとまったく違う体験がしたいという結論になりました。それが実現できそうな日本を最終的に選び、そこからは日本に絞って新しい機会を探し、今ここにいます!
旅行で2回訪れ、合わせて5週間程度滞在したことがありました。東京、箱根、京都、大阪など主要都市を巡るいわゆるゴールデンルートで訪問しましたが、典型的な観光地以外も少しだけ訪問してみたいと思い、高山や大阪周辺の街も訪れました。一番楽しかったのは倉敷です。とても素敵な場所でした。
8時間もの時差がある中で、新しい会社にリモート勤務で入社するだけでも大変ですが、私のようにもともと内向的な性格の人間にはなおさらでした。上司が状況をよく理解してくれ、私が問題なく参加出来るように会議時間の調整などもしてくれたのでとても感謝しています。
さらに、スマートニュースではSlack上で「ドーナツタイム」という取り組みを行っていて、社内の他の人とランダムにペアを組み、チャットで話すことができます。一人ではなかなか話しかけられないような人もいるので、とてもいい取り組みだと思います。最近では、日本にいるアメリカ人と、アメリカにいる中国人という社員2人とドーナツタイムをしました。例えば、それぞれの家族との連絡の取り方や、母国ではどんなメッセージングアプリが流行っているのか、などなど。こういうおしゃべりはとても新鮮に感じられました。新しい人と知り合えるのはいつだって嬉しいものですね。また、お互いを理解するのにも役立つと思います。相手のことをよく知れば、相手の考え方や話し方がわかるので、すれ違いをを減らすことができます。
もうひとつ役に立ったのは、コミュニケーションがオープンであることでした。リモート環境では共有される情報が可視化されますので。私のマネージャーは、素晴らしいオープンコミュニケーションのロールモデルだと思っています。彼はSlackのDMの代わりにパブリックチャンネルを使い、私たちが知る必要のあることはタグ付けしてくれました。このような情報共有はプロジェクトを成功させるために重要ですし、特に人々がリモートで仕事をしている場合はなおさらです。
「バス・ファクター」という言葉をご存じですか?これはリスクを測定するツールで、前提はこうです:チームメンバーの一人がバスにはねられたとして、チームはプロジェクトを継続できるだろうか?この比喩は、一人の人間がすべての情報をコントロールしていると、もしもの時にチーム全体のリスクになりうることを示唆しています。
最後に、スマートニュースが紹介してくれたリロケーション会社の存在もありがたかったです。彼らは、私が日本に到着してから生活に慣れるまでのあらゆるプロセスを代行してくれる人を手配してくれました。
私たちの仕事は、SmartNewsアプリの核となる体験に責任を持つことです。ユーザーの興味を引き、アプリ上でのコアな体験を強化するような方法でニュースを配信すること。これが最もシンプルな定義です。チームには分隊と呼ばれるものがありますが、現在、私はニュース特集チームに所属し、ユーザーに適切なコンテンツを提供することに取り組んでいます。
また「ユニファイド・エクスペリエンス」という分隊もあります。複数のデザイナーがさまざまな機能に取り組んでいる場合、UXは常に一貫しているとは限りません。例えば「もっと読む」などのボタンを表現する方法は無数にあります。UIとUXが統一された体験を提供するために、このチームがそれを担当しています。一見地味な作業に見えますが、とても重要なことなのです。
私はニュース特集チームの一員であると同時に、Androidエンジニアチームの一員でもあります。私の時間の一部は、エンジニアとして機能の技術仕様を書いたり、それを実装したりすることに費やされています。他のメンバーが作成したコードのレビューも行いますし、チームの仕事の方法論に改善を提案することもあります。また、毎週月曜日の朝にはペアプログラミング・セッションを行っています。オンラインで画面を共有しながら、同僚と一緒に機能を実装していきます。
前職では、チームはもっと少人数で、私がコードベースの唯一のオーナーでした。しかしここでは、コードベースは私が以前使っていたものよりもはるかに大きく、それぞれが自分が担当している部分に集中することができます。同時に、アプリの他の部分がどう動いているか理解することも大事にしており、必要に応じてチームメンバーは私を、逆に私もチームメンバーを頼るというお互いをフォローし合える環境になっています。
スマートニュースに来て思うのは、先輩から学ぶことが多いということです。前の会社では、ほとんど一人で仕事をしていましたし、作成したコードについてのフィードバックもあまりありませんでした。でもここでは、コードレビューをたくさん行っています。先輩たちはとても精緻な目を持っていますし、コードの品質に高い基準を設けています。
ソフトウェア・エンジニアになるのはそれほど難しいことではありませんが、優れたエンジニアになるのは難しいことだと思います。素晴らしい仲間からフィードバックを受けることで、今自分が作っているコードは、入社したばかりの頃に書いていたものよりも良くなっていると成長を実感できます。
ここで素晴らしいと感じたことの一つは、どんな意見も個人的に受け取られないところです。例えば先輩エンジニアに対して「こういった所を改善できると思います」などのコメントをしたときに、その人はあなたが言ったことをよく考慮し、真剣に検討した上で判断をしてくれていることが伝わってきます。誰もがオープンマインドで、「よし、ちょっと調べてみよう」と考え、確認をして必要であれば修正し、そして意見が食い違う場合は話し合いを行います。どちらにせよ対話が生まれるので、お互いの立場をより理解する機会にもなります。
おすすめの本を通して人を知る
プログラマーの必読書とされている「クリーンコード」は、何度も読むことをおすすめします。一回で全ての内容を理解する必要はありません。最初は記憶に残らなくても、次に読むときには記憶に残るかもしれません。これを繰り返していくことで、本の内容を自分の中に落とし込むことができます。もちろん、このような類の本は、自分のコードベースやコーディングガイドラインに沿って関連性が高いものを選んで参考にすれば良いので、選択肢の一つとして考えていただければと思います。
私が初めてこの本を読んだのは、おそらく5年前、インターンを終えて働き始めたばかりの頃でした。通勤時間が1日約2時間あったので、内容を十分頭に入れることができました。同僚にこの本に基づいてアドバイスをすることもありました。
内容を端的に言うと、ただコードを書くことも良いですが、読みやすく、よく考えらてれていて、メンテナンス可能なコードを書くことが、長期的には大きな違いを生むということです。
『Clean Code アジャイルソフトウェア達人の技』
著者: Robert C. Martin
出版社: KADOKAWA
出版年: 2017