コミュニティオ採用広報です!
コミュニティオでは、企業の組織パフォーマンスの向上を支援する組織強化SaaSである「チームスイート」の開発・運営をおこなっております。
感謝称賛を通して従業員エンゲージメントの向上とチームビルディングを行う次世代型サンクスカードツールである「チームステッカー」や、タスクのログを記録することで業務の見える化・レポート作成などマネジメント支援・時間管理ツール「タイムス」などの機能を持つ統合型サービスです。
特に「チームステッカー」は、グローバルな展開をするメーカー企業やプラント開発会社、金融SIなど日本を支えてきた大手企業への導入が相次いでいます。
そんなコミュニティオのエンジニアが日頃どういうライフスタイルでどういった開発を行っているのかを、エンジニアの竹田さんにお話を伺いました。
ーー まずは簡単に自己紹介をお願いします!
Communitioでサーバ・サイドの開発を行っている竹田です。エンジニアとしてのキャリアは複写機のドライバ開発で始めました。その後ネットワークのミドルウェアの開発、VRゲームの開発など色々な領域で開発を行ってきました。
CommunitioではWebサービスの開発でサーバ・サイド、モバイル・クライアントの開発を主に担当しています。
ーー それでは竹田さんの1日の生活を教えてください!
平均的な1日のスケジュールだと、朝は7時に起床します。
ーー 始業は10時ですが、かなり早起きですね
そうですね、子供が小さいので朝の支度や当校の準備などをするのでこのくらいです。
子供の準備や見送りなどをすませてからは自由時間なので、仕事の前に技術カファンンスの動画を見たり、本を読んだりする時間をとっています。フルリモートになってからは通勤にかけていた時間を自由にできるようになったのはよかった点ですね。
ーー なるほど。たしかにそれはリモートワークの利点ですね。
デイリースクラムは全社員で。フロント陣も開発陣も対等に意見を言えるチームにしたい
10時からはデイリースクラムなので、9時50分くらいまでにはデイリースクラム用の日報を準備しておくようにしています。日報には前日の作業概要と相談事項があればそれを書いておきます。
コミュニティオでは、開発陣だけでなく全社員(社長・営業・企画・デザイナー・開発者)でデイリー・スクラムを実施していて、お客様に関わる重要な情報をメインに各自の状況を確認しています。
ーー 毎朝、全員が参加するのミーティングをやっているわけですね
前職では開発陣が強い組織に所属していて仕様検討などは開発目線の議論が中心になりがちで改善したいなと感じていました。現在のチームではその反省を活かしてフロント陣も開発陣も対等に意見を言えるチームにしようと心がけています。
新しい機能仕様の検討ではお客様の声をフロント陣から聞きつつ、コストやパフォーマンスなどの実現可能性は開発陣で相談しつつ、時には喧々諤々の議論になることもありますが、お客さまのお役に立てるサービスの開発という同じ目標に向かってチーム一丸で進んでいます。
ーー 毎日全員でミーティングをやっていれば、チーム一丸となれますね。
デイリースクラムが終わった後は、開発メンバーだけで開発系の議題を相談してから、各自の作業に取り掛かります。だいたい18:30くらいまで作業をしたら、いったん上がって家族と一緒に夕食を食べます。
通勤をしていた頃は子供と一緒にご飯を食べられる時間に家にいなかったので、一緒に夕飯を食べられる日は少なかったですが、今は通勤がなくなったおかげで子供と一緒にご飯を食べられるようになりました。
ーー かなりフレキシブルですね。
そうですね。まだ通勤していた時にショックなことがあって、朝、保育園に子供を送っていったら「また明日ね」って言われたんです。
ーー たしかに、それはショックですね。
その時って、仕事が終わって家に帰ってくるのが夜の9時頃なんですよね。だから次に会うのは翌朝になるんですが、ちょっとショックでした。今は夜ご飯とか一緒に食べられるのがすごい良いです。
リリース前などの忙しい時は、必要に応じて夕食後にまた作業に戻ることもあります。障害対応やリリース作業などもこのタイミングでやることが多いです。特に何もなければ戻らずに退勤する日もあります。
オンラインミーティングは常時接続。雑談もしてます。
ーー それぞれのライフスタイルに合った働き方ができる環境というわけですね。でもそれだけ皆さんフレキシブルだと、相談したいことがある時は大変じゃないんですか?
そんなことないですよ、開発チームは勤務時間はオンラインミーティングに常時接続しています。コミュニティオではMicrosoft Teams上に「Air Office」という名前のチャットルームを作っていて、そのルームでは物理的なオフィスと同様に相談があればいつでも話しかけて良いことになっています。
相談したいことがあるたびにビデオ会議を調整して開催するみたいな一手間が省けてとても快適です。常時接続してるので、時々雑談もしてます。
ーー 常時接続していると、ご家族に影響はないんでしょうか?
妻もフルリモートワークで働いていて会議が多いので、実は郊外に引っ越したんです。広めの家なので各人の書斎で仕事ができるているので、問題ないです。
ーー たしかに、通勤がなくなったぶん住む場所にも縛りはなくなりましたよね!
リモートワークで働く場所にしばられないことと作業時間が柔軟なため用事があるときは助かっています。私の場合、作業を中断して子供の予防接種やペットの病院に行くことができています。
いまのエンジニアチームは3人体制。属人化を防止するため少しずつ作業範囲を被らせています
ーー エンジニアチームはどういった感じで開発をしているのでしょうか?
弊社には現在私を含め3人のエンジニアが所属しています。ひとりががフロントエンド、もうひとりがサーバ・サイドとインフラ、私がサーバ・サイドとモバイルを主に担当しています。
基本的な役割分担は得意な分野で受け持っていますが、人数が少ないため他のエンジニアの担当でも作業を受け持ちます。フロントエンド担当がインフラのコードを書いたり、私がフロントエンドのコードを書いたり、少しづつ作業内容の分野を被らせることによってコードやノウハウの属人化を防いでいます。
ーー なるほど。どういった技術を使って、どんな開発をやっているのか教えてください!
サーバ・サイドはScalaがメインの言語です。
メインのサービスのWebサーバはPlayFrameworkで開発しています。関数型プログラミングが好きなメンバーが多いので関数型ライブラリZIOを導入しています。並行処理が書きやすく型推論なども良く効いて開発しやすいです。
AWS Lambdaなどクラウドの実行環境のサポートが手厚く開発しやすいのでWebサーバ以外の定期処理などはTypeScript&Node.jsで実装することが多いです。
WebのフロントエンドはTypeScript & Vue.jsで実装しています。モバイル・クライアントはFlutterを利用してクロスプラットフォーム開発を行っています。
Flutterもバージョン1リリース時に導入して、導入直後は日本語入力周りのバグで苦労しましたが、ホットリロード機能・UIのリアルタイム・プレビューのおかげで効率よく開発できました。
インフラはAWSとAzureの2つを使っています。Infrastructure as Codeの原則に則ってAWSのCDKやTerraformで構築作業はできるだけ自動化しています。
BitbucketとGitHubでバージョン管理を行い、Bitbucketパイプライン・GithubCI/CDパイプラインを構築しています。最初はBitbucketを主に利用していたのですが、インフラとしてAzureを利用することが多くなってきたのでAzureとの親和性の高いGitHub Actionsを最近は利用しています。
ーーありがとうございます!最後になりますが、これからどういう人と一緒に働きたいですか?
ユーザ数の多いお客様が増えてきました。システムの品質を保ちつつスピーディな機能開発を行うことが求められるフェーズです。
システムのスケール・アップ&スケール・アウトに興味がある、品質と短期的・長期的な開発スピードのバランスを考慮できるエンジニアの方とぜひ一緒に働きたいです。またチームの人数が少なく色々な分野で自分の意見を持ってチャレンジできる環境なので自分の専門分野に縛られず挑戦できる方は楽しめると思います!
ーーありがとうございました!
コミュニティオは、各個人のライフスタイルに合わせた柔軟な働き方が可能な環境です。
興味を持っていただけた方は、お気軽にお問い合わせください!