読者です 読者をやめる 読者になる 読者になる

スタッフもクックパッドの1ユーザー

こんにちは、会員事業部でプロのレシピを担当しています ツヤ です。

2015年10月にプロのレシピ(プレミアム会員プラン)をリリースしました。クックパッドプレミアム会員であれば(決済方法に条件あり) プロのレシピを月額100円(税別)で利用できるプランです。

開発中に発生した検証についてのお話です。

f:id:tsucook:20151120120613p:plain:w200

プレミアム会員であれば・・・

サービス内にはユーザーの状態による条件分岐が随所にあります。

ここでのユーザーの状態とは、クックパッドに登録済みかどうか。またどのような方法でログインしているか。プレミアム会員であれば、どの決済方法を選択してるユーザーなのか。ということにします。

プロのレシピ(プレミアム会員プラン)の「プレミアム会員であれば」という条件に対して、ユーザーの状態は クックパッドで提供している 決済方法の種類と同じだけ存在します。

※ クックパッドで提供している決済方法

  • クレジットカード決済
  • キャリア決済
  • コンビニ決済
  • iTunes Store決済
  • Yahoo!ウォレット

など

検証作業

ユーザーの状態により表示・処理が異なる場合、それぞれの状態でページ確認する必要があります。 また、確認するのは自分(エンジニア)やチームのメンバーだけで無く、 デザイナー、カスタマーサポート、法務など様々な部署のスタッフに確認してもらうこともあります。

f:id:tsucook:20151120120511p:plain:w600

上記はプレミアムサービスので利用中のお支払い方法を表示しています。 支払い方法に応じて適切なロゴが使用されているか検証しています。(もちろん feature specでもテストしてます)

デザイナーとしては、適切なロゴは使用されているか。法務としては利用規約へのリンクを確認したり、 サポートではユーザーからのお問い合わせに備え表示されている内容を確認しておくことが大切かと思います。

ユーザーの状態を作成するのはエンジニアであっても・・・

エンジニアであればDBを直接操作して、その状態を作ることは可能だと思いますが検証するのはエンジニアだけではありません。 また、たとえエンジニアでも状態が複雑な場合、仕様を把握する必要が発生し容易なことではなくなることもあります

エンジニアなら・・・

> 状態が複雑な場合、仕様を把握する必要だったり容易なことではなくなります。

その状態を作成するスクリプトはあります。なので 困っていません。

エンジニア以外は・・・

困っています。

エンジニアに依頼しないと、その状態のユーザーを作成できません。その都度「(エンジニア)さん。○○○なユーザー作って下さい。」そんな依頼を受けます。

時々であればいいのですが、頻繁に、大量に・・・依頼されると エンジニアも困ります。

そこで

利用シーンですぐに作成できる

ページフッターにユーザー作成メニューを設置

このメニューから状態を選択することで、ユーザーを作成し、さらにそのユーザーでログイン済になり同じページが表示される機能です。

これでエンジニアでなくても、様々な状態のユーザーを作成し複雑な条件分岐の検証が容易にできるようになりました。

f:id:tsucook:20151120120518p:plain:w200

※ この機能は、開発環境でのみ動作します。

サービスを支えるスタッフも1ユーザー

開発・検証ツールは手を抜きがちだったり、開発優先度でも後回しにされがちです。 しかし、そこで削減されたコストであったり、品質検証は最終的にサービス利用者に返ることだと信じています。

クックパッドのサービスを利用するすべてのユーザー。サービスを支えるスタッフも1ユーザーとして大切にしていきたいものです。(自戒)

/* */ @import "/css/theme/report/report.css"; /* */ /* */ body{ background-image: url('http://cdn-ak.f.st-hatena.com/images/fotolife/c/cookpadtech/20140527/20140527163350.png'); background-repeat: repeat-x; background-color:transparent; background-attachment: scroll; background-position: left top;} /* */ body{ border-top: 3px solid orange; color: #3c3c3c; font-family: 'Helvetica Neue', Helvetica, 'ヒラギノ角ゴ Pro W3', 'Hiragino Kaku Gothic Pro', Meiryo, Osaka, 'MS Pゴシック', sans-serif; line-height: 1.8; font-size: 16px; } a { text-decoration: underline; color: #693e1c; } a:hover { color: #80400e; text-decoration: underline; } .entry-title a{ color: rgb(176, 108, 28); cursor: auto; display: inline; font-family: 'Helvetica Neue', Helvetica, 'ヒラギノ角ゴ Pro W3', 'Hiragino Kaku Gothic Pro', Meiryo, Osaka, 'MS Pゴシック', sans-serif; font-size: 30px; font-weight: bold; height: auto; line-height: 40.5px; text-decoration: underline solid rgb(176, 108, 28); width: auto; line-height: 1.35; } .date a { color: #9b8b6c; font-size: 14px; text-decoration: none; font-weight: normal; } .urllist-title-link { font-size: 14px; } /* Recent Entries */ .recent-entries a{ color: #693e1c; } .recent-entries a:visited { color: #4d2200; text-decoration: none; } .hatena-module-recent-entries li { padding-bottom: 8px; border-bottom-width: 0px; } /*Widget*/ .hatena-module-body li { list-style-type: circle; } .hatena-module-body a{ text-decoration: none; } .hatena-module-body a:hover{ text-decoration: underline; } /* Widget name */ .hatena-module-title, .hatena-module-title a{ color: #b06c1c; margin-top: 20px; margin-bottom: 7px; } /* work frame*/ #container { width: 970px; text-align: center; margin: 0 auto; background: transparent; padding: 0 30px; } #wrapper { float: left; overflow: hidden; width: 660px; } #box2 { width: 240px; float: right; font-size: 14px; word-wrap: break-word; } /*#blog-title-inner{*/ /*margin-top: 3px;*/ /*height: 125px;*/ /*background-position: left 0px;*/ /*}*/ /*.header-image-only #blog-title-inner {*/ /*background-repeat: no-repeat;*/ /*position: relative;*/ /*height: 200px;*/ /*display: none;*/ /*}*/ /*#blog-title {*/ /*margin-top: 3px;*/ /*height: 125px;*/ /*background-image: url('http://cdn-ak.f.st-hatena.com/images/fotolife/c/cookpadtech/20140527/20140527172848.png');*/ /*background-repeat: no-repeat;*/ /*background-position: left 0px;*/ /*}*/