成長するほど、仕事はもっと「面白く」なる。ソニックガーデン流のキャリアステップで拓く、自由で奥深いソフトウェア開発者への道 - ブログ
お客さまのビジネスの成長をソフトウェアで支える「納品のない受託開発」を提供する株式会社ソニックガーデン
https://www.sonicgarden.jp/join_us/blog_articles/software_developer
※ こちらの記事はソニックガーデン公式ブログより転載したものとなります。
「いいコードと、生きていく。」これは、生涯にわたって創造性と自由を追求するソニックガーデンのソフトウェア開発者の生き方そのものを表す言葉です。分業を避け、顧客との対話から設計、プログラミングまでを一貫して担い、動くソフトウェアづくりを目指す。本記事では、そんな彼らの特徴と、プログラミングを楽しむ「遊び」の期間から始まるユニークなキャリアステップを解説します。
ソニックガーデンが考えるソフトウェア開発者は、一般的なエンジニアといくつか違いがあります。
一般的な開発会社では、納品を前提としているため、どのようなソフトウェアをつくるか予め設計する「要件定義」をしてから開発を進めていくことになります。エンジニアにとっては、この要件定義が最初の目的であり、要件定義通りに開発を進めていくことでお客さまに価値を提供していきます。
一方、ソニックガーデンのソフトウェア開発者の目的は、設計書や要件定義の完成ではありません。私たちが目指すのは、紛れもなく「動くソフトウェアを作ること」です。そして、その「動くもの」の源泉はソースコードに他ならず、コードを書く行為こそが開発の核であると、最も強く重視しています。
ソースコードを生み出すのは、自分で書くことはもちろん、昨今ではAIを活用したソースコードの生成にも取り組んでいます。自分で書くか、AIの力を借りるかは手段の違いであり、大事なのは最終目的である「動くソフトウェアを作ること」が達成できるかどうかです。
多くの開発現場では、効率化のために分業を行います。大きくは、お客さまとコミュニケーションを取りながら要件定義や設計を考えるプロジェクトマネージャーや開発リーダーと、要件定義に沿ってコードを書くエンジニア、プログラマの二つに分かれます。要件定義や設計などを上流工程、プログラミングを下流工程として語られることも多いです。
しかし、ソニックガーデンはこうした工程ごとの分業を避けます。価値のあるソフトウェアを生み出すには、全体を深く理解した一人の人間が、お客さまとのコミュニケーション、全体設計からプログラミングまで、開発の全ての工程を責任を持って携わることで、最大の価値を提供できると考えているからです。実際に、ソニックガーデンのメイン事業である「納品のない受託開発」では、分業は行わず、必ず一人のソフトウェア開発者がコミュニケーションから設計、開発までを統括しています。
(案件規模によっては、統括をするソフトウェア開発者のもとで、チームで開発を行うことはあります)。
エンジニアに限らず、ビジネスで成果を出すために、多くの場合はスクールに通ったり、社内研修を受けたりして「知識」を習得することを重視しています。
こうした知識の習得はとても重要ですが、一方で、ソフトウェア開発者にとって必要な技術力やセルフマネジメントスキル(詳しくは後述)は、座学だけでは身につけることはできません。
参考書を読んだだけでは自転車に乗れないのと同じで、継続的な「訓練」を通じて身体に染み込ませていくものだと考えています。そのために、ソフトウェア開発者はハッカソンや社内プロジェクトでの開発といった実践を通じて、スキルアップを図っていきます。ソフトウェア開発者にとっての成長とは、実践を積めば積むほど上達していく、終わりなき、やりがいに満ちた道なのです。
エンジニアのキャリアステップとして一般的なのが、管理職としてプロジェクトマネジメントなどを行うようになり、徐々にコードを書くことから離れていく……という流れです。こうしたエンジニアとしてのキャリアの歩みを目指す方も多いでしょう。
しかしながら、これまで解説してきたように、ソニックガーデンのソフトウェア開発者は、動くソフトウェアを作ることが何よりの目的なので、一生コードを書き続けていきます。こうしたスタンスを示すために、ソニックガーデンの企業理念には「いいコードと、生きていく。」という言葉があります。
ソニックガーデンのソフトウェア開発者にとって、コードを書くことは、人生の一部です。だからこそ技術を磨き続け、コードを書くことを楽しめるように様々な工夫を取り入れているのです。
それでは、ソニックガーデンでソフトウェア開発者はどのように成長していくのでしょうか。それは、明確な上達のステップとして用意されています。ただし、これは単なる役職の階段ではなく、仕事の中身や求められる能力がどう変化していくかを示す「道のり」です。
ソフトウェア開発者の道のすべては、ここから始まります。プロの「型」を学ぶ徒弟制度に入る前に、まず何よりも大切なのは、プログラミングを「面白い!」「楽しい!」と感じ、心の底から「もっとうまくなりたい!」という内発的な意欲を育むことです。
これを私たちは「遊び」の期間と位置づけています。
ピアノのレッスンを思い出してみてください。いきなり厳しい基礎練習から入るより、まずは自由に鍵盤に触れて音を出す楽しさを知る方が、上達への意欲は遥かに高まるはずです。
実際に、過去に新卒で入社した社員は、最初の半年間、コードレビューも細かい指導も一切ない環境で、自由にゲーム開発に没頭しました。自分で作ったゲームを家族に遊んでもらい、喜んでもらう。その純粋な喜びが「もっと面白いものを作りたい」「もっと上手になりたい」という強烈な動機に火をつけ、彼女は自らの意志で本格的な修行の道へと進んでいきました。
この「遊び」の期間は、プログラミングへの適性や情熱を自分自身で見極めるための、何よりも重要なステップなのです。将来的には、高校生や大学生が入社前にこの「遊び」を体験できるような場を創っていく構想もあります。
「遊び」を通じて「もっと上達したい」という意志が固まると、この徒弟制度の門を叩きます。ここからは、お客様から対価をいただいて価値を提供するプロフェッショナルとしての「型」を学ぶ期間です。
ソニックガーデンでは、親方、弟子という関係性の中で、ソフトウェア開発者として活躍するためのスキルを磨いていきます。親方のもとでは、技術力はもちろん、自律して働くためのセルフマネジメントスキルも同時に磨いていきます。
参考記事:人を育てる仕組みから、組織を育てる仕組みへ〜現代に再発明した徒弟制度3年の学び
参考記事:セルフマネジメントで自由に働くまでの5段階ロードマップ 〜 自己管理だけではない
経験を積んでいくと、親方以外のベテランソフトウェア開発者の案件に参画することもあります。仕事内容はステップ2と変わりませんが、親方のもとを離れることで、より自律的に、仕事で成果を出すことが求められます。
ソニックガーデンのキャリアステップは、決して簡単な道のりではありません。しかし、簡単ではないからこそ、そこにはどこまでも探求できる「奥行き」があり、一生をかけて打ち込める「やり込みがい」があります。
一つひとつの段階を着実に踏みしめていくことで、ソフトウェア開発者としての確かな実力が身につき、その実力があなたを「自由」にします。責任が増えるほど仕事がつまらなくなる、なんてことはソニックガーデンではありません。むしろ逆です。できるようになることが増えるほど、仕事はもっと「面白く」なり、より「自由に働ける」ようになるのです。
だから、焦る必要はまったくありません。10〜20代でソフトウェア開発の楽しみを知り、自律的に働くスキルを身につけ、30代で案件参画で成果を出せるようになり、40代で開発責任者として活躍する。それくらいの長い時間軸で、じっくりと自分の成長と向き合えばいいのです。
そして忘れないでほしいのは、この道のりは苦しい修行の果てに楽園が待っている、という物語ではないということ。最初の「遊び」の精神は、どの段階においても失うことはありません。親方の手伝いをするときも、案件で成果を出そうと頑張るときも、ベテランの開発責任者としてプロジェクトに臨むときも、誰もが遊ぶ感覚を忘れずに働くことを理想としています。
そのための一つの取り組みとして、ソニックガーデンでは技術力を磨き、コードを楽しむための時間として毎月社内ハッカソンを開催しています。このハッカソンには新人プログラマもベテランプログラマも参加し、フラットな環境の中で楽しみながらソフトウェア開発を行います。
参考記事:遊びから始まるプログラミング 〜 ハッカソンが育む文化と成長
このように、ソニックガーデンには、ソフトウェア開発者の道を極め、生涯にわたって創造性と自由を追求し続けたいという人ばかりが集まっています。
そして、そんなソフトウェア開発者たちが築き上げてきたのが、今回紹介したキャリアステップです。やりがいに溢れ、一生打ち込めるほどの魅力に満ちたソニックガーデンの「ソフトウェア開発者の道」に興味を持った人は、ぜひご応募ください。