2023年8月7日
1977年生まれ、大阪府豊中市出身。株式会社ソニックガーデンのRailsプログラマ、およびプログラミングスクール「フィヨルドブートキャンプ」のメンター。ブログやQiitaなどでプログラミング関連の記事を多数公開している。将来の夢はプログラマーをみんなの憧れの職業にすること。主な著書に「プロを目指す人のためのRuby入門 改訂2版 言語仕様からテスト駆動開発・デバッグ技法まで」(技術評論社)などがある。
前回では、筆者がプログラマとして入社したSIer時代のエピソードと、そのあとに入社した外資系企業での社内プログラマとしてのエピソードを書いてみました。IT業界に入って間もないエンジニアさんや、これからの自分のキャリアを考え始めたエンジニアさんにとっては、少し現実味のある「生存戦略」が垣間見れたかもしれません(まだ読んでない方はこちらからどうぞ!)。
さて、今回の記事では、筆者がソニックガーデンに入社してから現在に至るまでのエピソードを書いていきます。筆者がRubyプログラミングやQiita記事の投稿を始めたのはこの時期からなので、筆者のことを「RubyやQiitaで有名な伊藤さん」と認識されている方は、もしかするとこちらの方が興味深い内容になっているかもしれません。
「自分はこのままマネージャーになってコードが書けなくなるのかな」と悩んでいた筆者は、何かのきっかけで、株式会社ソニックガーデンの社長である倉貫さんが書いたブログ記事を目にしました。具体的にどんなきっかけだったかは忘れましたが、おそらくTwitterのタイムラインに流れてきたとか、はてなブックマークで記事を見かけたとか、そんなきっかけだったんじゃないかと想像します。
そのとき筆者が読んだのはこの記事です。
オフェンシブな開発〜「納品しない受託開発」にみるソフトウェア受託開発の未来
その当時、「ウォーターフォール開発じゃ誰も幸せにならない、でも、アジャイル開発はアジャイル開発で、実際にトライしても結局ウォーターフォールの呪縛から抜けられず、うまく回らない」という別の悩みを抱えていた筆者は、このブログに書かれていた「納品のない受託開発」というコンセプトに強い衝撃を受けました。自分がやりたかった理想のシステム開発がそこに書かれていたからです。
俄然ソニックガーデンに興味を持った筆者がホームページを見に行くと、そこには「プログラマを一生の仕事にする」というビジョンも掲げられていました。加えて、2011年当時はまだ珍しかった「リモートワークもOK」という勤務条件も書いてありました。兵庫県の田舎町に住む筆者にとって、これは朗報です。また、筆者はRubyやRuby on Railsにも興味があったので、ソニックガーデンは興味がありました。ソニックガーデンはRuby on Railsでwebアプリケーションを開発している、というのも魅力的でした。
あらゆる面において「これは……!!!」と心躍る情報が並んでいたため、筆者はすぐに採用ページを開いて応募しました。
ソニックガーデンは「履歴書を送って、面接を数回受けて合否判定」というようなよくある採用システムではなく、「しばらく一緒に働いてみて(もちろん仮想的に、です)、お互いに納得すれば入社する」という方式を採っています(現在は多少仕組みが変わっていますが、基本コンセプトは同じです)。
実は、筆者はRubyに興味はあったものの、実際にRubyでコードを書いたりしたことはほとんどありませんでした。当時はよくこんな無謀なことをしたな、と思いますが、半年ほど必死で食らいついて、なんとか内定をもらうことができました。あとから聞いた話では僕が採用されたのは、こんな理由があったからだそうです。
あと、これは個人的な想像ですが、半年経っても採用試験がいつ終わるか先が見えなかったので、「これっていつまで続くんですか?そろそろ入社したいんですけど!!」という旨をやんわり伝えて、自分で自分を推したのも良かったのかなと思ったりしています(苦笑)。
何はともあれ、筆者は34歳で2回目の転職を成功させることができました。抜群の技術力や、華々しい業務経験がなくても転職できたのは、以下のようなポイントを押さえていたからかもしれません。
就職や転職をする場合、たぶんみなさんはインターネットの情報などをいろいろ調べて「この会社は自分のやりたいことができる会社か?」とか「ブラック企業だったりしないか?」と興味がある会社の情報収集をすると思います。なぜそんなに頑張って調べるのかというと、就職や転職は人生における大きなイベントのひとつであり、もし失敗するとダメージが大きいからですよね。
実はこれは会社が新しい社員を採用するときも同じです。会社側も採用を失敗したくないので、「この人は弊社のカルチャーにフィットしそうか?」とか「即戦力となるスキルや、今後の成長が見込めそうなポテンシャルを持っているか?」ということを知りたがります。そのために書類選考や面接があったりするわけですが、履歴書や面接から収集できる情報には限りがあるため、インターネット上のみなさんの活動をチェックしてみる、ということは普通にあると思います(みなさんが就職を希望する会社をネットで検索するのと同じように!)。
常日頃から就職や転職を意識しながらブログを書け、とは言いませんが、以下のようなアウトプットがあれば企業側から見たあなたの印象も良くなるかもしれません。
上の項目の多くはTwitterなどのSNS上の活動にも当てはまります。とくにTwitterなどは、つい思ったことを反射的に投稿してしまいたくなるかもしれませんが、そうするとネガティブな話題や攻撃的な論調に陥りやすいかもしれません。ですので、投稿ボタンを押す前に「本当にこの内容で投稿しても大丈夫か?」と一呼吸置くことをお勧めします。筆者は「この内容を自分の親や、将来成人した自分の子どもに見られても恥ずかしくないか?」と自問してから投稿するようにしています。
もちろん、ブログもTwitterも基本的に自分の好きな内容を自分の好きなタイミングで書けばいいのですが、上で挙げたような項目を多少意識しておくとエンジニア人生が悪い方向に進むことはない(きっと良い方向に進むはず!)と筆者は考えています。
話は前後しますが、筆者は最初に入社したSIer時代に「情熱プログラマー(当時の書籍名は「My Job Went To India」)」という書籍を読み、強く感銘を受けました。
この本は筆者が将来のキャリアを考える上で非常に大きな影響を受けた一冊なのですが、中でもとりわけ「一番の下手くそでいよう」というフレーズがひときわ印象に残っています。これはいつも自分より優れた人たちと一緒に仕事をすれば自然と自分のスキルが向上するはず、という考え方です。SIer時代も外資系半導体企業時代も、入社後数年で「伊藤さんはすごいね」とチヤホヤされるポジションを獲得していた筆者は「いつか一番の下手くそと呼ばれるような環境で働きたいなあ」とちょっとうぬぼれていました。
そして満を持して入社したのがソニックガーデンなのですが……本当に「一番の下手くそ」になってしまいました!!
まず、Ruby on Railsの実務経験がほとんどなかったため、知らないことだらけで簡単な機能追加するのにも毎回ひいひい言っていました。
また、それまでは社内システムをつくることが多く、インターネット上に一般公開されるwebアプリケーションを開発したことがほとんどなかったり、AWSのようなクラウドサービスも全然触ったことがなかったりして、インフラやネットワークに関する話題が出てくると「あのぉ〜、すいません、OAuthって何ですか?」とか「SSLの証明書ってどうやって設定するんですか?」みたいな基本的な質問を繰り返していました。
さらに、ソニックガーデンでは「納品のない受託開発」という月額定額のシステム開発サービスを提供しています。「納品のない受託開発」ではプログラマはお客さまのパートナーとして、ビジネスの成長を支援するシステム開発を行います。ソニックガーデンのプログラマは、お客さまから言われたとおりのものをつくるのではなく、お客さまの問題を解決する最適解をお客さまと一緒に考えていく姿勢が求められます。それまでは「仕様は上から降ってくるので、あとはそれをどう実装するか考えるだけ」で良かったのですが、ソニックガーデンではそれでは通用しません。この点も従来のやり方・考え方を180度転換する必要があり、大変苦労しました。
このように、何をやるにしても「今までと勝手が違う!」「全然パフォーマンス出せない!!」ということの連続で、ソニックガーデンの入社後数年はかなり自信を喪失していました。今だから言えますが、「何をやってもダメダメなので、もう辞めてしまった方がいいのでは」と思ったことも何度かあります(苦笑)。
というわけで、本当に「一番の下手くそ」になってしまうとめちゃくちゃ大変です!
ぬるま湯につかり続けるのも問題ですが、「一番の下手くそ」状態は想像の何倍も大変なので、あまり気軽に「一番の下手くそになりたい」と考えない方がいいと思います😅
では筆者はどうやって「一番の下手くそ」から脱出したのでしょうか?残念ながら「こうすればあなたもすぐに脱出」というような銀の弾丸はありません。しかし、今振り返るといくつかのポイントがあったように思います。
Ruby on Railsやgem(Rubyのライブラリ)に関する知識は日常的にコードレビューを受けたり、コードレビューしたりすることでどんどん知識が溜まっていきました。コードレビューを受ければ先輩プログラマから「こんな書き方ができるよ」と教えてもらえますし、自分がレビュアーになれば「へえ、こんなテクニックが使えるのか」と自分の勉強になります。
ソニックガーデンでは、入社間もない新人は先輩プログラマと一緒に毎週ふりかえりを行います。振り返りではKeep(良かったこと・続けたいこと)、Problem(悪かったこと・改善が必要なこと)を洗い出し、Tryとして「良かったことをさらに良くするには?」「悪かったことを改善するには?」の答えとなる具体的なアクションを決めます。
全然ダメダメだった僕もダメなまま放置されていたわけではなく、ふりかえりを通じて「どうすればより成長できるか」を先輩プログラマの助けを借りながら考えていました。
ちなみに、ふりかえりを「反省会」のように捉えてしまうと、自分の悪いところばかり考えてしまいがちになりますが、そうではなく「うまくいったこと」や「成長したこと」を認識して良かったことや自分の長所をさらに伸ばすことも大事です。世の中には自分で自分を褒めるのが苦手なタイプな人もいるので、そういう場合はメンター役の先輩プログラマが後輩を上手に誘導してあげる必要があります。
ソニックガーデンには「宣言大会」という文化があります。これは半年ないし、1年に1回ぐらいの頻度でメンバーが集合し、「私はこんなことをやります!」という目標を宣言するイベントです。宣言する目標は当たり障りのないものよりも、みんなが「えっ」と驚くような大きな目標の方が喜ばれます(苦笑)。
いわば自分で自分に「無茶振り」するようなイベントなのですが、一見すると無茶な目標でもみんなの前で「やります!」と言ってしまうとあとに引けなくなって実現できたりします。筆者の場合、「地元でRubyの勉強会コミュニティを作ります!」と宣言して「西脇.rb」というRubyコミュニティをつくったり、「RSpecの本を日本語訳します!」と宣言して『Everyday Rails – RSpecによるRailsテスト入門』という本(電子書籍)を翻訳したりしました。そして、Rubyのコミュニティをつくったり、英語の本を訳したりした経験が自分のRuby力の向上に役立ちました。
日々の開発やコードレビューを通じて学んだ技術知識は積極的にQiitaやブログにアウトプットしていきました。アウトプットするときは「その知識を知らなかった頃の自分自身が泣いて喜ぶぐらいわかりやすい内容」になることを意識しながら書きました。また、記事を書いていると「そういえば、ここはなぜこうなるのかよくわからないな」と思うような部分がよく出てきます。そうした疑問点は放置せずに、なぜそうなるのかを徹底的に調べた上で記事を書きました。
「徹底的に調べて・徹底的にわかりやすく」記事にまとめると、その技術に関する理解が深まり、記憶としても定着します。
こうした活動を続けていくうちに筆者はだんだん「一番の下手くそ」状態から脱出できました。
一時期はかなり自信を喪失していた筆者ですが、そんなとき家族がいてくれて良かったなと思ったことが何度もありました。妻や子どもたちとたわいのない話をしたり、一緒に出かけたりすることが筆者にとって非常に良い気分転換になりました。特に筆者はリモートワークで働いていることもあり、もし家族がいなかったら仕事が終わったら即、自分一人になってしまい、業務終了後も「自信喪失モード」を切り替えられなかったと思います。
リモートワークは仕事とプライベートが地続きになりやすいので、強制的にオンとオフを切り替えられるような仕組みがあった方が良いです。筆者の場合は妻や子どもたちがその役割を担ってくれました。
他にも筆者は「(気持ち的に)ちょっとしんどいな」と思ったときは次のようなことをしています。自分なりのストレス発散方法をすでに確立している人は大丈夫ですが、そうでない人は参考にしてみてください。
入社してから2〜3年すると、筆者もだんだん先輩プログラマと対等に渡り合えるようになってきました。筆者は現在も株式会社ソニックガーデンで現役プログラマとしてRuby on Railsを使ったwebアプリケーション開発を行っています。
また、社外ではQiitaやブログなどのアウトプットを中心に、以下のような活動実績を築いてきました(これは前回の記事の冒頭にも書いた内容です)。
筆者は今年で46歳になりますが、「プログラマ35歳定年説」に反して、まだ開発の現場でコードを書き続けています。プログラマ歴はもうかれこれ20年になりました。
「なんで本を出版できたの?」とか「どうしてそんなに有名になったの?」といった疑問に対しては、次回の記事で詳しく説明する予定です。
というわけで、今回は筆者がソニックガーデンに転職してから現在に至るまで(2012年〜2023年現在)を振り返ってみました。
ソニックガーデン入社後の数年間は自分のスキル不足からなかなか苦しい時間を過ごしましたが、荒波に揉まれたおかげで技術者としてずいぶん成長できました。もし、みなさんの中で憧れのITエンジニアになったものの「思った以上に仕事が難しくてしんどい……」と嘆いている人がいたら、この記事を読んで「ああ、伊藤さんでもそんな時期があったのか。じゃあ僕も頑張ろう!」と思ってもらえると幸いです。
さて、連載はあともう一回続きます。次回は僕自身が身をもって実感した「アウトプットのメリット」について書いてみようと思います。次回もお楽しみに!
関連記事
人気記事