【42Tokyo×レバテック・エンジニア創出プロジェクト】DeNA現役CTO小林篤氏が語るコンフォートゾーンを抜け出し、未知に挑戦する重要性【イベントレポート】

2022年2月16日

株式会社ディー・エヌ・エー 常務執行役員 CTO

小林 篤

法学部法律学科からエンジニアへ転身し、2011年にDeNAに入社。Mobageおよび協業プラットフォームの大規模システム開発、オートモーティブ事業本部の開発責任者を歴任。2019年より常務執行役員 兼 CTOとしてDeNAのエンジニアリングの統括を務める。

レバテック株式会社とフランス発のエンジニア養成機関『42Tokyo』は、エンジニアを目指す学生に技術力向上とキャリアサポートの機会を提供すべく、共同プロジェクトを始動した。2022年1月14日、同プロジェクトは株式会社ディー・エヌ・エー CTO小林篤氏をお招きし、42Tokyo学生限定の特別講演や公開コードレビューを開催した。

本レポートでは、小林篤氏の特別講演の内容と、当日に行われた公開コードレビューの様子をお届けします。

特別講演「飛躍的な成長を遂げるエンジニアに共通する3つの絶対法則」

小林氏は、「本日は、エンジニア未経験で社会人になった自分の経験と、多くの社会人エンジニアの成長過程を見て学んだことをお話します。今後エンジニアを目指す皆さんにとって、少しでもエンジニア人生について考えるヒントになれれば」と述べ、講演を開始した。

仕事における、ワクワクの重要性

小林氏は、エンジニアとして成長するための絶対法則の1つ目として「ワクワクの重要性」を挙げ、次のように述べている。

「日本の働き方は変わってきてはいるものの、1日のうち8時間以上は仕事をしているので、人生の3分の1は仕事に時間を費やしているんです。そんな仕事の時間が苦痛ばかりだと、自分の人生は豊かにならないし、楽しいほうが間違いなく仕事が捗ります。実際に、楽しんで仕事をしているエンジニアは成長するし、何よりものづくりをする私たちエンジニア自身がワクワクしながらシステムを作れなければ、ユーザーに楽しんで使ってもらえないと思うんです

今までに複数の新規事業の立ち上げを経験し、今なお日々楽しんで仕事をしていると熱く語る小林氏。楽しんで仕事をすることで、フロー状態*1に入りやすいため仕事や取り組み内容の吸収が速く、結果的に深い経験ができると主張した。

※1.時間が経つのを忘れてしまうほど作業に没頭し、外から受ける刺激を無視してしまう状態のこと

自分の責任で、環境を選ぶ

2つ目に、「環境選び」が重要であると述べた小林氏。過去に何度も転職を経験していて、その都度会社選びは非常に難しいと感じている。実際、自分がワクワクできる環境かどうか、熱意をもって打ち込める仕事内容かどうかは、働いてみないと分からないという。

では、その様な状況の中でどのように自分に合う会社を選べば良いのだろうか。それに対して、小林氏は「選考を受けてみて自分の目で確かめるのが最も効果的な方法だ」と述べている。

「自分にはどんな仕事環境が合っているのかは自分にしかわからないので、結局は、自分の目で確かめて決めていくしかないです。面接に実際に参加することで、面接官の振る舞いや考え方、面接の質問内容などから、その会社の考え方やカルチャーが見えてきます。さらに、会社を選ぶ立場から、自分がこの会社に入る価値があるかどうかを改めて考え直すことができますので、そこから見極めていくのが良いと思います。」

コンフォートゾーンから抜け出し、サバイブする

最後に、小林氏は挑戦することの重要性を提示し、普段から意識的に自分自身に小さな変化を起こすことが大事だと述べた。

「物事には制約がつきものです。ただ、制約条件だけを嘆いても前には進めませんので、それを乗り越える力が必要です。今後起こりうる些細な変化に対してストレスを感じないように、日頃から意識的に変化を起こす工夫をしておくことが、一番のトレーニングになります」

加えて小林氏は自身の経験をもとに、コンフォートゾーンを抜け出さないと自分の成長はないとアドバイスしてくれた。

「ある事業の責任者を務めていた時、どんな質問が来ても答えられるようになっていたんです。一方で、このままだと自分の成長が止まると、正直焦ってもいました。ちょうどその時に新しいプロジェクトの話をもらい、新しいチャレンジをすることに決めました。その後も、これまで全く興味のなかった分野でも、自分の成長に繋がると思えば、積極的にチャレンジするようにしています。そして今、とてもワクワクしながら仕事ができていますし、幸せだと感じています。」

公開コードレビュー

当日のオンラインイベントでは、小林氏による公開コードレビューが開催された。参加者は事前にコーディング課題に取り組み、提出されたコードの中からCTO小林氏が何名かの課題をピックアップして、イベント当日に参加者全員の前でコードレビューを行った。

▲小林氏の講演に42Tokyoの学生たちがオンラインから参加

粗探しをせず、リスペクトを忘れない

小林氏はコードレビューの目的を、ソフトウェアの品質を上げることと定義している。コードの中身に問題がないかしっかり確認したうえで、可読性やメンテナンス性を確認する必要がある。また、チームによってコーディング規則を定めている場合もあるため、ルールに沿っているかを確認することも重要だという。

さらに、他者のコードを読むことによって、自分自身の技術力向上にも寄与できる。小林氏はレビューする際に注意すべき点について、次のように話している。

「まずは、相手に対してのリスペクトを忘れないこと。先入観を持たずにレビューをするよう心掛けましょう。粗探しをし始めると、本来の目的とは違った観点まで気になって、本質からズレてしまうので、真摯に向き合うことを心掛けてください

互いに想いやりをもって真摯に取り組むことが大事であると参加者に意識付け、実際のコードを用いた公開レビューを行った。

テスタビリティの高い設計を意識する

小林氏はコードを書く際に意識すべき点の1つとして「テスタビリティの高い設計を意識する」と挙げている。テスタビリティの高い設計により、必要なテストが容易に実行しやすく、不具合が見つかりやすくなるという。

「テスタビリティが低いと、テストがきちんと実行されず、品質の低いソフトウェアをつくってしまう。1つのファンクションやメソッドの中で、コードが地続きに書かれていると、どこで何の問題が発生しているのか分からなくなります。すると、その場のアウトプットが良くても、ちょっとした変化で問題が発生し、原因の追求に時間を要する可能性が高くなってしまいます」

小林氏は、TDD*2を積極的に取り入れるなど、テスタビリティを高め、今後トラブルが発生した場合にも即時に対応できるような環境を整えておくことが、コードを書く上で重要なポイントになると強調する。

※2.Test-Driven Developmentの略称。テストファーストな開発手法の1つで、プログラム本体より先にテストコードを書き、そのテストに通るように本体のコードを記述していく方式のこと

▲実際のオンラインコードレビューの様子

意味の分かる変数名/関数名/メソッド名をつける

コードを書く際の2つ目の注意点として、小林氏は「変数名や関数名、メソッド名をつける時は、誰が読んでも理解できるような、意味が分かりやすい名前にするべき」とアドバイスした。

「例えば、“B”と名付けた変数が開発を進めていく中でどんどん複雑な意味を持ち合わせるようになると、次第に“B”が何を意味しているのかが分からなくなってしまうケースがある。立ち止まって調べ直すとなると、生産性が落ちたりバグが発生する可能性が考えられます」

さらに、膨大な量のコードを書いていると、自分が書いたコードでも、後から解読ができなくなることが多いという。そうならないように、シンプルかつ意味が分かりやすい名前をつけることが大事だと、小林氏は主張した。

適度なコメントを残す

3点目として、適度なコメントを残すことを心掛けてほしいと小林氏は述べている。

「例えば、複雑なアルゴリズムを用いており、コードを読むだけでは理解しづらいものもあります。その場合、自分以外の人が後からコードや変数名、ファンクション名だけを見て、意味を理解するのは難しいです。実際に動かしてみなければどんな動作をするのか読めない場合もあるので、非常に非効率です。そのため、コードの可読性を向上させるコメントはぜひ積極的に残すようにしてください。」

最後に

今回のイベントはエンジニア支援16年以上の歴史を持つレバテック主催のもと、42Tokyoの学生向けに、DeNA現役CTOの小林篤氏より自己成長や仕事に対する考え方に関する特別講演と、実践的なスキルが学べる公開コードレビューを実施した。

42Tokyoの学生は、日々の勉強で年間数万行のコードを積み上げており、ピア・ツー・ピアのコードレビューには慣れているという。今回は、サービスの規模や継続性を見据えたCTOの観点からコードレビューを受けることで、コードを書く作法だけではなく、実際の開発現場でパフォーマンスを最大限に発揮できる方法を勉強した。

今回のイベントは、42Tokyoの学生にとって、社会人として成長する貴重な経験になったのではないだろうか。

イベント質疑応答(一部抜粋)

Q:「変化に耐えるために、普段からトレーニングが必要」とのことでしたが、どのようなトレーニングが必要ですか?ひたすら変化に身を置くことでしょうか。

関連する領域から少しずつ興味を広げていくことが必要だと思います。その中で私がみなさんにおすすめするのは、オープンソースにコードを公開してみることです。世界中の人に自分のコードを見てもらえると、いろんな人からフィードバックがもらえるので、新しい考え方や価値観、自分のコードの妥当性などの一人では得られない情報を得ることができます。自分のネットワークが広がることでたくさんの刺激を受けることができるので、変化に適応するための一歩になると考えています。

Q:企業のトップである小林さんから見て、エンジニアの職業以外もしくはどの領域のエンジニアが、今後より必要になっていくとお考えでしょうか。

問題定義とそれに対しての解決策をしっかりと考えられるエンジニアが重宝されると思います。もちろん、エンジニアとしてのスキルも必要ですが、問題に対する課題設定やその解決策が根本的にズレたり途中でブレてしまうと、いくら技術力が高くても良いものづくりができないんです。ですから、プロダクトマネジメントのスキルは、ものづくりをしていく上でも特に重要だと私は考えています。

Q:「アラ探しをしないという点」が難しいと感じました。アラ探しをしないために、具体的にどのような点に気をつければいいでしょうか。普段レビューをしていると「細かい点が気になってしまい、都度指摘していると時間が過ぎてしまう」という経験が多くあります。

個人の好みによる内容であれば、指摘は不要だと思います。例えば、コードが見やすいように次の行の間にスペースを設ける人もいれば、スペースがあると全体的に冗長になるから嫌う人もいますよね。この様なケースは個人の好みの問題だと思うので、気にせず指摘しないことが大事。一方で、チームで開発する場合は、ある程度ルールを決めることも必要なので、その場合はメンバーと一緒に話し合って相談するようにしましょう。

42Tokyoとは?

◎一般社団法人42Tokyo
・開校 :2020年6月22日
・本校住所 :港区六本木3丁目2番1号住友不動産六本木グランドタワー24F
・授業料 :無料
・応募条件 :18歳以上
・公式サイト:https://42tokyo.jp
・42 Tokyo 公式Twitterアカウント:https://twitter.com/42_tokyo
・42 Tokyo 公式YouTubeアカウント:
https://www.youtube.com/channel/UCS42F2BO1IYmvTcpcasxYLQ
・コンセプトムービー:https://youtu.be/eawhnhTO2oY
・カリキュラムについて:https://youtu.be/i9h8Jy8Zy0I

関連記事

人気記事

  • コピーしました

RSS
RSS