Sansan Tech Blog

Sansanのものづくりを支えるメンバーの技術やデザイン、プロダクトマネジメントの情報を発信

関西支店チームMAIDOのエンジニアの日常

はじめまして。Sansan事業部プロダクト開発部の加藤です。関西支店勤務のソフトウェアエンジニア(以下、エンジニア)として2018年9月に中途採用で入社しました。 転職するときは面接などで話を聞くものの、実際のチームの雰囲気や働き方は入ってみないとわからないことが多いので、転職活動をしていた頃の自分に向けてチームMAIDO(まいど)のエンジニアの日常を紹介してみたいと思います*1*2

はじめにチームの概要と1週間の流れを紹介し、毎日の基本的な流れと曜日ごとに異なる点を紹介していきます。

チームMAIDO

Sansan*3のプロダクト開発を行っている部門では、プロダクトの機能ごとに複数のチームに分かれています。各チームには、プロダクトマネージャー(以下、PM)とデザイナーが1名ずつ、エンジニアが複数名いるのが基本的な構成です。

関西支店で Sansan のプロダクト開発を行っているエンジニアは8人おり、全員が MAIDO という名前のチームに所属し、主に管理者向けの機能やユーザの初回ログインに関連する機能を開発しています。PMとデザイナーは東京本社に在籍しており、ビデオ会議でコミュニケーションを取っています。PMは毎週木・金曜日に出張で大阪に来てくれ、対面で過ごす時間もあります。

ちなみに MAIDO という名前ですが、コテコテの大阪人の集まりというわけではありません。他のチームはもっとカッコいい名前だったりしますが、個人的にはキャラが立って覚えやすい良い名前だと思います。

1週間の流れ

チーム MAIDO では、スクラムとカンバンを併用した開発プロセスを採用しています*4。スプリント期間は1週間で、金曜日の午後にプランニングしたタスクを次の週で消化します。金曜日の午前中にスプリントレビューを行い、その週の成果をデモします。

開発する機能については、PMが開発チームと相談しつつ決めます。スプリントに入るときには大まかな方針の設計は済んでおり、デザインもできあがっています。スプリント内で細かな設計、開発、テストまで行い、デモを行った翌週には本番環境にリリースします。

毎日の基本的な流れ

まずは曜日に関係なくやっている毎日の基本的な流れを紹介します。

朝会

エンジニア職の始業は9:30です。9:20ごろにオフィスに着くとエンジニアの中では一番乗りです。チーム MAIDO のエンジニアは毎日9:45から朝会を行っています。朝会では前日やったことと当日やること、連絡事項をサッと共有します。最後に今日の気分を5点満点で何点かを共有します。

f:id:ktx33:20181205140935j:plain

運用チェック(持ち回り)

毎朝、前日に本番環境で起きたアプリケーションエラーのログがまとまって Slack に通知されます。アプリケーションレベルのエラーについては、各チームのエンジニアが確認・対応します。チーム MAIDO では1週間ごとに持ち回りで対応しています。発生したエラーによって、サポート部門に共有したり、運用バックログ(後述)に積んで後日修正したりします。単に無視しても問題ないケースもあります。

f:id:ktx33:20181205141737p:plain

開発(午前)

朝会が終わると開発を進めていきます。カンバンにプランニングしたタスクが積まれているので、1つずつ取り組んでいきます。新しいタスクを始めるより、終わらせることを意識します。

f:id:ktx33:20181219104618j:plain

最近では3~4人で集まって開発するモブプログラミング(以下、モブプロ)に取り組んでおり、複数人でやることが増えています。

チーム MAIDO のエンジニアは半数以上が入社1年未満であることもあり、チームの担当領域でもよく知らない箇所があります。モブプロで知識を共有することで、入社して間もないメンバー(筆者含む)でもスムーズに開発に入れています。

f:id:ktx33:20181212135809j:plain

昼休み

昼休みは1時間です。関西支店周辺は飲食店が数多くあるので、みんなで連れ立って食べに行く人もいれば、デスクでお弁当を食べる人もいます。後述しますが、社内の勉強会や読書会に参加することもあります。

f:id:ktx33:20181212135832j:plain

開発(午後)

午後も引き続き開発です。

モブプロするタスクばかりではないので、各自のデスクで開発する時間もあります。関西支店のエンジニアのデスクはすべて昇降デスクになっており、気分に応じて立って開発する人もいます。チームの座席は背中合わせになっており、わからないことがあれば気軽に聞けます。

f:id:ktx33:20181219104621j:plain

ちなみに GitHub の Pull Request を使った Git Flow ベースの開発です。普段は feature ブランチで開発して develop ブランチにマージします。リリース時にリリースブランチにマージして、リリース後に master ブランチにマージします。

開発環境は Visual Studio Professional 2017 に ReSharper を組み込んだものが標準です。エンジニアのコミュニケーションは Slack で、他職種を含めた全社でのコミュニケーションは Workplace(Facebook の企業向け版)を使います。ビデオ会議は、G Suite の Hangouts Meet が主ですが、最近は WebEx に移行しようとしています。

勤務時間中は iPad の Zoom で東京のオフィスと常時接続しており、話したいことがあればマイクのミュートを解除して話しかけることができます。PMやデザイナーと細かい要件について話をすることが多いです。東京側から声がかかることもあります。

f:id:ktx33:20181203123739j:plain

夕会

終業は18:00なので、17:45から夕会を行います。夕会はエンジニアだけでなく、ビデオ会議で東京と繋いでPM・デザイナーと一緒にやります。夕会の時間までに Slack に今日の気持ちを絵文字で投稿し、それについて話します。業務で詰まったところの話でも、プライベートのイベントについてでもなんでも構いません。最後に司会担当の人が小噺と称して好きなことを話す時間があります。

f:id:ktx33:20181205141010p:plain

定時後はすぐに帰る人もいれば、集まってプライベートの開発プロジェクトを進める人もいます。リリースするコンポーネントによっては、プロダクトの利用者が少なくなる定時後にリリース作業を行う日もあります。PMが大阪に来る木曜日には飲みたい人で集まって飲みに行っているようです(筆者は参加したことない)。

その他の業務・イベント

上記の基本的な流れのほかに、曜日ごとの業務やイベントを紹介します。

全社会議(月2回・月曜日)

月曜日の朝は月2回全社会議があり、会社全体の方針や共有事項が伝達されます。全社会議の日は、関西支店のメンバー全員が大きな会議室に集まり、ビデオ会議に参加します。早めに来ると毎回違った朝食が無料で食べられます。

f:id:ktx33:20181203122853j:plain

読書会(毎週月曜日)

チーム MAIDO では、毎週月曜日の昼休みに読書会を開催しています。今は 進化的アーキテクチャ をみんなで読み進めています。個人的には、Sansan のプロダクトは10年を超えているので、サービスを維持しながら進化させていくヒントを得られたらなと思っています。社内で勉強会を開催すると懇親費用の補助が出るので、読書会の日はお弁当を買ってきてみんなで食べます。ちなみに書籍の購入も補助があります。

f:id:ktx33:20181203172146j:plain

リファインメント(毎週月・木曜日)

チーム MAIDO では、次の2つのバックログを管理しており、毎週リファインメントとして集まって30分~1時間程度議論する時間を設けています。

  • プロダクトバックログ:今後開発する新機能を管理する
  • 運用バックログ:緊急ではない不具合の修正やリファクタリングしたい箇所などを管理する

毎週月曜日には運用バックログリファインメントとして、エンジニアが集まって運用バックログを見て、優先順位を議論します。

毎週木曜日にPMが出張で大阪に来ると、プロダクトバックログのリファインメントを行います。みんなでプロダクトバックログを見ながら、大まかな設計や見積もりをします。PMとエンジニアで今後どのような機能を開発するか、それによってどのようなビジネス価値があるかといった認識を合わせます。

f:id:ktx33:20181205141742j:plain

イエーイ(不定期)

火・水曜日は会議があまりないので、在宅勤務(当社ではイエーイという制度名です)する人にはやりやすい日です。在宅勤務の人が居る日は、夕会だけでなく朝会やその他の会議でもビデオ会議を使います。エンジニアは1人に付きデスクトップPC1台とノートPC1台が支給されるので、ノートPCを家に持ち帰るか、一定の条件を満たして申請すれば私有PCも使えます。デスクトップPCのほうがスペック*5が良いので、VPNとリモートデスクトップで自宅からオフィスのデスクトップPCに接続して作業することが多いです。

f:id:ktx33:20181219104634j:plain

チームイベント(毎週金曜日)

金曜日はチームイベントの日で、ほぼ丸1日使ってPMへのデモ・振り返り・プランニングなどを行います。

  • デモではそのスプリントに完成した機能をみんなの前で披露し、フィードバックをもらいます。
  • 振り返りでは、そのスプリントにあった良かったこと(Keep)やイマイチだったこと(Problem)を付箋に書き出します。Problem については原因を掘り下げ、改善案(Try)を出します。
  • プランニングでは、次の週に使える時間に応じて開発する機能を決め、詳細なタスク出しと時間見積もりを行います。

個人的には振り返りの心理的安全性が高いのが素晴らしいと思っています。誰かが問題だと感じていることがあれば、ちゃんと議論して改善していこうとする空気があります。チームイベントがある金曜日には夕会はやりません。

f:id:ktx33:20181203172240j:plain

部門会議(月2回・金曜日)

月2回、金曜日の夕方に部門会議があり、部門内での共有事項が伝達されます。みんなで会議スペースに集まってビデオ会議で会議に参加します。

勉強会・イベント参加(不定期)

将来的に業務で使う可能性がある技術について、社内で業務時間に勉強会やワークショップを開催することもあります。最近では Go言語の勉強会やユーザーストーリーの書き方のワークショップがありました。

社外の勉強会に参加して、新しい情報を収集したり、登壇してフィードバックをもらったりすることもできます。業務に関連があれば業務時間として参加できますし、有償のカンファレンスに個人として参加する場合にも補助があります。

f:id:ktx33:20181218125145j:plain

まとめ

中にいると当たり前に思えることも入社前はわからなかったりするので、なるべく丁寧に書こうとしたら思いのほか長くなってしまいました。少しでも雰囲気が伝われば幸いです。

関西支店勤務のエンジニア採用情報はこちらです!

hrmos.co

*1:採用プロセスの中でオフィス見学なども行っていますが、個人的には短い時間で判断するのは難しいと思っています。

*2:本稿の記述はすべて執筆時点のものです。会社の制度やチームの運営は日々改善されているので、古くなるかもしれませんがご了承願います。

*3:本稿におけるSansanは会社名ではなく、法人向けのプロダクト名です。

*4:チームMAIDOに限定しているのは、他チームの細かな運営について知らないためです。以降についても同様です。

*5:筆者の場合、デスクトップPCはCore i7-7700K、32GBメモリ、512GB NVMe SSD。ノートPCはCore i7-7600U、24GBメモリ、512GB NVMe SSDでした。ノートPCはWindowsかMacを選択できます。

© Sansan, Inc.