minne技術戦略カンファレンスに行ってきた

昨日開催されたminne技術戦略カンファレンスに参加してきた。

peatix.com

全体的に面白い話が聞けて、参加してよかったです。個人的に興味深かったのは、@fladdictさんと@nakajijapanさんが話していた、デザイナとエンジニアの関係の辺りの話でした。

minneの目指す世界観・UXを実現するために、エンジニア、デザイナが一体となって、ユーザーとの交流会したりユーザーテストしたり、そこから出てくる問題を深掘りしたり、解決策を検討したりという姿勢が非常に良かった。デザイナだけじゃなくて、チームで一体となってああいうワークショップをやるというのは非常に良いですね。

ただ、1つ気になったのは、三宅さんがminneの開発は東京と福岡の2箇所で開発していると言っていたけど、2箇所に分かれていてもああいったワークショップという、実際に集まって行う前提の取り組みを重視して進めていくというのは、難しい所もあるのでは?という点。

その辺り、何か工夫している事があれば是非詳しく聞いてみたいなあ。

@hsbtさんの話では、consulとstretcherを使ったデプロイの仕組みは良さそうだと思った。真似したい。

それと、OpenStack力入れてるという話の文脈でfull managedなIaaSよりもオンプレでOpenStackのような仕組みを使って運用したほうがコストが1/3くらいになるという話が結構驚きだった。OpenStack自体は色々苦労しそうなイメージがあったのだけど、そんなにコスト違うのか。

最後に会場を出るときに頂いたお土産が豪華でした。なんでも、ヤマト運輸と提携?したようで、ヤマトのトラックのトミカが入ってて、息子が大喜びでした!

f:id:YuichiTanaka:20151022222801j:plain

以下はメモです。

minne UI/UX顧問 @fladdictさん

UXとは

  • 予期的UX
    • minneって楽しそう
  • 一時的UX
    • 使っていてさくさく動く
  • エピソードUX
    • 作家さんから届いたものを開けるのが楽しい

これらをまとめて累積的UXを構築できると、ハンドメイドって楽しい!という感情が湧き上がるようになる。

UIはサービスと人間の境界の部分。良いUXを実現するための手段の1つ。

※ この辺が関連ありそう

http://www.standardinc.jp/reflection/article/prospective-user-experience/

minneにおけるUXの取り組み

個人同士がものをやり取りするサービスなので、人間自体を理解するのが重要

ユーザーとのお茶会

  • 作家さん同士の交流
  • 意見交換やフィードバック

ユーザーテスト

  • ユーザーが使っているところをインタビューする。後からどういう行動をしているのかを見れるようにビデオにも撮る。
  • ユーザーペルソナを作る。サービス開発に関わる人同士でターゲットを明確に共有するため。
  • ペルソナのユーザーインサイト。Value Proposition Mapを使う。
  • カスタマージャーニーマップ
  • 検索機能、購入フローなどを切り出してユーザーテストやったり。

この辺りはデザイナとエンジニアも一緒に混じってやってワークショップ形式で開催している。

デザイナのスキルアップ

  • 操作タスクごとに、ファクトと感想、課題を整理してマッピング
  • 問題の特性要因図を作ってみる。問題の原因を分析する。
  • 機能提案マトリクスを使って機能提案してみる。機能提案マトリクスでは、次の5つの要素に分けて提案内容を考える。
  • 起きたことのファクト
  • 出てきた課題
  • それに対する仮説
  • 仮説をどう現実にするか
  • じゃあ、そのユーザーはそれでどうやって問題が解決されるのか

リクエストをそのまま実装するのはNG。 医者を例にするとわかりやすい。患者が「痛い。盲腸だと思う。」と言っても医者はちゃんと検査をして、本当に盲腸なのかを調べて、正しい原因を調べて対処する。

ユーザーから「○○して欲しい」と言われるのもそれと同じこと。

例) カテゴリを増やしたい ↓ 本当の問題は「欲しいものに出会えていない」こと

そのためには、動線を増やして、いろんなものの探し方を確保する必要がある。 この問題を解決するために、ほかサービスの手段を分類してみたり、マインドマップを書いてみたり。

既存機能のコンテンツのプライオリティを地図上にマッピングして、削って良い物を判断したり、利用率を調べたり。

後は解決する手段も複数のバージョンを作ってみて、試してみる。

単に機能を入れるのではなく、仮説を立ててメリットデメリットを検討する。

究極的には「ハンドメイドって楽しい!」「ハンドメイドやるならminneだよね!」に行き着くのが目標。

Q&A

実施した施策に対する効果はどのように見ている?

基本的にはKPIを見ている。

中規模、小規模な機能に関してはKPIを重視すべき。 ただ、もっとminneはこうあるべき!minneが目指す姿を達成するにはこれが必要!みたいなものに関しては、KPIだけを重視するのは良くない。

一度作ったものを取りやめるのはどうやって決めるのか?

チーム内で議論を重ねてコンセンサスを取る。

ワークショップはどのくらいの頻度で開催している?

ワークショップのファシリテータは深津さん。 2,3週間に1度小さなワークショップ、1,2ヶ月に1度大きめのワークショップという感じ。

中島さん

@nakajijapanさん。minneのiOSエンジニア。

体験から得られる「楽しい」と「嬉しい」を最大化していく。

プロトタイプテスト

エンジニアも入る。

ユーザーテスト

UI scope というサービスを使っている。

ユーザーが実際の操作をしている動画を見た後に、メンバーがそれぞれどう思うのかという感想をポストイットに貼って分解していく。

開発体制の変更

エンジニアもデザインをより意識していかなければならない。ただ、技術的にやらないといけないことも色々ある。

そのためにエンジニア内のチーム体制を次のような体制にした。

テスト文化作り

RailsSandboxServer サーバー側と通信をするテスト

Slackを使ってる。 アプリケーション監視はNewRelic

botがレビュアーの自動決定してくれる。

三宅さん

@monochromeganeさん。

プラットフォームチーム所属。

プラットフォームチームは福岡拠点にあって、Webアプリケーション開発とインフラをやってるチーム。

「価値に時間を使う」がモットー

MTGで当事者意識を育てる

kickoff

全員参加、プロジェクトの目的を共有、より良い解決策の検討。 ここで議論を尽くす。

breakdown

マインドマップを使って、各エンジニアの頭のなかにあるタスクを統合したりする。

daily standup

マインドマップガントチャートに落とし込んでいて、それを見て進捗の確認をしたり。

基盤

RailsMySQLmemcached、job worker、

puppet, packer, serverspec

開発

サーバー側のコードは今は15000行。 Rails 4.2.4、Ruby 2.2.3

マイクロサービス

マイクロサービス的なアーキテクチャはペパボ全体で推奨されている。

  • 特化したサービス導入による早期課題解決
  • 各種サービスから使いまわせる

例: 検索

最初はRails上でやっていたのをSolrサーバーに移行した。 この部分もマイクロサービス的に切りだされていたので、この変更も割りとさっくり出来た。

例: 動的画像サイズ変換

speakerdeck.com

CI

Drone + RSpec + test-queue

Droneがイベントを受け取ったら、Dockerコンテナを複数立てて、それぞれのコンテナ内でテストを実行することで、並行実行してる。

今はシングルホストでもう限界が来てるっぽいので、複数ホスト化の予定。

コーディング規約

robocopをCIで回してチェックしてる。

柴田さん

@hsbtさん。

www.slideshare.net

TV CMに耐えうるサービスにする、という課題。

No ssh

人間がsshでサーバに入って人出で環境を作ってはいけないというルールを作った。

監視

  • Mackerel
  • consul + consul alerts

どっちかに統一して良いのかどうかはわからないので今は併用している。

デプロイ

Consul + stretcher。

サーバーは全部で100台弱

エンジニア以外もminneをデプロイしてる。デザイナもデプロイする。 そのためにデプロイのコメンドは一発で行けるものにしてる。

今後

  • Solr -> Elastic Search移行
  • ジョブキューをsidekiq
  • モバイルログ基盤の構築
  • 社内のOpenStackへの移行
    • オンプレのコストメリットが非常に高い。full managedなIaaSより1/3のコストで実現できる。

家のネットワークが遅い・不安定なのをどうにかしてみた

自宅のネットワークはWiMAXを使っているのだけど、どうにも遅いのと不安定で辛いのでちゃんと調べてみた。

まずは、このページを見てみると、WiMAXを使ってる時にどこが遅いのか切り分けるやり方が書いてある。

www.uqwimax.jp

 

1の通信方式、2の受信環境は問題なし。3の接続方法でWiFiが遅い可能性を検証するために、WiMAXルーターをUSBで接続して速度を確認してみるべしと書いてある。

USB接続で使えるの初めて知った。普通にUSBケーブルで繋ぐだけで接続できた。

というわけで、USB接続をためしてみると、普通に数十Mbps出る。WiMAXならこんなもんだろう。

というわけで、どうやら家のWiFiがよろしくないらしい。

そこで、次はWiFiの状況を調べてみる。

support.apple.com

 

MacWiFiの状況を見るには、ワイヤレス診断というアプリのスキャンを行うと良いらしい。

スキャンしてみると、2.4GHz帯を使ってるのが8つある。これでは、チャンネルが完全に被ってるものはなかったけど、これだと確かに辛そう。

 

これは、5GHz帯を使えば解決されるけど、802.11acを使えない機器も家にはあるので、2.4GHz帯と5GHz帯を同時に使えるルーターが欲しくなる。

というわけで、ちょっと古いけど評判の良さそうなこちらのルーターを注文してみた。

 

 

buffaloのAirStation HighPower Giga WXR-1900DHPという機種も値段がほぼ一緒でCPUとかのスペックがやや高いので迷ったのだけど、RT-AC68Uの方はUSB経由でHDDをつなぐと、TIme Machineを使えるようになるという点が興味惹かれてこっちにしました。

簡易NASとしての性能もRT-AC68Uの方がやや良さそうだし。

weekly.ascii.jp

 

WiMAXルータークレードルから有線LANがでてるので、それをこの無線LANルーターに繋いで使ってます。

実際、WiFiの安定度は改善していて、2階建ての家の中で1階の隅っこにおいているのですが、2階でも安定して使えています。もっと使ってみて安定するかどうか判断する必要はありますが、今のところ非常に満足です。

 

簡易NASとしての機能はこれから試してみます。