- エンジニアリングマネージャー
- クリエイティブディレクター
- カスタマーサクセスアルバイト
- 他28件の職種
- 開発
- ビジネス
- その他
こんにちは。CAMPFIREでエンジニアリングマネージャーをしている小川です。
先日、SREチームの採用記事を公開しましたが、CAMPFIREの開発チームでもエンジニアを募集しています!
自宅で勤務&柔軟な働き方が可能|課題解決できるRailsエンジニア募集!
本日は応募いただいた方、応募はまだだけど、どんな様子なんだろう?と気になっている方に向けて、CAMPFIREの開発チームがなぜ今採用をするのか、そしてどのような働き方をしているのかをご紹介できればと思っています。
目次
- CAMPFIRE開発チームはどんなフェーズなのか
- CAMPFIRE開発チームが取り組もうとしている課題は何か
- チームとして力を発揮できるための環境づくり
- モノリシックな大規模サービスの複雑さに立ち向かう
- 既存コードのリファクタリング
- CAMPFIRE開発チームの働きかた
- 働きやすい環境
- 「人に優しい」コミュニケーションのチーム
- おわりに
CAMPFIRE開発チームはどんなフェーズなのか
まず、CAMPFIREは今どのようなフェーズにあるのでしょうか。
昨年のVPoEの岩崎の記事にもあるように、ここ数年でCAMPFIREの累計流通額は大きく伸びました。新型コロナウイルス禍という大きな出来事の中で、多くのみなさんにとってクラウドファンディングという事業が必要とされるようになりました。2020年には前年比300%もの支援が集まり、2022年1月時点での累計流通額は540億円を超えています。
今後はさらに、クラウドファンディングを一過性のものではなく、もっと世の中の当たり前としていかなくてはなりません。わたしたちの「一人でも多く一円でも多く、想いとお金がめぐる世界をつくる。」というミッションはより重要な意味を帯びるようになっています。
このミッションを推し進めるためにも、CAMPFIREはよりみなさんにとって使いやすく価値あるプロダクトであることが求められています。
それにともない、開発チームは昨年から採用の強化を進めており、昨年初頭からすると、チームメンバーの数は大きく増え、よりよいプロダクトを作るためのチームづくりを進められるようになった状況です。
CAMPFIRE開発チームが取り組もうとしている課題は何か
こうした中で開発チームはどのような課題に直面し、またどのように取り組もうとしているのでしょうか。その一端についてご紹介できればと思います。
チームとして力を発揮できるための環境づくり
上述のようにCAMPFIREの開発チームメンバーは昨年から増えてきている状況です。その一方で、新しいメンバーが力を発揮できるように、チームとしての取り組みがより求められるようになってきています。
たとえば、サービスについての深いドメイン知識や、このコードがどうしてこうなっているのかといった事情、細かな運用知識といった、これまでであればメンバーにとって暗黙知として共有されてきた部分が、必ずしも自明ではなくなってきています。
こうした状況が慢性化していくと、新しいメンバーにとっては学習障壁が高くなりますし、他方、既存メンバーにとっては負荷が集中し、本来やるべきであったことができなくなるおそれもあります。
CAMPFIREでは必ずしもこの課題が差し迫った状況にあるわけではありませんが、今後もよりサービスを拡大していくために取り組んでいかねばなりません。そのために、こうした暗黙知のドキュメント化や、メトリクスとして計測するといった可視化、ドメイン知識を平準化するための取り組みなどを推進しています。
モノリシックな大規模サービスの複雑さに立ち向かう
拡大しているのはチームだけではありません、サービスのコードとしての規模もどんどん拡大しています。CAMPFIREはモノリシックなRailsアプリケーションの構成ですが、アプリケーションやチーム規模の拡大にともない、課題がいくつか生じてきている状況です。
日々のデプロイ回数が増えてくることによるデプロイの渋滞、アプリケーションコードの複雑性の増大により修正が予期しない範囲に渡って影響するケースの発生、アプリケーションコード各所へのドメイン知識の分散等々・・・。
これらは、大規模アプリケーションとしては定番といってもいい課題であり、サービスとして大きく成長しているがゆえの課題ではあります。しかし、こうした課題をクリアしていかなくてはさらなる成長にブレーキをかけてしまうことになります。決して一筋縄ではいかない課題である一方、サービスの成長につながる非常に取り組みがいのある課題ともいえます。
現在、開発チームとしてはこの複雑性に対し、ドメイン駆動設計の導入や、マイクロサービス化のようなサービス分割のアプローチを試行錯誤している状況です。
既存コードのリファクタリング
サービスが大きくなった場合の課題として、もうひとつ定番としてあるのが、技術的負債の増大です。こうした負債の解消は、機能開発と比較してついつい先送りにされがちですが、放っておくと開発スピードの低速化や、開発者のモチベーションの低下などを招きます。
CAMPFIREではこの課題に早くから取り組んでおり、様々な取り組みをしてきました。一例として「必ずリファクタリングのタスクがカンバン上でひとつは進行中であること」を制限として課しています。これにより、継続的にリファクタリングタスクに着手するようになり、途切れること無く負債の解消に取り組めています。
また、カンバンでのWIP制限も開発チームが機能開発で過負荷とならず、ゆとりを持った開発をするための重要な方針となっています。かかえているタスク量を制限することで、開発者にとってもリファクタリングに取り組む余裕ができます。
こうしたリファクタリングの取り組みについては上掲の岩崎の記事でも触れられていますので併せてご覧ください。
このように、CAMPFIREはチームとしてよりサービスを成長させるためにいくつもの課題に取り組んでいる最中です。でも、より大きくサービスを飛躍させるためには、一緒にこうした課題に取り組んでくれる仲間がもっと必要です。だからこそ、わたしたちはさらに採用を進めているのです。
CAMPFIRE開発チームの働きかた
さて、CAMPFIREの取り組んでいる課題については説明してきましたが、働きかたはどうでしょうか?以下では私自身の目から見たCAMPFIREの働きかたについて書いていきたいと思います。
余談ではありますが、私がCAMPFIREに入社したのは昨年12月で、入社してからもう少しで6ヶ月目といったところです。ですので、CAMPFIREに入ってからはまだ日が浅いといえます。そういった意味でも内部に寄り過ぎない、候補者の方に近い目線で見ることができているのではないかなと思っています。
働きやすい環境
SREチームのエントリにもあるように、CAMPFIREは非常に働きやすい環境です。
- フレックス勤務制度のフル活用
コアタイムは11時〜15時ですが、その時間帯以外の勤務はメンバーの裁量に任されています。
少し疲れて体調がすぐれなかったり、定期的な通院、保育園からの連絡などの突発的な対応等々・・・みなさんそれぞれの理由で早く上がったりをされています。制度はあるけれど、実質9時-18時勤務が固定化してしまっているといったことは全くありません。
- リモート勤務ネイティブ
もともとリモート勤務可であったCAMPFIREは、新型コロナウイルスの流行を期にフルリモート体制に切り替え、さらに将来的にもフルリモート勤務を継続していく方針です。
開発チームももちろん全国各地から勤務可能です。オフィスがある首都圏以外に在住のメンバーが数多くいます。私自身は通勤可能な圏内ではありますが、入社以来、一度も出社したことはありません。
個人的には子どもの保育園の送り迎えでしたり、急にお迎えに行かないといけないケースがあったりするので、先述のフレックス勤務とともに、フルリモート勤務であることで非常に助かっています。
- ミーティングが少なく、開発に集中できる
開発チームはSREチーム同様、非常にミーティングが少ないです。固定のミーティングは毎日の朝会のみ。関わっているプロジェクトによってはミーティングが増えることはありますが、それでも非常に少ない印象です。
ですので、ミーティングのためにあれをやらなきゃこれを準備しなきゃ、に追われることはなく、開発にじっくり取り組むことができます。また、固定で時間を取られないことが、フレックス勤務のフル活用にもつながっているように思います。
- 子育て世代にやさしい
個人的に、子育て世代に制度的にも、文化的にもやさしい環境だと感じます。私は入社して3ヶ月目で子どもが産まれ、この数ヶ月はかなり慌ただしい状況だったのですが、働き方については事前に人事のみなさんや上長とお話をして、色々と配慮いただきました。
私自身は時短勤務というかたちを選んだのですが、男性の育児休暇についても、もちろんご相談可能です。
「人に優しい」コミュニケーションのチーム
リモート前提だと入社して馴染めるのか不安・・・と思われる方もいらっしゃるかもしれません。かくいう私もそうでしたが、CAMPFIREでは新しく入社したメンバーがスムーズにチームの一員として力を発揮できるように様々な取り組みがされており、結果として大きな問題もなくチームに入っていくことができました。
以下ではその点についてご紹介していきます。
- リモートネイティブでも安心できる充実のオンボーディング
開発チームでは1人1人にメンターがつき、困ったことや分からないことの相談から日常の雑談まで幅広くコミュニケーションを取っています。さらに、日替わりでエンジニアや、PM、デザイナーといったメンバーとの2on1タイムがあり、そこで普段ですとなかなか話す機会のない方々とお話することができます。
また、これらとは別に、CP(コミュニケーション・パートナー)制度があり、入社後3ヶ月間は他部署のメンバーと定期的に1on1をして、自チームとはまた違った視点でのコミュニケーションの機会があります。
リモート下ですと、プロジェクトやチームが一緒のメンバーとコミュニケーションが偏りがちです。その点、CAMPFIREではこうした偏りを解消するために意識的に幅広いメンバーの方と接する機会が設けられています。
CP制度や入社オリエンテーションについてはこちらの記事もぜひご参照ください。
新メンバーのオンボーディングをサポートする「Communication Partner制度」のご紹介と利用メンバーインタビュー
- 日々のコミュニケーション
CAMPFIREには「人に優しくあろう」というValueがあり、社内コミュニケーションにもそれが根付いていると感じます。
たとえば社内では「#times_taro」といったような名前の分報チャンネルを各メンバーが持っていて、業務でやっていることや雑談、気になったページなどが日々書かれているのですが、困ったことをフワッと書き込むとすかさずメンバーがヘルプしてくれたりします。
さらに、こうしたときにCAMPFIREでは開発チームのみならず、別チームも垣根なくコメントしてくれるのが面白いところです。こうした点はCAMPFIREの組織文化がよく表れているように思います。
また、テキストコミュニケーションだとちょっと込み入ってしまう話や、雑談などがしたいときはDiscordやGatherなどを利用して、積極的にコミュニケーションが取られています。
おわりに
以上、CAMPFIREがどのようなフェーズにあり、どのような課題に取り組んでいるか、そしてどのような働きかたをしているかについて説明してきました。
開発チームが向かい合っている課題とその取り組みはほんの一端で、まだまだご紹介しきれていないトピックも、もっと深くお話したい点もたくさんあります。働きかたについても同じく、この紙幅の中ではまだまだ語り足りない部分もあります。
そんな中でも改めてお伝えするとしたら、今のCAMPFIREはとても取り組みがいのあるフェーズであること、良いメンバーが揃っていること、そしてそれを支えるとても働きやすい環境であることは強調したいと思います。
なお、CAMPFIREの開発チームが取り組んでいる課題については、今月5/13(金)のイベントにてお話をする予定です。興味をお持ちいただけましたら、ぜひご参加いただければ嬉しいです。
CAMPFIRE Tech Talk #1 エンジニアチームが取り組んでいる課題とこれから
一緒にCAMPFIREをもっともっと広げて、「想いとお金がめぐる世界をつくる」ことに協力してくださるエンジニアのみなさんのご応募を待っています!