こんにちは、asatoです。
先日チームで懇親会をしたときに、「なんで個人開発してるの?」の話になりました。
スクラムマスターの僕がなんで個人開発してるかと言えば、「みんなとおしゃべりしたいから」です。想いをつらつらと記します。
どんなものを作っているのか
例えばTenkiru。あとはこのブログもAstro+Vercelで公開しています。
プロダクトチームは専門性の集まり
スクラムマスターはそれ自体では何の価値もユーザーに提供できません。プロダクトチームが必要です。
プロダクトチームは専門性の集まりです。プロダクトマネージャー、UI/UXデザイナー、フロントエンドエンジニア、バックエンドエンジニア、モバイルアプリエンジニア、QAエンジニア、SDET、テクニカルライター、データアナリスト。それはもう様々な専門性を持ったメンバーがいます。
専門性の相乗効果を実現するのがスクラムマスター
様々な専門性を持つメンバーが集まれば相乗効果が生まれるかと言えばそうではありません。大抵専門性の壁が生まれ、「自分がわからない世界で何かすごいことをしている人」が生まれます。
わからないものとコラボレーションしようとすることはとても難しいことです。わからないんだからコラボレーションできるのか、すると価値があるのか、わかりません。
そこでスクラムマスターです。スクラムマスターはスクラムというフレームワークやファシリテーションスキルを駆使して専門性の相乗効果を実現する専門家です。
わからないことはわからない
スクラムやファシリテーションスキルを駆使して、チームメンバーに働きかけ、専門性の相乗効果を実現します。しかし手当たり次第動いても思った効果は狙えません。一方でわからないことはわからない。 わからないままではリターンの大きい相乗効果のあたりをつけることは難しいです。また、コラボレーションの理由や進め方をメンバーに説明し納得してもらうことにも説得力を欠き、時間がかかります。
わからないことをわかるにするための個人開発
そこで個人開発です。個人開発では先ほどあげた専門性の全てに触れることができます。専門性の玄関で十分です。行ければ客間まだ行きたいです。寝室まで行く必要はないです。
ここまでいければ、それぞれの専門家とおしゃべりができるようになります。
そして、専門家間でコラボレーションするともっと良いプロダクト開発になる場所が見えてきます。この人がやっているこれにあの人の専門性が合わされば…が見えてきます。それを繋げます。いいチームになります。
ちゃんと個人開発をする
目的はチームメンバーとおしゃべりをすることなので、チーム開発の取り組みをなるべくやります。
- プロダクトバックログを作成し真剣に本当に必要なのか、優先順位を考える
- ユーザーストーリーや受入基準も愚直に書く
- FigmaでUIデザイン作ってみる
- なんならプロトタイプも作ってみる
- 一人で相対見積もりするしコミットメントもしてみる
- ER図やシーケンス図も作ってみる
- Docker使う
- TDDでいく
- ボーイスカウトルールを適用する(過去に自分が散らかしたとこだ)
- 誰も見ないのにStorybookもつくる
- なんならStorybookドリブンでコンポーネント開発する
- Storybookでコンポーネントテストも書く
- E2EもPlaywrightでテスト自動化する
- FormatterやLinterも導入する
- GitHub使う
- PRからmainにマージする
- GitHub ActionsでCICD環境を整える
- 小さなバッチでトランクベース開発
- Slackへの通知もする
- 外形監視とか導入してみる
- 障害がおきたらとりあえず慌てる、短期復旧を目指す
- Google Analyticsも入れて毎日見る
- Search consoleでインデックス登録とかもする
- Xなどでリリースインフォする
- 新しいツールやライブラリ、フレームワークもどんどん使ってみる
チームメンバーはこんなことをしているんですん。みんな尊いです。
まとめ
みんなとおしゃべりするために、個人開発しています。 あと、楽しいから。😀