フロントエンドチームはじめてました

こんにちは @mugi_uno です。 某ウイルスで不安な日々が続きますが、ひとまずうがい・手洗いをちゃんとやっています。

フロントエンドチームができてました

f:id:mugi1:20200403115327j:plain:w600
最近買ったiPadProが嬉しくて書いてしまった謎のロゴ

Misocaでは半年ほど前にフロントエンドチームを新たに立ち上げました。 自分たちなりの形でひっそりと活動を続けてきて、幾つか成果も出てきています。

なぜチームを作ったのか / 何をやってるのか といった点をご紹介したいと思います。

徐々に表面化してきたフロントエンドの課題

Misocaでは個々人が「バックエンドエンジニア」「フロントエンドエンジニア」といった肩書を持っておらず、必要に応じてバックエンドもフロントエンドも触ります。

しかし、全体的にはフロントエンド側に比重を置くのは一部のメンバーに限られており、それに伴うさまざまな課題が表面化してきました。

個々人による改善活動が厳しくなってきた

フロントエンド全般に関わるような改善作業は、気になった人が隙間時間を見つけて対応していました。

それはそれで良いことですが、ボリュームの大きいタスクでは「途中で他の作業が忙しくなって続けられなくなる」「永遠に終わる気がしない」といった状態が危惧され、なかなか手をつけづらい状態が続いていました。

誰に頼めば良いのかわからない問題

フロントエンドに注力した作業は、プロダクト・デザインなどさまざまな方面から発生しますが、受け口が存在せずに「これは一体誰に相談すれば...??」となることがありました。

属人化とスキル・知識の偏り

適宜難しい技術要素については勉強会やペアプロ・モブプロを実施していましたが、気軽に相談する口も無いため、一部のメンバーに作業が偏ることも多く、スキル・知識の共有が上手くいかない部分が出てきていました。

→「チームが必要なのでは?」

問題について色々考えてみましたが、「個々人でバラバラに対応可能なフェーズを過ぎてしまったのだろう」と予想し、何らかのチームとして対応する体制を試してみても良さそうだな、という結論に至りました。

チームを作るにあたってやったこと

小さくはじめる

そもそも「チームを作って課題を解決できる」が既に予想でしかなく、空振りに終わる可能性も考えられます。 いきなり大体的にドカンとスタートするにはリスクがあるため、まずは活動時間短め&少人数で立ち上げることにしました。

具体的には次のような形です。

  • 興味のあるメンバーを数人募る
  • プロダクトチームに所属したまま、一部の時間をチームの活動に充てる

万が一「チーム意味なかったな」となっても、スパッとやめられるのが理想と考えました。

フロントエンドチームって一体何?を定義した

チームで集まって最初にやったのは、

  • 自分たちが一体何を目的として集まっているのか
  • 何をする(しない)べきか
  • 誰のために活動するのか

といった点を話し合い、「フロントエンドチームって何?」の認識を揃えました。 (この場はチームメンバーのみではなく、PdMやデザイナーにも参加してもらいました。)

「こんなフロントエンドチームはいやだ」

場の中で、チームのアンチパターンを話し合ってみました。 結果、次のようなものが出てきました。

  • ビジネスの成長に繋がらないことばかりをやってる
  • 全体の生産性向上に繋げられていない
  • 「それはバックエンドの仕事ですから」とか言い出す
  • 「面白そうだし流行ってるから良くわからないけど○○入れようぜ!!」とか言い出す

チームとして不穏な方向に走り出してしまわないよう、あらかじめガードレールを敷設しておくようなイメージです。

ミッションは何か

そしてチームが取り組むべき課題は何なのかを定義します。

最終的には、Misoca全体が望む方向に進むためにベストな支援をしていくのが理想の形だろう、という結論に至り

Web版Misocaにおいて、皆が思い描く理想のユーザ体験を実現するための技術領域での障壁を取り払う

をミッションに定めています。

f:id:mugi1:20200403112433p:plain
esaのREADMEでいつでも読める

チーム稼働から、今までにやったこと

実際にチームが走り出して実際に達成したこととして、わかりやすいタスクとしては

  • TypeScript型定義の強化
    • 皆がコードを書いた時に、無意識に負債を生まないためにコードを堅牢化
    • noImplictAny の無効化
  • Boostrap依存の撤廃
    • Bootstrap(驚異の2.x系)へのJS依存の完全撤廃
    • ユーザー体験統一プロジェクトの支援*1

などが挙げられ、直近ではAPIのGraphQL化などが計画されています。

また、日常的にフロントエンドチームのSlack上で技術相談を受けてペアプロ・モブプロを実施することで、開発チーム全体の支援を行ったり、今までは個人で対応していたような細かい依頼もチームとしてカバーしながら消化しています。

結局チームを作ってどうだったのか

現在もまだ試行錯誤を続けていますが、ひとまず順調に回るようになっており、概ね良い効果が出てきているかなと感じています。

  • 困ったときに気軽に相談できる受け口ができた
  • 長期的な改善計画を立てて、個々人が忙しくなってもカバーできる体制ができた
  • メンバー間でスキルや知見の共有ができるようになった

従来目立っていた明らかな課題は徐々に解消されつつあります。

とはいえチームだからこそ見えてきた課題もまだまだありますので、少しずつより良い形になるように見直していければな〜と思っています。

採用

Misocaではフロントエンドエンジニアを募集しています!