こんにちは、椎葉光行(@bufferings)です。CircleCIでIC(Individual Contributor)としてシニアソフトウェアエンジニアをやってます。20代に小さな開発会社や派遣でプログラミングを覚え、30代をまるっと楽天で過ごし、2021年に41歳で転職しました。現在は大阪の自宅からフルリモートで仕事をしています。
この20年、ずっといろいろなことを学びながら過ごしてきました。その中でも特に楽天で過ごした30代は「密度の濃い10年間だったなぁ」と思います。エンジニアとして技術的な成長はもちろん、チーム作りや組織作りにも取り組み、人と一緒に仕事をすることについて考え続けた10年でもありました。
この記事では私の30代をふりかえり、開発への向き合い方がどう変わったのか、何を意識して働いてきたのかを紹介します。これから先どのようなキャリアパスを描けばいいか悩んでいる30歳前後のエンジニアの方に、「こんな風に過ごした人もいるんだな」という一つの例として捉えていただけるといいのかなと思っています。少しでも何か役に立つことがあれば、とてもうれしいです。
独りよがりだった自分を変えてくれた10年間
30歳ごろは「とても“頑張って”いたなぁ」と思います。凄いエンジニアになりたくて「自分のスキルなんてまだまだだ!」「どんどん勉強してスキルアップしていかなきゃいけない!」と追い詰められたような気持ちで、プログラミングや設計などを勉強していました。
さらに「もっと納得感のある場所で、いい感じにコードを書いてたい」という思いから、アジャイル開発の勉強を始め、コミュニティにも参加するようになりました。当時の職場は計画重視の開発プロセスが主流だったのですが、スクラム道関西のScrum Boot CampやDevLOVE関西のイベントなどに参加して得た知識をもとに、チームのやり方をちょっとずつ変えていきました。
必死でたくさんのことを学び、周りを変えていこうと“頑張って”いましたが、今ふりかえってみると「視野の狭い、独りよがりなエンジニアだったなぁ」と思います。プロジェクトはうまくいっていたものの、人の気持ちを考えるよりも正しさや理想を押しつけて、自分の期待通りにならない状況にイライラしていました。結果として周りのみんなを疲弊させてしまい、自分自身も徐々に疲れていきました。
張り詰めた気持ちをほぐしてくれた海外での経験
そんな折に、以前から参加したいと手を上げていた海外研修に参加できることになりました。アジャイル開発を学ぶため、サンフランシスコに3ヶ月間滞在してスクラムでプロジェクトを回す、という研修です。気持ちを切り替える意味でも参加させてもらうことにしました。
それまで日本のチームでは既存のやり方を大きく変えず、できるところから部分的にアジャイルのプラクティスを導入していました。短い期間で区切ってインクリメンタルに開発を進めたり、要件の一部を小さなユーザーストーリーにして完了したのかどうかを見えるようにしたり、お互いに感謝を伝え合うために「ふりかえり」を導入したり。それはそれで納得して取り組んでいたのですが、どこかでずっと「全体的にアジャイルな開発を経験してみたいなぁ」と思っていました。
そんな自分にとって、3ヶ月にわたりスクラムで実際のプロジェクトに取り組んだことは、とても学びの多いものになりました。スクラムによる開発がどのような流れになるのかを体験でき、スクラムの良さとともにどのような難しさがあるのかを知り、思ったように進まない場合にはスクラムマスターがどう動くのか、それに対してメンバーがどのように反応するのかを観察できたりしました。
その一方で思いがけず大きな体験になったのは、全く違う文化に触れたことです。ときに卓球をしながらリラックスした状態で仕事をする自由な働き方、それでいて作るものはしっかりと作るメリハリのある切り替え、いつでも笑顔で助けてくれる気持ちの余裕など、本当にいいなと思いました。異なる文化の仲間と仕事をすることで、海外の良さを学びました。
それと同時に、日本のチームの良さにも気付かされました。当然のものとして意識していなかったのですが、インフラやセキュリティなど専門チームに守られていることがたくさんあること。上司が理解してくれているから、わりと自由に挑戦できているということ。そして、簡単にクビにはならないという安心感もあるんだなということにも、改めて気付かされました。
日本に戻ってみると、それまでの張り詰めた気持ちは、リラックスしたものに変わっていました。以前は「全体がアジャイルだったら、もっとよい開発ができるんだろうなぁ」「海外は日本のチームよりエンジニアにとって素晴らしい環境なんだろうなぁ」という漠然とした憧れがありました。でも、少しだけですが実際に経験すると「結局、アジャイルにしても海外にしても、全体の難しさは変わらないんだなぁ」ということに気付きました。
自分を取り巻いていた憧れというモヤが晴れ、目の前のことが見えるようになりました。「現状を受け止めて、この場所で自分にできることをやっていこう」と考えるようになり、イライラすることも減って、個人ではなくチームとして仕事ができるようになっていきました。そうやって日々の仕事に取り組んでいると、周りからも「本当に変わったね」と言われ、テックリードを任せてもらえることになりました。
人やチームに寄り添うことの大切さを学んだ
数年たって「チームもいい感じだし、リーダーの仕事にも慣れてきたから、そろそろコードをいっぱい書けそうだー!」と思っていた矢先、マネージャーから「アシスタントマネージャーやってみない?」と声をかけられました。「やることはあまり変わらないよ」ということだったので「ならいっかな」と引き受けたところ、やることが本当にたくさんあって「話が違うやないか(苦笑)」となりました。
ただ、マネージメントの仕事は、それはそれでとても興味深いものでした。それまでは自分のチームのことだけを考えていましたが、グループ内の複数のチームのことを考えるようになりました。採用や育成の方針も考えるし、1on1をしてメンバーひとりひとりのことも考えるし、他のグループのマネージャーたちと意見交換をしながら、組織全体を今後どうしていくかも考える。この経験は自分の視野を大きく広げてくれて、組織の目線で物事を捉えることができるようになりました。
そんなマネージメントを数年間経験して、「さて、この辺りで次のステップを考えなきゃね」ってなったときには、特に悩むこともなくエンジニアに戻ることを宣言して、担当サービスの改善に取り組み始めました。やっぱり自分はエンジニアとしてコードを書くことに軸足を置きたいと感じたからです。当時、マネージャーからエンジニアに戻ることはまだ珍しかったのではないでしょうか。
しばらくサービス改善を楽しくやっていたところ、偉い人の目にとまって部署付けの「改善エンジニア」に任じられました。担当サービスだけでなく、それまで全く関わったことのないグループに入っていって、ボトムアップで状況を改善するという活動の始まりです。エンジニアとして技術面のスキルが求められるだけでなく、開発プロセスの改善をサポートしたり、育成についてマネージャーと一緒に考えたり、それまでの経験をフル活用することになりました。
それまでのサービス改善と根本的に異なるのは「自分のチームに対する活動ではない」ということです。ですから、私が「ここは改善した方がいいな」と思ったとしても、それをチームやチームリーダーが課題として感じていないうちに伝えたのでは、ただの押しつけになってしまいます。実際に何度かそういう行動を取ってしまい、うまくいかない経験をしました。そこから学んだことは、そのチームに寄り添い、彼らが実際に感じている課題から始めることの大切さです。
例えば「開発の知識が特定のメンバーに偏っているので解消した方がいいな」と思ったとしても、その時点で改善提案をするのではなく、チームのふりかえりの中で「レビューに時間がかかる」という課題が出てきたときに「少し立ち止まってペアプログラミングをやってみてはどうでしょうか?」と提案することで、チーム自身が納得して改善に取り組むことができ、結果として自分の気付いた知識の偏りの問題も解消することができます。
また、いちエンジニアとしても、いろいろなチームのメンバーやマネージャーと一緒に仕事をしたり、さまざまなサービスの技術や歴史にふれることができ、本当にたくさんのことを学ぶことができました。この活動は、転職するまでの約5年間続けることになりました。
自分が変わっていく中で大切にしてきたこと
というような10年間を30代には過ごしてきました。ただ「いい感じにコードを書いてたい」と思っていただけなのに「ずいぶん遠回りしたなぁ」という感じもします。
ですがこの遠回りのおかげで、ウェブアプリケーションを中心とした技術力だけでなく、よりよいサービス作りにアジャイル開発で取り組む経験ができたり、組織の流れを捉える広い視野を得たりできました。エンジニアとしては面白いスキルセットになっているのではないかと思います。
満足はしていますが「ふりかえってみるとこうだった」というだけです。「何をやればこうなれる」というものでもありませんが、ここまで自分が大切にしてきたことを3つ紹介したいと思います。
目の前のことを楽しむ
まず「目の前のことを楽しむ」ことです。
30代の初めは「凄いエンジニアになりたい!」という気持ちと焦りが強かったので、最短距離を全力で進みたかったし、そうできていないことにイライラしたりしていました。
でも漠然とした憧れがなくなってからは、だんだんと「そんなことでイライラしててもしょうがないか」と考えるようになりました。「自分が思っていたものと違うなぁ」ってときでも、まずは現状を受け止めて「じゃあ昨日より今日、このプログラムや状況をちょっとでもよくするには、自分に何ができるだろうか?」と前を向いて取り組むことができるようになりました。
その結果、目の前のことを楽しめるようになりました。毎日を楽しみながら自分のペースで前に進み、それでたどり着いた場所を「受け入れたらいっか」と。すると徐々に周囲からの信頼も得られて、いろいろなことを任せてもらえるようになりました。
このとき、忘れないようにしていたのが「いい感じにコードを書いてたい」という自分の中の軸です。何でも面白がれる性格なので、ただ楽しいだけで過ごしていると「気付いたら、どこにも向かっていなかった」ということになりかねないからです。自分の軸を意識し、目の前のことができるだけ軸に沿ったものになるよう行動したり、アピールしたりはしていました。
外の世界
2つ目は「外の世界」です。これには2つの意味があります。
ひとつは「一歩外に出て見る」こと。今いる場所をよりよくしたいってときには、一歩外に出て、別の場所から見てみるのがよいと思います。中にいると見えなかったことに気付けたり、どこをどう変えたらその場所がよりよくなるかを全体の流れの中で捉えたりできるからです。
自分の場合は、海外に出て日本のチームを見たり、マネージャーとしてメンバーを見たり、他のチームの中に入って全く異なるマネージメント方針の中で動いたりといった活動が、それにあたります。やっと慣れて心地よくなった場所から外に出るには勇気が必要ですが、ドキドキしながら一歩外に出て、挑戦する方が自分には合っているみたいです。
もうひとつは「外の世界を持つ」ことです。社外の勉強会やコミュニティは、いつも自分を支えてくれます。「会社が全てではない」ということに気付かせてくれます。また、どのような技術を身に付ければエンジニアとして価値が上がるのか、今の自分は会社の外でならどれくらいの給料をもらえるだろうか、そういったことも意識していました。
外の世界を持っていると、会社への依存が減り、居場所を守ろうとする考えも減るので、選択肢が増えます。実際に、テックリードを任されたときには「スクラムで開発する」という決断をしましたが、これも「失敗したら辞めるくらいで挑戦したらいっか」という気持ちが背中を押してくれました。
自分の選択にする
最後は「自分の選択にする」です。
何かに取り組むとき「これはあの人の仕事だ」という気持ちでいると、うまくいかなかったときに「あの人がうまくできなかったからだ」という考えになってしまいます。そうならないように、できるだけ「自分の選択」として認識するようにしています。
例えば、「あの人の仕事だから『その結果を待つ』ことを自分が選択した」という認識です。ちょっとした考え方の違いですが、そうすることで「自分に『待つ』以外でもっとできることはなかったか?」と、その経験を自分ごととして捉え、次の選択に生かすことができます。
この考え方は、自分が現状を変えていくときの軸にもなっています。誰かが変わるのを期待して待つのではなく、自分の行動を変えることで、相手からも異なる行動を引き出す。それによって徐々に変化を促していくよう意識しています。
結局、これで大切だと思ったのは「人の気持ち」です。正しい主張を押しつけるだけでは、ものごとは動きません。その場では変わったように見えてもすぐ元に戻ってしまい、後に続きません。そうではなく、人の気持ちを大切にして、みんなが自然とそちらに進む流れを作り出すことで、次につながる変化を引き起こすことができるんじゃないかなと思っています。
自ら選択し、勇気を持って一歩を踏み出そう
この記事では自分の30代をふりかえって、開発に対する自分の考え方の変遷と、自分が大切にしてきたことについてお話ししました。自分の想像していなかった偶然の出会いや寄り道を楽しみながら、一歩ずつ前に進んでいるという感じでしょうか。
目標に向かって最短距離を走るのもいいですが、偶然の出会いや寄り道を楽しむのもいいものです。そこで大切にした偶然が、また次の偶然につながって、ふりかえってみると自分が想像もしていなかったこと同士がつながって、今の自分を作っていたりします。
どのような道を選ぶにしても、まずは今自分がいる場所を受け止めることからです。そうすると選択肢が見えてくるので、その中から自分で行動を選択しましょう。その選択がもたらす結果を受け止める勇気を持って、前を向いて踏み出していけるといいのではないでしょうか。
40代の新しい選択
そして私は40代に突入しました。本当に心地のいい場所でしたが、41歳でまた一歩外に出て、新しい挑戦を始めることにしました。30代では幅広く学んできましたが、40代は少し範囲を絞って「技術と英語」の2つに取り組みたいなと考え、ICとしてCircleCIに入社しました。
今はフルスタックエンジニアとして、バックエンドではClojureの、フロントエンドではReactアプリケーションの開発に携わり、毎日英語で仕事をしています。文化の違いに戸惑うこともありますが、「いい感じにコードを書いてたい」のど真ん中を経験できていて、とても楽しいです。
ICのキャリアパスは明確にマネージャーと区別されるので、チームや人のマネージメントが求められることはありませんが、それは知らなくてよいということではありません。結局、マネージメントの視点もふまえて組織全体を考えながら、エンジニアとして行動することが求められます。自分が30代で身に付けたスキルは、今とても役に立っています。
「遠回りのように思えた道が、僕にとっての最短の道だったなぁ」と感じています。これからも、偶然の出会いや寄り道を楽しみながら過ごしていけたらいいなと思います。最後までお読みいただき、ありがとうございました。
制作:はてな編集部
椎葉 光行(SHIIBA Mitsuyuki)
京都大学卒業後、ベンチャーなどを経て、2010年よりWebアプリケーションエンジニアとして楽天グループ株式会社に勤務。アジャイル開発や組織改善への興味からDevLOVE関西などのコミュニティに参加し、スクラムフェス大阪2021ではキーノートを務める。2021年10月よりCircleCI合同会社でシニアフルスタックエンジニア。2023年4月、株式会社カケハシにジョイン。
個人ブログ: Mitsuyuki.Shiiba