こんにちは。7月からSaaS Product Teamに参加している横山です。
Uzabaseにきて大体半年が経ちました。 SaaS Product Teamに来るまでは、比較的ウォーターフォールがメインの現場にいたのですが、 ここにきて驚いたことのうち3つを書いていきたいと思います。
SaaS Product Teamってどんな開発をしているのだろうというのが少しでも伝わればと思います。
仕様書のドキュメントがない
SaaS Product Teamでは、ドキュメントがほどんどありません。 アーキテクチャ図や、手順書のようなものはありますが、それもドキュメントの形式で残っているものではないです。
理由としては、ドキュメントを残さない理由として属人化を防ぐというのが挙げられます。
野口さんも以前書いてくださっています。
「ここではすべてが流れている!」SPEEDA の開発チームに入って驚いた 3 つのこと - Uzabase for Engineers その2
しかし、仕様書が全く存在しないのか、というとそうではありません。 SPEEDAにおける仕様書はE2Eテストになります。いわゆる「実行可能なドキュメント」と呼ばれるものです。 ここでGaugeという自動化ツールを使用し、より仕様書のようにすることが可能です。
参考: GaugeのConceptを用いてテストシナリオをより仕様書のように記述する - Uzabase for Engineers
このように、「コミュニケーション」と「実行可能なドキュメント」を用いてドキュメントを書かない開発を実現しています。 実行可能なドキュメントがきちんと作られている状態に非常に驚き、感動しました!
常にペアプロを行っている
SaaS Product Teamでは、ほぼ常にペアプロを行っています。
詳しくは鈴木さんの記事が書いてくださっていますが、開発チームでは、大体1時間毎(チームにより異なる)にペアを交代します。こうすることで、一つのストーリーを特定の人のみが知っている状況というのを防げます。
ペアプロと育休の取得しやすさの関係について - Uzabase for Engineers
属人化した状況を作り出さないだけでなく、鈴木さんが書いてくださっているような休みやすい環境(育休に限らず)や、知識の共有(業務的知識、技術的知識)、相手の考え方を知る面でも非常に良いと感じています。 特に相手の考え方を知るという面では、タスクをもらい、期限までにレビューをしてもらいマージするのとは異なり、私にとって非常に大きな学びと発見をもたらしてくれています。衝突することもありますが、そこからの議論でより良い意思決定ができていると感じています。
触れる技術の幅が非常に広い
SaaS Product Teamでは非常に様々な技術に触れます。 チーム毎に採用している技術は異なりますし、チーム内でも触れる技術はいくつもあります。 例えば、今私が参画しているプロジェクトでは、TypeScript、Python、Kotlin、Elixirを使用していますし、CI/CD、インフラ面もチームで担当します。ここでのチームで担当とは、チームの中でインフラやる人、Kotlinやる人のように分かれているわけではなく、チームのメンバー全員で担当するという意味です。
また、チームの入れ替えもあるので、あの技術を触っているチームに行きたいというのがある場合、本人の希望を最大限尊重し、希望するチームに移動することもできます。
私も一つのプロジェクトでこれだけ多くの技術に触れたのは、SaaS Product Teamが初めてでした。 多くの技術に触れられるSaaS Product Teamは非常に楽しく、学びになりました。
SaaS Product Teamでは非常に多くを学び、多くの驚きと発見のある半年間でした。しかしSaaS Product Teamはまだまだ成長していきます。
SaaS Product Teamがどのようなチームなのかは以下をご覧ください。 journal.uzabase.com
少しでも興味のある方は以下からエントリーお願いします! apply.workable.com