こんにちは!Cloud EngineerのGenです。
アジャイルを実践していくなかで、重要な概念があります。それはユーザーストーリー(ストーリー)と言われるものです。この概念の理解・実践は、従来の工程からアジャイルプロセスに移行する際においてなかなか難しいところであるといえるでしょう。
今回は、この「ストーリー」について説明していきたいと思います。
アトラシアン公式ページ内にある「Agile Coach」というページから引用してみたいと思います。
A user story is the smallest unit of work in an agile framework. It’s an end goal, not a feature, expressed from the software user’s perspective.
Atlassian Agile Coach: User Stories
「ユーザーストーリーとは、アジャイルフレームワークにおける最小作業単位のことである。これは機能ではなく、ソフトウェアのユーザー視点で表現された最終目標である。」
うーん…難しいですね(笑)
ストーリーの説明は沢山あるのですが、基本的にソフトウェア開発に用いられるもので、いまいち理解できない方もいるのではないかと思います。
実はわたくし、ホテルレストランで7年ほど働いた経験がありまして、飲食業の経験のほうが長いのです。。
そこで、飲食業での仕事を例に「ストーリー」を説明してみたいと思います!
例えば、ブッフェレストランでの作業は沢山あります。
お皿やグラス拭き、お皿の補充、テーブルのセッティング、シルバー(フォークやナイフなど)の設置、バーカウンターの材料の仕込み、在庫チェック、冷蔵庫温度チェック、伝票の紙交換、料理台の準備、料理名カードの確認、コーヒーマシンのスタンバイ、ドリンクバーの水補充、テーブルまでの案内、伝票作成、お皿下げ、料理補充…などなど大量の作業、すなわちタスクがあります。
飲食店で働いたことのある方は、こんな経験をしたかもしれません。
特に入ってまもない頃は、作業をこなすのに必死です。こんなこと言われると頭真っ白になっちゃいますよね。
じつは、言う先輩もうまく伝えられなくて悩んでるんですよ。
なぜこのようなことになってしまうのか。
それは、「お客様に届けたい価値は何か」「今取り組んでいる作業はお客様にとってどのような価値(影響)を与えるのか」が明確化されていない、もしくは見えていないからです。
例えばここで「お客様に届けたい価値」を2つ挙げるならば
というようになります。これがストーリーといえると思います。
先ほど挙げたように膨大な作業があり、 お客様を待たせないためにそれらを高速で行わなければなりません。そうすると作業を完了させることに集中してしまいます。
慣れてくると、作業を効率よく完了させる方法を考え始めます。その方法の一つとして、「ルーティン化」が起きるのです。ルーティン化をすると、作業のやり方や順番が固定されていきます。
それによって、お客様のちょっとしたイレギュラーな対応から問題が起きる可能性が上がってしまうのです。
例えば、いつもの作業の流れとして
お皿を補充→グラスを補充→シルバーを補充→料理を補充→お皿を下げる
というように行っているスタッフがいるとします。
もし、あまり飲み物を取る人が少なくグラスが減っていなくて、フォークナイフを予備に数本持っていく人がいたら。。
ルーティン通りに行っていれば、
なんていう事態も起こりえます。
美味しそうな料理が並んでいて、自由に取れる、きれいなテーブルで料理が食べられる などといった「お客様に届けたい価値」、すなわちストーリーがスタッフ間で明確化され共有されていれば、必要に応じて作業の優先度や順番を変更することができます。また、美味しそうな料理台にするために料理の盛り直しをキッチンにお願いしたり料理台を拭いたりと、作業に対して主体的に考え、行動をするようになるのです。
「アジャイル」は、自己組織化が重要なポイントです。ストーリーは、チームメンバーに作業の目的を明確化し自律的行動を生み出す重大な効果をもたらしているといえるのです。
レストランでの業務を例に「ストーリー」を説明してきましたが、うまく伝わったでしょうか…?
ストーリーのタスクとの違いはユーザー視点であることです。届けたいものなので。表現も簡潔で、ユーザーが分かる言葉を使います。
その一方タスクは、内部での作業内容ということになります。
ソフトウェア開発に話を戻しますが、ウォーターフォール式の開発であると、設計や計画が最初にきちっと決められてしまうのでなかなか変更ができず、開発者自身もちょっと違うかもと違和感を覚えながら実装するということが起こります。
仕様書に基づいて実装していくのではなく、ストーリーとして、ユーザーが必要としているもの(体験や機能)から実装することでニーズにフィットしたプロダクトをリリースするというのがアジャイルの考え方であるといえます。
ストーリーを「大きいタスク」と受け取ってしまうことがあります。
そうなってしまうとストーリーを使う意味がなくなり、アジャイルでなくなってしまいます。
このストーリーを適切に運用することができるかどうかがアジャイル化できるかどうかにかかわってくるといっても過言ではありません。
今日はこんな感じで!
それでは!