食べチョク開発者ブログ

食べチョクエンジニアによるプロダクト開発ブログ

コンビニ決済が利用できるようになりました! 2020年1月のカイゼン内容のご紹介

こんにちは、エンジニアの鹿倉です。

2020年もどうぞ食べチョクをよろしくお願いいたします。

食べチョクは、2020年もお客様・生産者さまからご意見を頂戴しながら、日々サービスのカイゼンを行なって参ります。
早速、1月もたくさんのカイゼン行いましたので、いくつかカイゼン内容をご紹介いたします。

1月の改善サマリー

  • カイゼン数: 61 項目
    • 新機能: 40 項目
    • バグ改修: 18 項目
    • その他: 3 項目

上記の中から是非お伝えしたいカイゼン内容をご紹介いたします!

1. コンビニ決済が使用できるようになりました!

これまでお支払い方法はクレジットカード決済のみでしたが、1月よりコンビニ決済もご利用いただけるようになりました!

コンビニ決済で購入したい場合の手順を簡単にご説明いたします。

1. 注文画面にてお支払い方法からコンビニ払いをお選びください

f:id:vividgarden-tech:20200203180007j:plain:w300

2. コンビニ払いに必要な情報をご入力ください。

f:id:vividgarden-tech:20200203180250j:plain:w300

1月時点では、ご利用いただけるコンビニは、ローソン、ファミリーマート、ミニストップの3社となります。
今後、セブンイレブンも追加される予定です。

注文が完了すると、以下のようなページが表示されます。

f:id:vividgarden-tech:20200127191256j:plain:w300

3. お店でお支払い

注文が完了するとコンビニ決済依頼完了のお知らせという件名でメールが届きます。
メールの内容に従って、ご指定のコンビニからお支払いを行ってください。
※お支払い期限についてはメールに記載されております。

お支払いが完了できましたら、確認完了のメールをお送りさせていただきます。

コンビニ払いはこれまでも多くのご要望があった機能です。
是非、食べチョクの利用を見送っていたお客様にもご利用いただきたいと思います。

2. 生産者の新規登録画面のカイゼンを行いました

生産者の新規登録時は入力項目が多いため、生産者様が入力しやすいように細かいカイゼンを行っております。

  • 記述例の提示
    商品名や紹介文など各所にお客様に伝わりやすい記述例を具体的に提示し、生産者様がスムーズに入力できるようにしています。
  • 写真の例を提示
    プロフィール写真やこだわり写真についても、具体例を提示して、生産者様がスムーズに入力できるようにしています。
  • プレビュー画面の追加
    入力しながら販売開始をイメージできるようにプレビュー画面を追加しています。

3. よくあるご質問ページを作成しました

お客様からのお問い合わせの多い内容をまとめた、よくあるご質問のページを作成しております。

是非、お問い合わせの前に、よくあるご質問ページをチェックしてみてください。

www.tabechoku.com

最後に

今後もユーザーの皆様・生産者の皆様のお声を積極的に取り入れていきたいと考えております。

食べチョクトップページの下部にご意見フォームを設置しておりますので、なにか気になることがございましたら、ささいなことでもお伝えいただければ幸いです。

また、食べチョクではデザイナー・エンジニアを切に募集しています。
興味のある方は、是非Wantedlyよりご連絡ください!

www.wantedly.com

2019年11月のリリース内容をご紹介!

こんにちは、エンジニアの鹿倉です。

食べチョクでは、お客様、生産者さまからご意見を頂戴しながら、日々サービスのカイゼンを行なっております。
11月もたくさんのご意見を頂きカイゼンを行いました!

11月のカイゼンサマリーはこちらです。

11月の改善サマリー

  • カイゼン数: 80 項目
    • 新機能: 46 項目
    • バグ改修: 28 項目
    • その他: 6 項目

上記の中から是非お伝えしたいカイゼン内容をご紹介いたします!

1. 検索精度をカイゼンしました

今までのフリーワード検索は検索の対象が広域であるため、意図しない検索結果となることがありました。
例えば、「トマト」と検索した場合に、「メロン」の商品が表示されるといった具合です。
複数品目を栽培している生産者様の場合、商品説明文に他の品目についても記載されている場合があるため意図しない品目が引っかかってしまうというのが大きな理由でした。

以前は商品数が少なかったため、なるべくヒットしやすいように検索対象を広くしていましたが、商品数も増えてきて十分な結果を返せるようになってきたため、商品説明文を検索対象から外しています。

2. お問い合わせページと会員登録画面にてスパム対策を行いました

サービスの成長に伴い、ボットからの不正アクセスが増えてきたため、reCAPTCHAを導入しました。
ユーザの皆様に影響のある改善ではございませんが、セキュリティ向上のためにも今回の対策を行いました。

f:id:vividgarden-tech:20191209195107j:plain:w300

3. お歳暮特集をリリースしました!

お歳暮シーズンに向けて、特集ページをリリースしました。 ギフトとしても喜ばれることはもちろんですし、自分へのご褒美としてもいかがでしょうか!

www.tabechoku.com

私のオススメは椎茸です。肉厚で香り高く、1口食べただけで幸せになります。是非食べてみてください。

www.tabechoku.com

4. フルーツセレクトに関する投稿が出来る様になりました

10月にリリースしたフルーツセレクトですが、初回発送が11月ということもあり、実はまだ10月時点ではフルーツセレクトに関する投稿が出来ませんでした。
初回の発送に合わせて、フルーツセレクトに関する投稿も出来るようになっています。

すでに、ご投稿いただいているユーザ様もいます。

www.tabechoku.com

www.tabechoku.com

是非、フルーツセレクトをご利用の際はお客様の声を生産者に届けてみてください。

5. [生産者向けリリース]配送方法にクリックポストを追加しました

生産者からのご意見で、クリックポストで発送する場合は、通常の郵便扱いとなるためお届け日の指定が出来ないが、 システム上は、お届け日の登録が必須のため、発送完了が出来ない、または無理にお届け日を登録してもお客様に不適切なご案内になるとのご指摘を頂きました。

上記のご指摘を受けて配送方法(配送業者)にクリックポストを追加しております。
クリックポストを指定した場合もお届け日の入力はシステム上必要ではありますが、あくまで目安の扱いとなりますので、お客様にお届け日をご案内することはございません。

f:id:vividgarden-tech:20191209194156p:plain:w300

6. [生産者向けリリース]出荷リストをCSVダウンロード出来るようになりました

生産者から出荷リストをCSVでも扱えるようにしたいとのご意見がございました。
一覧ページの右上の操作ボタンからダウンロードが出来るように対応しています。

f:id:vividgarden-tech:20191209202413j:plain:w300

7. Rails6にアップデートしました!

直接お客様に関係あることではございませんが、食べチョクもようやくRails6へアップデートしました!!!

こちらについては別途ブログを書こうと思っています。

最後に

今後もユーザーの皆様・生産者の皆様のお声を積極的に取り入れていきたいと考えております。

食べチョクトップページの下部にご意見フォームを設置しておりますので、なにか気になることがございましたら、ささいなことでもお伝えいただければ幸いです。

また、食べチョクではデザイナー・エンジニアを切に募集しています。
興味のある方は、是非Wantedlyよりご連絡ください!

www.wantedly.com

www.wantedly.com

www.wantedly.com

新サービス「食べチョク フルーツセレクト」をリリース!2019年10月のカイゼン内容をご紹介!

こんにちは、食べチョクの鹿倉です。

食べチョクでは、お客様、生産者さまからご意見を頂戴しながら、日々サービスのカイゼンを行なっております。 10月もたくさんのご意見を頂きカイゼンを行いました!

10月のカイゼンサマリーはこちらです。

10月の改善サマリー

  • カイゼン数: 81 項目
    • 新機能: 40 項目
    • バグ改修: 22 項目
    • その他: 19 項目

上記の中から是非お伝えしたいカイゼン内容をご紹介いたします!

1. 新サービス「食べチョク フルーツセレクト」をリリースしました!!

www.tabechoku.com

サービス概要

「食べチョク フルーツセレクト」は毎月、旬の美味しい果物をお届けするサブスクリプションサービスです。

もちろん農家さんから直送です!!

ご契約プランは「1ヶ月」「3ヶ月」「6ヶ月」の3つのプランからお選びすることができ、契約期間が長くなるほど料金がお安くなる料金体系です。

下記の通り、6ヶ月プランだと1ヶ月プランに比べて3000円お得になります!

f:id:vividgarden-tech:20191106213430j:plain:w300

お届けする果物は毎月1日にメールにてご案内いたします。(マイページでもご確認頂けます)

そして、11月は北東農園さんの完熟極早生みかんを予定しております!

私も食べてみましたが、とっても美味しいので是非皆さんのも食べていただきたい一品です。

note.mu

美味しすぎてnoteも書いてますので、よろしければ是非ご覧ください。

2. 記事機能をリリースしました!!

www.tabechoku.com

運営からオススメの商品や情報をお届けする記事機能をリリースしています。

スタッフのオススメや人気商品まとめなど楽しい記事をどんどん配信していきますので是非チェックしてみてください!!

3. トップページに品目の一覧を追加しました!!

f:id:vividgarden-tech:20191107010439p:plain:w300

以前からサイドメニューに品目から探せるリンクを設置していましたが、スマホだとサイドメニューが閉じた状態のため気づきにくく、ユーザーの方々より品目から探せることを知らなかったというご意見を頂きました。

そこでトップページにも品目の一覧を追加してユーザーが分かりやすいようにしています。

4. [生産者向けカイゼン] 注文リストに並び替え条件&絞り込み機能を追加しました!!

これまで注文リストはお届け日順で並んでいるだけで、生産者様の作業に合わせて一覧を表示することが出来ていませんでした。

そのため、生産者様より注文数増加によりご注文の受付業務が煩雑になってきたとのご意見を頂きました。

そこで、生産者様の作業に合わせて注文リストを表示できるように並び替え条件の変更と絞り込み機能を追加しています。

f:id:vividgarden-tech:20191107170435p:plain:w300

並び替え条件

以下の条件で並び替えができるようになりました。

  • 注文日 昇順/降順
  • お届け日 降順/昇順
  • 商品名 降順/昇順

絞り込み機能

以下のステータスで絞り込みができるようになりました。

  • 注文未確定 ... まだ未確認の注文だけを表示します。
  • 発送準備中 ... 確認済みで発送待ちの注文だけを表示します。

最後に

今後もユーザーの皆様・生産者の皆様のお声を積極的に取り入れていきたいと考えております。

食べチョクトップページの下部にご意見フォームを設置しておりますので、なにか気になることがございましたら、ささいなことでもお伝えいただければ幸いです。

また、食べチョクではデザイナー・エンジニアを切に募集しています。
興味のある方は、是非Wantedlyよりご連絡ください!

www.wantedly.com

www.wantedly.com

www.wantedly.com

テレビ放送向けてパフォーマンスを大幅改善しました!2019年9月のカイゼン内容のご紹介

こんにちは、食べチョクエンジニアの鹿倉です。

9月はテレビ番組 「セブンルール」に弊社代表およびサービスを取り上げていただくということで劇的なユーザ増加が予想されました。
予想通り、今までにはないアクセスがあり、たくさんのお客様にサービスをご利用していただくことができました。
その裏で、9月もたくさんのカイゼンを行なっておりますのでカイゼン内容をご紹介いたします。

まずは全体の改善サマリーは以下の通りです。

9月の改善サマリー

  • カイゼン数: 71 項目
    • 新機能: 30 項目
    • バグ改修: 15 項目
    • その他: 26 項目

この中からいくつかピックアップしてご紹介いたします!

1. セブンルール(テレビ放送)に向けてパフォーマンスをカイゼンしました!

見出しの通り、9月はテレビ番組 「セブンルール」の影響で急激なアクセス増加が予想されました。
そのためテレビ放送中であってもサービスをダウンさせることなく快適にご利用頂くためのカイゼンを行なっております。
こちらの内容については弊社エンジニア西尾が別途記事を書いておりますので是非ご覧ください!

tech.tabechoku.com

2. 「酒チョク」をリリースしました!

9/30よりお酒の取り扱いも開始いたしました。珍しいお酒も取り揃えております。
是非、チェックしてみてください!

www.tabechoku.com

ちなみにこのリリースにより10月からカイゼンスピードは爆上がりする予定です。

3. 消費税率の変更に伴う対応を行いました

2019年10月より一部の消費税率が10%に変更になることに伴い内部的な改修を行なっております。
食品は軽減税率が適用され消費税率8%となります。ただし、配送料や酒類に関しては消費税率10%となります。
もともと食べチョク上の表記は全て税込のため、お客様への影響はありません が発行している領収書の内訳については税率ごとに区分した内容を記載するように変更しております。

4. 食べチョクコンシェルジュ(おまかせ定期便)の配送曜日の追加&申し込みフォームをカイゼンしました!

これまで食べチョクコンシェルジュのお届け可能曜日は水曜日と土曜日のみでしたが、木曜日と金曜日もお届け可能となりました。

お届け希望曜日の変更は[マイページ->コンシェルジュ情報->申込変更]より行うことが可能ですので、水曜日と土曜日以外をご希望のお客様は変更をお願いいたします。

f:id:vividgarden-tech:20191001223359j:plain:w300

また、初回お申し込みフォームについてもお客様の入力の手間を減らすようカイゼンを行なっております。

5. 商品ページで生産者のこだわりが見れるようにしました!

これまでお客様が商品を選ぶために最も重要な「生産者のこだわり」が商品ページでは見ることができず、生産者ページでしか確認することが出来ませんでした。
お客様がスムーズに購入が出来るように、商品ページでも「生産者のこだわり」が見れるようにしました。

f:id:vividgarden-tech:20191001224938j:plain:w300

6. ページの表示速度をカイゼンしました!

ページの初期表示の速度改善のために画像の遅延読み込みを導入しました。 これまではページ内にある画像を全て初回に読み込むようになっており、ページがリッチになっていくにつれて初期表示が遅くなる問題がありました。
今回の対応により、画面に表示されている画像だけを読み込むようになり、初期表示速度がカイゼンしております。

以下、PageSpeed Insightsの改善前と改善後の結果です

Before
f:id:vividgarden-tech:20191001232639j:plain:w500

After
f:id:vividgarden-tech:20191001232707j:plain:w500

今まで、遅すぎないか、、、(汗)
というのもありますが、大きく改善することが出来ました。
速度はユーザビリティに大きく影響しますので、引き続きカイゼンを行なっていきます。

最後に

9月はテレビ放送という1つの山場を越えることが出来ました。
10月以降も引き続き、大きなカイゼン予定が詰まっていますので気を引き締めて頑張ります。

また、食べチョクではまだまだエンジニアを募集しています。
興味のある方は、是非Wantedlyよりご連絡ください。

www.wantedly.com

www.wantedly.com

食べチョク開発チームがセブンルール(テレビ放送)に向けて行った負荷対策

皆さんこんにちは、エンジニアの西尾です。

2019年9月24日(火)、フジテレビ系列のテレビ番組 「セブンルール」 にて弊社代表およびサービスを取り上げていただきました。

テレビ放送開始直後、サイトにはいままでにないアクセスが押し寄せましたが、 システムを落とすことなく、かつパフォーマンスも落とすことなく無事に稼働させることができました。

今回はテレビ放送前に、食べチョク開発チームが行ったパフォーマンス対策を紹介いたします。

開発チームのミッション

放送日が決まった時、代表が一言、Slackにつぶやきました。

f:id:vividgarden-tech:20190925223927p:plain
サーバーを落とさない

放送中にサーバーは絶対落とさない。 この日から少しずつパフォーマンス対策を始めることにしました。

食べチョクのシステム構成

食べチョクはAWS上で運用しており、構成はとてもオーソドックスなものとなっています。

EC2,ELB,RDS,ElasticCache(Redis),S3,CloudFrontを主に利用しています。

フレームワークはRuby on Rails + React、DBはMySQLです。 データベースのレプリケーションは行っていません。

ボトルネックがどこになりそうか

遅そうだなあと、なんとなく思っている箇所はいくつもありましたが、 闇雲にパフォーマンス・チューニングをはじめても本当に効果があるのかはわからないものです。

ステージング環境にApache Benchをかけて、どこがボトルネックになりそうかを探ります。

f:id:vividgarden-tech:20190925224100p:plain
アプリサーバー、重い!

アプリサーバーがとにかく重くて、性能がでない。

放送日前までに行ったパフォーマンス対策

めちゃくちゃ高性能なインスタンスとDBを立てれば、高負荷にも耐えられる可能性があります。 しかしお金が無限にあるわけでもなく、アクセス数の見積もりが間違っていたらサーバーが落ちてしまう可能性があるため、 アプリのパフォーマンス改善も行いました。

NewrelicとPrometheus(Grafana)を見ながら、1つずつ重い箇所を改善していくことにしました。

改善1. N+1 クエリ と N+1 partial rendering の撲滅

N+1クエリ、気をつけているつもりですが、ちょいちょいいました。 また一覧系のViewに N+1 partial renderingもいて、パフォーマンスを悪化させていました。

まずは簡単なところから改善。

改善2. 重い処理を分割・改善する

たとえば、以下は改善前の商品情報ページのコードですが、もうなんというか見ただけで重そうで、実際重かったです。

f:id:vividgarden-tech:20190925224130p:plain
改善前の商品詳細のコード

重い処理があるとサーバーが詰まってしまうので、一部を別処理・別APIに切り出したりしました。 Fat Controllerも改善できて、よかった。

改善3. ムダにデータを読み込んでいるところを無くす

不要なデータを読み込んで、かつレンダリングまでしている箇所がいくつもありました。 たとえば生産者一覧画面。HTMLをよくよく見てみると...

f:id:vividgarden-tech:20190925224202p:plain
無駄なデータ読み込みを排除

データは全部読んで、CSSで隠してました。ひえぇ。

改善4. Fragment Cacheを利用する

Railsのビューレンダリングは遅いし、重いです。

Fragment Cache を入れられるところは入れていき、 処理速度を改善していきました。

改善5. 共通ヘッダーを軽くする

ヘッダーは基本全画面に表示されますが、微妙に処理が遅かったです。 ここを少し早くすれば全ページの読み込み速度が改善されるので、キャッシュを部分的に入れるなどして速度改善をしました。

改善6. 静的ファイルをCDNで配信する

画像ファイルはCDNを経由して配信していたのですが、 jsファイルや一部バナー画像などはWebサーバーから直接配信していました。

Webサーバーの負荷は少しでも軽くしたいので、これらをCDN経由で配信するように改修しました。

改善7. RailsでDBレコード取得部分のキャッシュを入れる

アプリサーバーはスケールアウトできるのですが、 データベースは現状レプリケーションを行ってないため、スケールアウトができない状態です。

データベース(RDS)のスケールアップはすぐにはできず、 テレビ放送中にデータベースがパンクしたらシステムダウンを発生させてしまう可能性がありました。

マルチDB対応は時間的にもすぐにはできないと判断し、 今回はDBのレコードを部分的にRailsでキャッシュさせ、 データベースアクセスをできるだけ少なくするような改修をしました。

このキャッシュ機能は基本的にはオフにしているのと、重要な処理では使わないようにしています。 例えば商品詳細で商品レコードをキャッシュして、 実際には商品が売り切れているのに売出し中と表示されてしまう、みたいな問題が起きないように注意しました。 またキャッシュクリアの仕組みも作りました。

テレビ放送中は、キャッシュをTTL=15分でONにすることでデータベースの負荷を下げることにしました。

改善8. アプリサーバーのパフォーマンス・チューニング

普段はアプリサーバーにはEC2のmediumインスタンスを使っていますが、 テレビ放送当日はc5.2xlargeを使いました。

最初はxlargeくらいにしようと思っていましたが、負荷試験を再度したところ、 思いの外CPUがいっぱいいっぱいでレスポンスが悪くなりがちだったので、2xlargeを使うことにしました。

f:id:vividgarden-tech:20190925224230p:plain
2xlargeは高いけど、使っちゃうか

2xlargeのインスタンスに合わせて、puma(アプリサーバー)のworker数とthread数を調整しました。 また、DBのconnection poolの値もworker/thread数に合わせて増加させました。

改善9. ELBの暖気申請を出す

これはパフォーマンス・チューニングではないのですが、 ELB(ロードバランサー)は突然の高負荷でアクセス不可になってしまう可能性があります。

DevelopersIOの記事 を参考に、AWSにあらかじめELB暖気申請を出しておきました。

サーバーが落ちた時のために

放送日前日までパフォーマンス対策を行っていましたが、 システムが落ちない保証はありません。

最悪の事態に備えて、Sorryページ(エラーページ)も作ることにしました。 使う事態にならなくて助かりましたが、一応以下ページを用意していました。

f:id:vividgarden-tech:20190925224258j:plain
Sorryページ

そして迎えたテレビ放送

9月24日のセブンルール(テレビ放送)は、夜の23:20から始まりました。 本番開始直後の開発チームのSlackを張っておきます。焦っていて日本語がおかしい。

f:id:vividgarden-tech:20190925224314p:plain
放送が始まった時のSlack

システムが落ちないか心配で、放送時間中にはちゃんとテレビは見られませんでした。 Grafana(モニタリングツール)とGoogle Analyticsを見ながらサーバー落ちるなと祈っていましたが、 放送開始から終了までの30分間、アクセスを無事さばき切ることができました。

パフォーマンスはどうだったか

番組放送中の食べチョクトップページと商品詳細ページのパフォーマンスは以下のとおりです。

放送中でめちゃくちゃアクセスが来ているにもかかわらず、問題ないパフォーマンスで アクセスをさばけました。

f:id:vividgarden-tech:20190925224345p:plain
放送中のトップページのパフォーマンス

トップページ (User::TopController#show) のパフォーマンスが0時30分過ぎから落ちているのは、 改善7でいれたDBのレコードキャッシュ機能をオフにしたためです。

f:id:vividgarden-tech:20190925224405p:plain
放送中の商品詳細ページのパフォーマンス

商品詳細も高速にレスポンスを返しています。

おわりに

食べチョクが地上波に30分間取り上げられるのは初めてで、 サイトにはかつて無いアクセスが押し寄せましたが、無事乗り切ることができました。

パフォーマンス対策にあたり、ISUCON 参加の経験が役に立ったなと感じました。 「推測するな、計測せよ」が重要で、Newrelic+Grafana(モニタリングツール) と実装を見比べながら、地道に改善を行いました。 ISUCON、今年は忙しくて参加できなかったのですが、来年は開発チームのメンバーと出場できたらと目論んでいます。

これからも食べチョクには、どんどん新しい機能を盛り込んでいく予定ですが、 パフォーマンス対策も忘れずに実装いけたらと思います。

放送を見逃した方へ

以下サイトで10/1(火)22:30まで見逃し配信をしています。

tver.jp

ktv-smart.jp

関連リンク

よろしければこちらも御覧ください。

note.mu

www.wantedly.com

www.wantedly.com

Serverless Frameworkで進捗レポーティングツールを作成した話

皆さんこんにちは、エンジニアの西尾です。

今日は食べチョク開発チーム内で利用している、進捗レポーティングツールのご紹介をいたします。

TL;DR

  • 食べチョクの開発チームはJIRAを使ってタスク管理をしているが、JIRAのレポートが見づらい & 使いづらい
  • JIRAのレポートは使わずに、独自にGoogle Spreadsheet上にレポートを出力して進捗を見ている
  • Google spreadsheet上にいい感じのレポートを生成するツールをServerless Framework + Google App Scriptで作成した
  • Serverless Frameworkで作成したツールは、オープンソースで公開します(本文参照)

JIRAのレポートが見づらい & 使いづらい

食べチョクの開発チームでは、スクラムを組んで開発を行っています。 スプリント期間は1週間、短く回してなるべく素早く開発をこなすようにしています。

今回はスクラムの話は置いておいて、この開発にかかせないツールがJIRAです。 JIRAにはスクラムボード & カンバン機能など、アジャイルツールが充実しています。

JIRAはタスク管理ツールとしては申し分ないのですが、レポート機能に関しては不満があります。

たとえばベロシティチャート。各スプリントの消化ポイントはだせますが、 スプリント内でどのタスク・エピックをどのくらいこなしたのかパット見でわかりません。 開発チームでは、大きな機能の改修にはエピックをつけて進捗のトラッキングをしています。

f:id:vividgarden-tech:20190909210919p:plain
JIRAのベロシティチャート。スプリントのポイントブレブレじゃん、っていうツッコミは、なしで

ベロシティもエピック毎、担当者毎、タスク種別(バグ or not)毎に見て振り返りをしたいのですが、簡単に出力できないのが辛い。

エピックレポートもいちいち1つずつレポートを見ないといけないのですが、 これも複数タスクを俯瞰して見られたらなあという思いがありました。

欲しかったレポート

JIRAのレポートが見づらいのならば、別途Google spreadsheetなりなんなりで出力すればいいのでは。 欲しかったレポートは以下のとおりです。

ベロシティチャート (エピック毎、担当者ごと、タスク種別毎)

f:id:vividgarden-tech:20190909214614p:plain
ベロシティの内訳は? どのタスクをどのくらい消費したの?が一発でわかるグラフ

エピックの進捗

f:id:vividgarden-tech:20190909214430p:plain
このエピック、進捗悪すぎじゃない? っていうのがひと目で分かるグラフ。ごめんなさい

Serverless Frameworkでサクッとツールを作る

このくらいのレポートを出力するだけならば、 正直Google App ScriptをJIRAにつないで、ごにょごにょするだけで作れそうだなあという気がします。

でもせっかくだから、レポートの元データを作る処理を今流行りのサーバーレスアーキテクチャで作ってみようかなと思い、 以下技術を使って作ってみることにしました。

  • Serverless Framework
    • インフラメンテとかしたくないので、作るならサーバーレスかなぁ。フレームワークはメジャーっぽいやつ選んでみるか、くらいのノリで採用しました。
  • Node.js
    • ローカル環境で開発したいです。Nodeがツール周りで一番充実してそうだったので選択。
  • Typescript
    • 型がほしい
  • DynamoDB
    • ServerlessならDynamoDBだろうくらいのノリで選んだ
  • AWS
    • 食べチョクはAWSで動いている
  • Google App Script + Google Spreadsheet
    • グラフ描画を独自に作るのは辛いし、そこまで工数かけたくないので、結果出力はGoogle Spreadsheetに。

サーバーレスアプリケーション側は、シンプルに以下のようなJSONを返すような作りにしました。 Google spreadsheet(Google App Script)側では、この結果をグラフに落とし込むところだけを実装しています。

[
    {
        sprintName: "dev-sprint-66",
        epicId: "ここにエピックID",
        epicName: "ここにエピック名",
        point: 10
    },
    {
        sprintName: "dev-sprint-66",
        epicId: "別のエピック",
        epicName: "ここにエピック名",
        point: 8
    },
]

作ったツールを公開します

完成したツールは以下のとおりです。

github.com

Google App Script側のコードは公開してないのですが、レポートの元データを作り出すツール側のみ公開してます。

このツールは、弊社開発チームのレポート出力機能に特化しており、そのまま他の会社・プロジェクトで使えるものではないと思っています。 しかし、Serverless Frameworkでアプリを作るとこういう感じになるよ、というexampleにはなるかなと思い、今回公開することにしました。

おわりに

開発チーム内で使っているツールを、サーバーレスアプリケーションとして作成しました。 せっかく作ったので、サーバーレスでアプリ作るとこうなるよ、というサンプルには使えるかなと思い、ソースも公開することにしました。

サーバーレスアプリケーションは、インフラ管理の手間もなく、サクッとアプリを作れるのは楽だなと感じました。 今後簡単な社内ツールは、サーバーレスで作っていけたらなと思っています。

検索機能を大幅カイゼン!2019年8月のカイゼン内容のご紹介

こんにちは、食べチョクエンジニアの鹿倉です。

8月17日に食べチョクは2周年を迎えました!
今年も恒例の企業さんへのお野菜お配り企画を実施し、エンジニアも総動員で企業訪問してきました。社内では、「あの会社、無理やりエンジニアに野菜配らせるとか肉体労働させてやばい・・・とか思われないだろうか」と言う声も上がりましたが、エンジニア陣は前職のエンジニア仲間に会えたりもする良い機会なので結構、楽しくやっています。

そんなイベント盛りだくさんの8月もたくさんのカイゼンを行なっております!

8月の改善サマリー

  • カイゼン数: 80 項目
    • 新機能: 42 項目
    • バグ改修: 14 項目
    • その他: 24 項目

この中からいくつかカイゼンをピックアップしてご紹介いたします。

1. 商品を都道府県から検索できるようになりました!

自分の地元の野菜が食べたい、四国のお野菜が食べてみたい、など産地で選びたいという声を多数頂いておりましたので追加した機能です。
元々、フリーワード検索から都道府県を入力することで検索することもできましたが、今回のカイゼンでより精度の高い都道府県検索が可能になりました。

f:id:vividgarden-tech:20190903092543j:plain:w300

2. 生産者を検索できるようになりました!

今までは商品の検索しか行うことが出来ませんでしたが、生産者も検索できるようになりました。
栽培方法や都道府県での絞り込み検索も可能です。

f:id:vividgarden-tech:20190903093026j:plain:w300

生産者によって、同じ品目でもこだわっているところや土地柄など全然違います。
是非、いろんな生産者を探してこだわり内容をチェックしてみてください!

www.tabechoku.com

3. コンシェルジュ便の領収書を発行できるようにしました!

これまでは通常のご購入のみ領収書が発行できましたが、コンシェルジュ便(おまかせ定期便)でも発行できるようになりました。
初回申し込み画面からは領収書発行の設定はできません。
領収書発行を希望の方は、「マイページ -> コンシェルジュ情報 -> お申込み内容の変更」にて以下の更新をお願いいたします。

  1. 「 領収書の発行を希望する」にチェック
  2. 「宛名」を入力
  3. 「但し書き」を入力(任意)
  4. 「更新する」ボタンを押下

f:id:vividgarden-tech:20190903105847j:plain:w300

4. 生産者向けに支払明細確認機能を追加しました!

実はいままで、生産者様へのお支払い明細はメールでのみお送りしておりました。(汗
この機能により、明細一覧・詳細の確認、PDFダウンロードが管理画面よりできるようになりました。

f:id:vividgarden-tech:20190903094254j:plain:w300

※本機能は2019年6月分の売上以降を対象としております。

5. 2周年記念の特集ページ公開しました!

2019/8/17に食べチョクは2周年に伴いキャンペーンページをリリースしています。 (2019/8/31に終了しています)

www.tabechoku.com

キャンペーンのツイートも多くのリツイートを頂きました!
また、オフィス訪問についても多くのご依頼を頂き大盛況でした。

下記のキャンペーンの様子です。 twitter.com

今回、ご応募いただいたのに訪問できなかった企業様、大変申し訳ございませんでした。
来年も実施予定ですので、来年こそは訪問させてください!

最後に

今月から食べチョクは3年目を迎えます。
今まで以上にスピード感を持ってカイゼンに取り組みます。

引き続き、食べチョクをよろしくお願いいたいます。