こんにちは、WantedlyでiOSエンジニアをしています杉上です。
僕達が普段チームで大事にしていることについてご紹介します。
何を作っているチームなの?
僕達のチームは、Sync という気持ちのよいコミュニケーションで人と人がつながるビジネスメッセージサービスを開発しています。
チーム
マルチプラットフォームな展開のサービスでは、たくさんのエンジニアが開発に関わってるのではと思われますが、少人数のチーム体制に拘って開発を行っています。コンパクトなチームだとフレキシブルで迅速な意思決定が行えるのと、スピード感のある開発基盤(インフラ)のおかげで高い生産性のアウトプットを出しながらプロダクトの改善を進められています。
Wantedlyでは多様なサービス(Feed, Case, Tools)も展開していますが、他チームも少くない人数の少数精鋭体制で開発を行っています。各チームは入社1年目、2年目のエンジニアがリーダーシップを発揮してチームを率いてくれています。また多くの興味を持ってくれる学生インターンにも恵まれて、たくさんのインターン生が来てくれており、活気ある若いエンジニアに囲まれながら開発に取り組んでいます。
注: インターン生の写真は雰囲気を伝えるイメージであり本人ではありません
マネジメント
セルフマネジメントによる進捗管理と、すべてのメンバーによる企画、アイデアの創出を大事にしているので、プロジェクトマネージャやディレクターを専業として担当する人はいません。
俯瞰でチーム全体の状況や方向性を考え行動をする、チームのリーダーを担うメンバーはいます。リーダーは進捗を管理したり、タスクの指示出しをするようなトップダウンな役割ではなく、プロダクト(チーム)をゴールへと力強く牽引する推進力(コミット)と高いオーナーシップを持っています。
マネージャーなしで、各メンバーの協調と相互作用によってうまくチームが形成されているのは、皆が同じゴールを共有し同じベクトルを向いているからだと思います。各メンバーが会社のビジョン、プロダクトのコンセプトとユーザへのバリューをメンバーがしっかりと意識しているので、個々の思考や行動も自然とチームに貢献するようになります。
オーナーシップ
指示に従うだけのタスクをこなす仕事観ではなくて、シゴトに対して、プロダクトに対して各々がオーナーシップを持ち、熱意を持って能動的に取り組むことが自己の成長にもやりがいにもつながると考えています。
コミュニケーション
年齢や職歴に関わらず新卒とシニアも対等に意見を交わす、すごくフラットな人間関係が築かれています。自分は社内のエンジニアの中では最年長で、チームメンバーのエンジニアは新卒なのですが、そんなことは意に介さずお互い遠慮無く議論が行えています。
会議室でのチームミーテイングはできるだけ控えて、 最小限の人数によるアドホックな会話を活発に行っています。いつでも気軽に質問・相談ができる雰囲気作りができているので、ヘッドホンをしながら自分の世界に入っているときでも、みんな快く質問や相談に応じてくれます。また集中したいときは、集中部屋という専用な空間が用意されています。インターン生にも30分悩んだら気軽るに相談してねと伝えています。
口頭による意思疎通は、お互いイメージしているものや論点が実は異なっていることもあるので、積極的にラフな絵を書きながら視覚的に認識を合わせつつ会話を進めています。紙やホワイトボードもよいですが、iPadProとApplePencilの組み合わせが大変便利で、書いたものは後からでも簡単に引き出せますし、ささっと相手にも絵を送ることができるので大変重宝しています。
エンジニアリング
僕たちはエンジニアの役割を、プロダクトを通してユーザや世界の問題を解決することだと考えています。そもそもどうようなプロダクトをユーザに届け何を価値として感じてもらうのか、提供しているプロダクトの課題は何か、問題は与えられるものではなく、自分たちで問題そのものを発見、認識することが重要であると思っています。
その上で、問題と現状とのギャップをどうやっている埋めるのかを思案し、チームで考え抜いて、ソリューションとして落とし込んでいきます。プログラミングはソリューションを成す中心的な手段の1つですが、問題解決のためにプログラミングで成せることの枠を超えて多様な方法を模索し実行しています。
- 自分たちのプロダクトを日常的に利用する
- 自分たちも1ユーザの視点になる
- 自分たちがファンになる
自分たちが開発するプロダクトと常に向き合うこと(ドックフーディング)で得られる気づきは、ユーザの視点を持った問題発見につながるので、とても大事だと思っています。
ユーザ体験
僕たちはプロダクトのデザインがユーザに届けるものをとても大事にしています。ここでいうデザインはUIだけに留まらず、IA、UX、IxDを包括したユーザが触れる体験そのものです。プロダクトの要所要所となる体験はチームメンバー全員で一緒に議論し、キーコンセプト、何を問題とするのか、どういう体験と価値を提供するのか議論を重ね、よりよいプロダクトの模索とメンバーの認識のすり合わせを行っています。
デザイナーxエンジニア
デザイナーは届けたいプロダクトのゴールのためにエンジニアリングに歩みよってくれます。
エンジニアもまたプロダクトのゴールのためにデザインに歩みより、デザインの意図や背景を理解して作り届けたいと思っています。
プロダクトカルチャー
僕たちは、この3つのカルチャーをいつも本当にできているのか、自問したりチームに問いたりしながらプロダクトを作っています。議論が白熱して盲目的に話が進む時も、誰かが「これって◯◯じゃないよね?」と一言発すると「確かに◯◯でなかったから、考えなおそうか」とみんなが納得感を持って再度議論を始めることが出来ます。
Simple is Not Easy
作る側が使う側のことを徹底的に考えぬく
「これって機能や操作が多すぎて、シンプルじゃないんじゃない?」
Code Wins Arguments
議論するより実際に動くものを作って評価する
「A案、B案の体験を机上でこれ以上議論するより、両方プロトタイプを作って動きを見てみよう」
User First
ユーザの声ではなく、ユーザの本質的な欲求に応える
「あるユーザから◯◯機能がほしいですとフィードバックが来たけど、安易に入れないで本当に必要な体験か考えてみよう」
オイシックスさんで開催された勉強会の登壇資料はこちらになります。
プログラミングや技術的な話の枠を超えた、iOSのクリエイティブに関わるすべての人のための素敵な勉強会でした。
あわせて読みたい
この記事でお話した各内容をより深く掘り下げた記事があるので是非あわせてお読みください。
デザイナーの持つ熱い熱量が伝わる内容になっています。
オーナーシップやWantedly Wayについて、より深掘りした内容になっています。
エンジニアのシゴトとは何か、より深掘りした内容になっています。