クフでダローバルな日記

タフでもグローバルもない

こまり共有:INVEST 原則って両立不可能じゃない?

イントロ

この記事では、良いユーザーストーリーやプロダクトバックログアイテムを書くときの指針である「INVEST原則」を達成するのは無理じゃない?って話を共有したい。 この記事を書く段階ではマジで困ってるだけで全然解決策とか見えてないので、読者に知見を共有できるやつではないです。 いずれ解決したあかつきには解決編を書くかもなんでそのときにはまた見に来て欲しい、もしくは知見を持ってる読者の方は僕に色々教えて欲しい。

こまり

最近、いろいろあってスクラム開発を導入している。*1 で、スクラム開発する上ではプロダクトバックログが超大事らしいので、我々もプロダクトバックログをちゃんと管理しようとしている。

プロダクトバックログに載っているプロダクトバックログアイテムは、ざっくり「INVEST」という性質を満たしていると良いらしい。 なお、 INVEST とは、以下の6つの性質の頭文字を取ったものである。

  • Independent(独立している)
  • Negotiable (交渉可能である)
  • Valuable (価値がある)
  • Estimatable (見積もり可能である)
  • Small (小さい)
  • Testable (テスト可能である)

で、僕は今、この6個を同時に達成するのって無理じゃない?とかなり困っている。

具体例として、ブログサービスを作るプロジェクトがあるとする。 その際、僕だったらざっくり以下みたいなユーザーストーリー分割をして、プロダクトバックログアイテムとしてしまいそう。

  • ブログ管理者として、記事を投稿したい
  • ブログ読者として、投稿された記事を閲覧したい
  • ブログ読者として、記事にコメントしたい
  • ブログ読者として、記事へのコメントを見たい
  • ...

全てそれなりに Small ではあると思うが、 致命的に Testable でなく感じる

というのも例えば「ブログ読者として、記事にコメントしたい」というユーザーストーリーをテストするためには、「ブログ読者として、記事へのコメントを見たい」という別のユーザーストーリーが必要になると思う。 取得・閲覧できなければ、実際に入力した内容通りでコメントできたかどうかわからないんで。 ということは、1つのユーザーストーリーを単体でテスト可能にするためには、「ブログ読者として、記事にコメントした上で投稿したコメントを確認したい」というユーザーストーリーにする必要がある。 しかし…… これは Small でなくなっているのではないか??

じゃあ別々のユーザーストーリーのままで良いのかというと、今度は「コメントしたい」のテストが「コメントを見たい」に依存することになって、ユーザーストーリー間が Independent でなくなるじゃん。

Small にするために、「ブログ読者として、記事にコメントした上で、自分の投稿コメント単体を確認したい」にする術もあるかもしれない。 こうすると、記事に対するコメント全てでなく、そのコメント単体のみを read すれば良くなるので、工数的に小さくはなりそう。 しかし、別にこれってブログ読者としては嬉しくないんで、大して Valuable じゃなくなってる気がする。

どないすんねん……。

逆に、こういういろんな障害を乗り越えて "完璧な" ユーザーストーリーが作れたとしたら、それを解決するしかないんで、交渉可能じゃなくないっすか??

つまり、INVEST 原則をすべて満たすのは原理的に不可能なのでは???

解決への光明

これで記事を終えるつもりだったが、流石に半ギレで終わるのもアレだなと思い直したんで、こういうのを学べば良いんかなみたいなのを挙げてみる。

まず、Testable というやつがどうしてもインクリメンタルな開発と相性が悪いのではないかと思ってしまっている。 しかしながらアジャイルマニフェストが発表されてから今年で20年、さすがに世間ではそういう問題はもう解消されていると思いたい。 巷には『実践アジャイルテスト テスターとアジャイルチームのための実践ガイド』なる本もあるみたいなんで、一旦これを読むと良いんだろうか。

実践アジャイルテスト テスターとアジャイルチームのための実践ガイド (IT Architects' Archiveソフトウェア開発の実践) | Janet Gregory, Lisa Crispin, 榊原 彰, 榊原 彰, 増田 聡, 山腰 直樹, 榊原 彰, 石橋 正章 |本 | 通販 | Amazon

原著者がこの要約版っぽいやつも出してるんで一旦これ読みたい。 https://agiletester.ca/agile-testing-condensed-a-brief-introduction/

あとは普通に、世間のスクラム開発が具体的にどうやってるんか知りたい。 ちょうど弊社のメンバーが今週スクラムオーナー研修を受けに行く *2 ので、彼経由で知見を得られると期待したい。

もしくはこれを読んでわかるでとなってくれた人から教わりたい。情報共有しましょう。

PR

経験を積んだ PO や PdM などの立場の方からすると「すげえ初歩的なところで悩んでるじゃん」と思われるかもしれないですが、こんな感じで皆真剣に悩みながらより良いプロダクトを提供していこうと思ってる会社ですんで、ご協力賜われれば幸いです。

herp.careers

超積極採用中ですので、カジュアルにお話だけでも、もしくは僕に直接連絡くださっても嬉しいです。

参考文献

*1:今回は詳細を省くが、いずれこれについての記事が公開されるかもしれない。

*2:ちなみに費用は会社持ちです[PR]