株式会社クイックのWebサービス開発blog

HAPPYなサービスプランナー・エンジニア・デザイナーのブログです。

「かわいいデザイン」に必要な要素を考えてみた

f:id:aimstogeek:20200117121800j:plain

こんにちは!
半年前にクイックに入社し、日々勉強中の新米デザイナーのSAYAです。

クイックはサービス数が多いので、デザイナーは様々なプロダクトに関わる機会があります。
最近は女性向けサイト内のビジュアル画像作成で「かわいいデザイン」について模索しているので、かわいい表現に必要な要素をまとめてみました!

※「かわいい」にも色々ありますが、今回の「かわいい」はいわゆる「女性らしく、かわいらしい」イメージです。

まず、サイト内における「かわいい」とは

「かわいい」という言葉はとても広義で、人それぞれの好みも関係があり感覚的ですが、 デザイナーはアーティストや芸術家ではないので自分の主観で「これかわいいでしょ!」と作るわけではないです。

サイト内でのそのビジュアル画像の役割や狙い、サイト自体のデザインとの親和性など、満たすべき条件の中でかわいいを模索します。

私が担当しているサイトはフラットでシンプルなので、そのようなWebサイトに合わせやすいことを最重視して、かわいいデザインの作り方を考えました。
(あくまで必要な要素の一部であり、絶対条件ではありません)

かわいい色・かわいい配色

人間が外界から得る情報の8~9割は視覚に由来すると言われ、その中で色は圧倒的な影響力をもっているため、全体の印象に大きく関わります。 なので、色から「かわいい」を作っていきます。

彩度は低く!明度は高くする!

彩度を低くして、明度を高くすると、 柔らかく、かわいらしい印象の色になりやすいです。 f:id:aimstogeek:20200117150739j:plain

ピンクは暖色系を!!

女性らしいかわいい色合いといえば「ピンク」が思いつきやすいですが、ピンクといっても多種多様なピンクがあります。
大きく分けると青みがかった「寒色系のピンク」と黄みがかった「暖色系のピンク」があり、女性に好まれやすいピンクは、黄みがかった「暖色系のピンク」という意見が多いです。 f:id:aimstogeek:20200117171004j:plain

子供っぽくならないように注意!

上記のような色で色数を増やしてくと、カラフルでかわいらしい印象になりますが、一方で子供っぽい印象にもなりがちです。
子供っぽくならないようにほんの少し明度を下げて色をくすませたり、落ち着いた色も入れたりするとよさそうです! f:id:aimstogeek:20200117183417j:plain

フォントと装飾

フォントも全体の印象に大きく関わります。 また、適度な装飾を入れることでかわいさを表現します。

細めの丸みを帯びたフォントを使う

フォントは太めのゴシックより、細めの丸みを帯びたフォントのほうが女性らしくかわいい印象になります。 f:id:aimstogeek:20200117171213j:plain

ラインは細く

何かしらラインの装飾を入れるときも、フォントと同様に細めのラインだと女性らしくなります。

f:id:aimstogeek:20200117172608j:plain

パターンを敷く、図形を散らばす

ドットやボーダーのパターンは定番で使いやすいです。 入れすぎるとうるさく幼稚になりますが、適度にいれるとかわいいです。

カラフルな図形を散らばすと賑やかでわいわいした雰囲気になり、隙間も埋められて全体のバランスをとるのにもよいです。

f:id:aimstogeek:20200117172622j:plain

まとめ

  • 色の彩度は低く、明度は高くする!
  • ピンクは暖色系
  • 配色は子供っぽくならないように
  • 細めの丸みを帯びたフォントを使う
  • 装飾はパターンや図形を駆使する


「かわいい」はセンスや感覚だけじゃない!!

「かわいい」は明確じゃないのでセンスや感覚だけで作ると思われがちですが、「かわいい」と感じるデザインにはある程度共通点があり、その積み重ねでかわいいは成り立っているようです。
そのような共通点を学んでいくことが、ビジュアルセンスを磨くことに繋がるのかなと思っています。

参考文献
かわいいデザイン|ingectar-e
ネットで「女性」に売る 数字を上げる文章とデザインの基本原則 |谷本 理恵子


\\『真のユーザーファーストでマーケットを創造する』仲間を募集中です!! // 919.jp

頼りになる『VLOOKUP』で困ったら『INDEX』&『MATCH』関数で解決できた件

「そういう仕様だから」
この言葉って使う時は簡単なのに、言われると「はあ?」ってなりますよね。

本記事はエクセルやスプレッドシートの関数の中で、『VLOOKUP』で困ったことがある人向けの記事です。

今回フォーカスをあてるのは以下2つです。
 ・【範囲】の間に、列追加をしたら結果がずれる
 ・右側の列にあるデータをもとに、左側のデータを呼び出すことはできない

改めましてこんにちは。サービスプランナーのZAWAです。

業務では、サービス・事業・組織と三軸それぞれでの企画やマーケットリサーチ、ビジネスパートナーとの渉外などを担当しています。プロダクト開発の中では、要件定義や設計の一部などを行なっています。

目次

1. 取得の子 『VLOOKUP』

2. VLOOKUPの逆襲

3. ワイルドカンスウ スーパーコンボ『INDEX関数とMATCH関数』

取得の子 『VLOOKUP』

エクセルを使った業務をしたことある人なら、誰もがお世話になったことあるのではないでしょうか?

「あー、特定のセルに入っている値を取り出したい、でも目視では大変。IDは分かるのになー」
みたいな時、『VLOOKUP』はとても心強い友達でした。

使った時のすがすがしさときたら、土砂降りの雨の中、急に晴れ間が見えた時のようでした。

用法は以下ですが、ここでは割愛します。
= VLOOKUP (【検索値】,【範囲】,【列位置】,【検索の型】)

VLOOKUPの逆襲

【範囲】の間に、列追加をしたら結果がずれる

こんな参照データがあったとします。
参照データ001初期準備

そして隣の抽出シートで“003zawa”と入力したら“ざわさん”と表示されてほしいとします。
イメージはこんな感じ。
抽出シート001

関数式は以下としました。
=VLOOKUP(B2,参照データ!A:B,2,0)

指定する値に“003zawa”と入力すると……
抽出シート002
“ざわさん”と出ました!!
やった!!

しかし運用を続けていく中で……
「あー参照データに“カテゴリ”もほしいわ。追加したろ!」
となることもあるでしょう。
参照データのB列を選択して列を挿入し、カテゴリ列としました。
参照データ002カテゴリ列追加

そのまま抽出シートを見ると……
「あれ、変わってる!?」
抽出シート_002結果が変わった

右側の列にあるデータをもとに、左側のデータを呼び出すことはできない

これはもう、まんまです。
“色鉛筆”と入れてID“002zawa”と呼び出すことはできません。

そう、これが仕様です。

ワイルドカンスウ スーパーコンボ『INDEX関数とMATCH関数』

ここからは『INDEX』と『MATCH』関数を組み合わせて使うと、『VLOOKUP』でやりたかったことはできるし、上のような問題は発生しないから便利だよという話です。

以下の関数式を用いて比較していきます。
=INDEX(参照データ!B:B,MATCH(B2,参照データ!A:A,0))

まず、時間をカテゴリ列追加前に戻して、先に抽出シートに上の関数を追加しておきます。
抽出シート003『INDEX』&『MATCH』関数式追加

次に参照データにカテゴリ列を追加します。
参照データ002カテゴリ列追加

抽出シートを見てみると……
「け、結果が違う! よしゃ、組み合わせの方使ったら問題なしや。」
抽出シート004異なる結果

もちろん場合によっては「追加した列のデータを出したいんじゃい」
ということもあると思います。
その場合むしろ『VLOOKUP』の方が使いやすいかもしれません。

株式会社クイックでは様々な職種の人間が自分にできる最大効率を目指して働いております。


\\『明日のはたらくを創る』仲間を募集中です!! // 919.jp

クイック入社半年のエンジニアが感じたクイックのオフィス環境

こんにちわ!
SRE チームのインフラエンジニア、坂本と申します。

令和元年最後のブログです!

さて、もう今年も終わりということで
皆さんはこの記念すべき年にどんな思い出がありますでしょうか?

色んな出来事がありましたね〜(´ω`)


私、坂本はこのクイックという会社に令和元年に来たのが
一番大きな記念すべき出来事でした。

今まで色々な会社を巡りに巡り 10 社近く。
フリーランスも経験してきました。

そんな中、この令和元年にクイックと出会い
めでたく中途入社いたしました。 <おめでたいッ!!>

そんな入社して半年の私が思う・・・

クイックで働くオフィス環境ってすごッ!!!

と感じた部分を、エンジニア目線で (ここ重要!)
今年最後の ランキング形式 でお伝えしたいと思います!

みなさん、

『名前とか聞いたこと無いけどクイックってどんな会社なの??』

と思われると思います。
私自身、入社するまで同じ想いでした。


そんな同じような境遇のエンジニアの皆さんッ!
『エンジニアにとって働くオフィス環境とかどうでも良いよ!』
なんて思うかも知れません!

実はオフィス環境の快適さは生産性UPに繋がるのです!!!


これを見て、少しでも働くオフィス環境の重要性が伝われば嬉しいです!!
そしてクイックに興味を持って頂けたらこのブログを書いた意味もあり、
坂本が喜びます(笑)


はい、それではランキングに参りましょうか!
では、まず第5位!!!


第5位 オシャレで綺麗なオフィス環境


f:id:aimstogeek:20191227120420j:plain

私が入社前に見て、『よし、面接に行こう!』と決めたきっかけです!
その面接の時に記事の事を伝えて初めて知りましたが、
面接官である同じ SRE チームのインフラエンジニアの課長が書いた記事でした(笑)

aimstogeek.hatenablog.com


いやーまさかの出来事で驚きました!

オフィス環境が綺麗でお洒落だと心も身体も毎日弾みます♪
定期的にクリーンオフィスデーもあり、みんなで常に綺麗さを保ってる所もグッド👍


はい、続いて第4位!!!

第4位 充実している備品


f:id:aimstogeek:20191227120528j:plain

とにかく備品が充実しています!
ティッシュ、ウェットティッシュ、お薬、その他なんでも大概揃います!

そして、なにより書籍が充実している!!


同じフロア内には Webマーケター、メディア運営など
エンジニア以外の職種の方々も多くいるため、技術書やマネージメント本に加え
マーケット本、各種専門書籍や自己啓発本、ベストセラーのビジネス本など多くあり
申請して許可が下りれば会社で本を購入してもらえます!<すばらしいッ!!>

図書は専用の独自のツールがあり、そこから借りたり返却ができます!
UI がモダンでシンプルで使いやすいのが非常に良いです。

ちなみに今、坂本が借りていて気に入ってる本は
『話し方で 損する人 得する人』という本です。

こういったエンジニアの技術書ではない本も借りれるのも良い所です。



では、続いて第3位!!!

第3位 音楽が聴ける!


f:id:aimstogeek:20191227120610j:plain

もうコレは会社を選ぶ時のマストではないでしょうか!


最近では多くの会社で取り入れられていますが、これは大きい!

集中力や生産性が増します!
音楽が聴けるか聴けないかのポイントで環境を選ぶことは重要です!

坂本はたまにしか使用しませんが、使用できる環境かできないかの環境の違いだけで
仕事をしていて精神的に結構違うので、激しく重要性を主張したいです。



はい、続いて第2位!!!

第2位 椅子が素晴らしい!


f:id:aimstogeek:20191227120809j:plain
作業する環境の椅子が素晴らしいです!

エンジニアにとってパソコンの次に重要なのがこの椅子です。


椅子って結構見落としがちですが
エンジニアの場合、1日の大半をこの椅子の上で過ごし作業します。
日々の生活で寝ることと同様に仕事中はこの椅子が大変重要になってきます。

今まで坂本が経験した中では
20万円以上するアーロンチェアを導入している会社があり
アーロンチェアの快適さは大変素晴らしいものでした。

ただ、クイックにある椅子は頭と首までサポートされており
本当に疲れない、エンジニア向けの椅子となっており私はこちらの方が好きです。

こういったエンジニアの事を考えた細かい気配り、本当に素晴らしいです。



そして、第1位はッ!!!

第1位 作業用パソコン!!!!


f:id:aimstogeek:20191227121411j:plain
いやーこれは本当にビックリしました!!

こんな事、今どんな稼いでる会社でもなかなか無いです!

最新の Mac Book Pro の 16 インチのメモリ 32GB などカスタマイズした最高スペックを
作業用パソコンとして使用できるんですよ!!!奥さんっ!!

こんなの中々どの会社も選ばせてくれません!!!(笑)
ホントすごいです。。。ビックリしました。。。

私が CEO や偉い人だったら絶対 NG にしてます(笑)
同じようなスペックでコストカットして他にもっとコスト使え!って(笑)
ホント頭が上がりません。。。。すごい



最後に

はい! 以上がランキングでした!
いかがでしたか?

快適なオフィス環境で仕事してると、本当に生産性アップに繋がるんです!
そして、快適な職場環境を与えられている分
しっかり Value を出すことが求められます!

これから社会人になられる方、これから仕事をされる方、中途でお仕事をされる方
みなさん、会社を選ばれる際に『この会社ってどんなオフィス環境なんだろう?』
『働きやすいかなぁ?』と一度足を止めて、考えて頂けたら嬉しいです。

みなさんの快適なワークライフのお役に立てれば幸いです。
快適な職場環境でしっかり Value を出して気持ちよく仕事をしましょう!

またこの記事を読んで『クイックの働く環境いいなぁ!』など思って頂いたアナタ!
クイックでは一緒に働く仲間を歓迎しております!!
もし、少しでも気になって頂けましたら以下をご覧ください!想いが詰まってます!


今年もお疲れ様でした!!
また来年、お会いしましょう\(^o^)/
それでは良いお年を!!!



\\『真のユーザーファーストでマーケットを創造する』仲間を募集中です!! //

919.jp

【Docker Traefik】「URL Pathマッチングによる複数Webコンテナへの振り分け」実装

こんにちは。クイックSREチームのみっちーです。

突然ですが、みなさんは「Traefik」はご存知でしょうか。
TraefikはGo言語で書かれた軽量Edge Routerで、簡単にLoad Balancerとして利用できるのが大変魅力的ですね。
今回は、そのTraefikを利用して「URL Pathマッチングによる複数Webコンテナへの振り分け」をやってみました。docs.traefik.io

Traefikは公式ドキュメントも充実していて比較的扱いやすい印象がありますが、Pathマッチングによる振り分けの実装方法にちょっと癖があります。
記事も少なく初実装時にかなりハマってしまったので、同様にお困りの方の助けになれば幸いです。

今回の記事は、こんな人向けです。

  • Docker、Docker Compose は触ったことがある。
  • Traefikは知らない。もしくは、知ってるけど「URL Pathマッチングによる振り分け」がうまく行かない。

1. 下準備

今回は、TraefikコンテナWeb(apache)コンテナを利用します。
コンテナを利用するために、まずは「Docker」と「Docker-Compose」を準備しましょう。
※ 「Docker」 と 「Docker Compose」 は触ったことがある人を前提とするので、install方法はここでは割愛します。

準備ができたら次に進みます。

2. traefik.toml を書く

  • /etc/traefik/traefik.toml

Traefikコンテナを起動する前に、設定ファイルを準備しましょう。
こんな感じで、ほぼそのまま公式にあったものを流用して書いてみます。
logの出力有無などの細かいところは、必要に応じて適宜変更してください。

debug = true
logLevel = "DEBUG"

defaultEntryPoints = ["http"]

[entryPoints]
  [entryPoints.http]
  address = ":80"

[web]
address = ":8080"

3. docker-compose.ymlを書く

今回の主題となる「URL Pathマッチングによる振り分け」の部分です。
構成は、テストなので「 Traefik & Web(Apache2.4系)×2台」の最小構成です。
※ 少々見ずらいですが、#で設定のポイントを書いてます。

version: '2'

services:
  proxy:
    image: traefik:latest
    command: --api --docker --docker.domain=traefik.local --logLevel=DEBUG
    container_name: test_proxy
    networks:
      - testnw
    ports:
      - "80:80"
      - "8080:8080"
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
# 上記で作成したtraefik.toml を、コンテナ側の「/etc/traefik/traefik.toml 」にマウントします。
      - /home/vagrant/test/traefik.toml:/etc/traefik/traefik.toml  

  web01:
    image: httpd:2.4
    container_name: test_web01
    networks:
      - testnw
    expose:
      - "80"
    labels:
      - "traefik.port=80"
# アクセス用のドメイン名を記載。localhostで良ければ書かなくてもOKです。
# 振り分け条件を書かない場合は、「/」にマッチングします。
# 以下は、http://test919.domain.dayo/*  でのURLマッチング例(ただし、~/web02/*は、後続のweb02で設定している条件にマッチするので除外)
      - "traefik.frontend.rule=Host: test919.domain.dayo" 
# Pathマッチングの優先度。数字の高いものが優先的にマッチングします。
      - "traefik.frontend.priority=10"

  web02:
    image: httpd:2.4
    container_name: test_web02
    networks:
      - testnw
    expose:
      - "80"
    labels:
      - "traefik.port=80"
# アクセス用ドメイン名の指定に続いて、「PathPrefix: /{prefix:マッチング文字列}{any_任意の文字列:(/.*)?$$}」 でマッチング構文が書けます。 
# 以下は、http://test919.domain.dayo/web02/* でのURLマッチング例。
      - "traefik.frontend.rule=Host: test919.domain.dayo; PathPrefix: /{prefix:web02}{any_web02:(/.*)?$$}" 
# Pathマッチングの優先度はweb01より高くします。低くすると、「/」 でマッチングするweb01へすべて流れてしまいます。
      - "traefik.frontend.priority=20"

networks:
  testnw:
    driver: bridge
    driver_opts:
      com.docker.network.enable_ipv6: "false"

4. コンテナを起動してアクセスしてみる

起動してアクセスしてみましょう。

# docker-compose -f /home/vagrant/test/docker-compose.yml up -d
[vagrant@localhost test]$ curl -H 'Host:test919.domain.dayo' http://localhost/index.html
web01

[vagrant@localhost test]$ curl -H 'Host:test919.domain.dayo' http://localhost/web02/index.html
web02

※ 今回はテストのため事前に、web01のindex.htmlに「web01」と、web02では~/web02/index.html に「web02」と記載して保存してあります。

こんな感じでうまく振り分けられましたね。

いかがでしたか?少々癖のあるTraefikのURL Pathマッチングですが、うまく使えれば手軽にAWSのApplication Load Balancerのようなことができるのがいいですね。

もし気になる設定があれば、上記以外でもコメントいただければ幸いです。
可能な範囲で検証してみようと思います。


\\『真のユーザーファーストでマーケットを創造する』仲間を募集中です!! //

919.jp

【図解】JavaScriptのHidden Classのまとめ

初めまして!エンジニアの🍣🍶です。

ユーザの体験を悪くしないために待ち時間を短くすることも重要ですよね!
なのでJavaScript(以下JS)が実行速度をあげている仕組みの一つであるHidden Classを簡単にまとめてみました!

Hidden Classが必要な理由は??

Javaなどの静的型付き言語では、オブジェクト構造は定義された後は変更できません。
なのでコンパイル時にオブジェクトのレイアウトを決定できます。
そのため、オブジェクトのプロパティ値は一度の参照で取得できます。

class Point {
  int x;
  int y;
  double z;
}
Pointのインスタンスだよー
x - 4byte
y - 4byte
z - 8byte

しかしJSは動的型付け言語です。
なので変数の型は実行時に決まりますし、オブジェクトにプロパティを追加したり削除したりも簡単にできます。
そのせいで、エンジンはオブジェクト内のプロパティの値のメモリアドレスを決定するのが難しいです。

考えられる手法としてはhash tableがあります。
とてもザックリ説明するとkeyをhash化してそれを添字に値を格納する配列です。 その弱点として毎回hash関数を実行することになります。

大部分がobjectで構成されるJSではこれは大きな問題です。

なのでHidden Classと呼ばれる物を使ってより高速にアクセスできる手法を取っています!
(ここではHidden Classと呼びますがSpiderMonkeyではShape、V8ではMapと呼ばれてたりします。)

全てのJSObjectはHidden classへの参照を持っていて、 Hidden Classはオブジェクトのプロパティのオフセットを保持しています。
そのためHidden Classによってそのプロパティがどこにあるのかわかるのです!

ここからはHidden ClassがどのようにJSObjectの変化とともに動くのか簡単に見ていきます!
(いろいろ省略して簡素化しています)

JSObjectの変化とHidden Classの関係

class Point {
    constructor(x) {
        this.x = x;
    }
}

const p1 = new Point(1);
`p1`に対してHidden Class1が作られました!
f:id:aimstogeek:20191121105011p:plain
p1.y = 2;
`p1`にプロパティ`y`を追加する
  1. Hidden Class1に参照しているObjectに`y`が追加された時にHidden Class2を参照するというメモが追加される
  2. `p1`が参照するのがHidden Class2に切り替わる
f:id:aimstogeek:20191121105016p:plain
p1.z = 3;
一個上と同じようなことが起きます!
f:id:aimstogeek:20191121105111p:plain
const p2 = new Point(2);
ここで新しいObjectを作ってみます。 `p1`を作成した時に作られたHidden Classを参照します!
f:id:aimstogeek:20191121105121p:plain
p2.z = 5;
今度はここで`y`より先に`z`を作ってみます! すると新しいHidden Classが作られました!
f:id:aimstogeek:20191121105133p:plain
p2.y = 7;
ここで`p2`に`y`を追加して`p1`と同じ形にしてみました。 ですがここでも新しいHidden Classが作られてしまいました。。。。
f:id:aimstogeek:20191121105141p:plain

これでプロパティを同じ順番で作ることの重要さが分かりましたね!

const p3 = new Point(3);
p3.z = 1;
p3.y = 1.1;
f:id:aimstogeek:20191121105149p:plain

今度はp3を作りp2と同じ順番でプロパティを追加しました!

ですが同じHidden Classを参照していません!

これは内部的な型の不一致が原因です。

p2.yには7を代入しました、これはSmi(Small integer)として扱われます、

しかしp3.yには1.1を代入しました、これはDouble型なのでSmiとして扱うことができません。。。

そのため新しいHidden Classが作られてしまうのです。

今回はプロパティを追加する順番は一緒だったので単に新しいHidden Classが作られたわけではなく

Hidden Class5にこれを使うのやめてHidden Class6を使ってねーと言うメモが追加されます。 なのでこの後に

p2.x = 1;

こういったコードを実行するとp2がHidden Class6を参照するようになります!

Hidden Classが一致しないとどのような問題があるの?

単純にHidden Class分のObjectが無駄に出来ていくという点があります。 大したことなさそうですね!

問題はインラインキャッシュやJITの前提になっていることです。

const f = (point) => point.x + point.y + point.z;

こんな関数があったとします。 これが実行された時JIT(Just In Time Compiler)という機能が動きます。 これは何をするかというと型を基準に、より早いコードに内部的に変換してくれる機能です。

f(p1);

ここでこの関数はp1の Hidden Classの変数が渡されるんだ! と解釈して、それを元により速く動くように変換します。

f(p2);

しかしこのように違うHidden Classの変数を渡してしまうと あれ?なんか違うのが来た!とより速く動くように変換した物を元に戻してしまいます。

まとめ

JSのObjectは基本的にはhash tableじゃないよ!

ちょっとだけJSの気持ちを考えて プロパティの宣言の順序を気にしたり、 内部の型を意識したらちょっと速くなるかも!!

しかも型を意識することはコードの読みやすさにもつながるので一石二鳥!

TypeScriptはいいぞー


\\『真のユーザーファーストでマーケットを創造する』仲間を募集中です!! //

919.jp

【インタビュー】クイック式ユーザーファーストとは?新人が聞いてきた

はじめまして。サービスプランナーのすけざねです。

4月に入社した新卒1年目なのに、ランチを食べていただけで「大御所感がすごい」と言われて泣いています。今回はそんな大御所ひよっこ新人が、先輩たちからユーザーファーストについて教えてもらいました!

真のユーザーファーストでマーケットを創造する

これはWeb事業企画開発室のビジョンで、私自身とっても好きなのですが、何かすごいことをやらないといけない気がして「困難すぎでは?(泣)」という気持ちに襲われます。

「真のユーザーファースト」とユーザーファーストは何が違っていて、どうしたら実現できるのでしょうか。

1. あるエンジニアの場合

はじめに、中途入社3年目でクイックのスクラムマスターことフルーツパーラーさんに話を聞きました。先輩たちのかっこよさを知ってほしかったので、ひとり語り風でお届けします。

f:id:aimstogeek:20191114212416p:plain

本当のユーザーは誰か?を考える

ユーザーファーストというからには、まずユーザーとは誰を指すのかを考えたいです。

私が開発しているのは、社内のコンサルタント(営業)が使うもので、システム利用者は彼らです。 ユーザーと言われて一番最初に頭に浮かぶのは、コンサルタント

ですが、彼らが価値を届けたい相手は誰か。それはクライアントや転職を考えている方々です。 我々開発サイドもそこまで視野を広げることが大事だと思っています。

転職したい方のことまで考えられるか、そして必要なタイミングで必要な情報が届けられるかが「真のユーザーファースト」ではないでしょうか。

「本当に価値を届けるべき相手は誰なのか」を見失わずにやっていきたいですね。

作るのが仕事ではない

エンジニアなら、やってみたいことはたくさんありますよね。例えば、最新技術を使ってみたいとか。

やりたいことがあるのは素晴らしいと思っているので、それを「ユーザーのためになるのか」、「自己満足になっていないか」という視点から捉え直しています。 やりたいことにユーザーが喜ぶものがあればやるし、なければやりません。

モノを作るのが仕事ではなく、ユーザーを満足させて事業を成長させることこそが存在価値だと思っているので。

もっともっとユーザーのために

もちろん今もユーザーのことを考えて仕事をしています。

でも、全然足りてないです。ユーザーのためにやりたい事がたくさんあるし、もっとやれる、そう感じています。

2. あるプランナーの場合

続いては、新卒入社3年目のプランナー、mkさんです。看護師向けシフト共有アプリ、ナスカレディレクションを行っている先輩に語ってもらいます。

f:id:aimstogeek:20191114211555p:plain

目の前のユーザー、さらにその先

「ユーザーにとっていいね」を大切にするのがユーザーファーストだけど、それって逆にユーザーの対象を狭めてしまう可能性もあると思ってて。

今は手が届いていない人たちやユーザーが暮らす社会に何があったらいいのかまでを考えながら、ユーザーのためにサービスをつくる。それが「真のユーザーファースト」なのかなと思っています。

ユーザーファーストという言葉に甘えないようにしたいですね。

サービスに嫌悪感をもつ人のことまで考える

一人ひとり求めることが違うので、その全ての人が満足する機能を作ることってとても難しいです。 その中で、今回はこの人たちのことを目いっぱい考える、と決めることが大事だと考えています。

ただ特定のユーザにとっていくら良いものだとしても、嫌だと思う人も同時に同じだけ生んでしまっては意味がないですよね。

どのような時にそう感じる可能性があるのか、その人達になにかできることはないのかを考えて、サービスに落とし込むようにしています。

考えて、考え続ける

いまユーザーファーストが完璧にできている、とは言えないし正解がないので、できていると言える日は来ないかもしれないけど、できていると言えるよう、考えて考えて、考え続けることが大事なのだと思っています。

3. あるシニアマネージャーの場合

最後に、シニアマネージャーのnakayanさんです。大トリを飾ってもらいましょう。

f:id:aimstogeek:20191114211922p:plain

サービスを提供する上での必然

ユーザーファーストは信念でもあるけど、手段だとも思っています。 世の中にサービスを提供する時には、喜んでもらわないと意味がなくて、喜んでもらうために「本当にユーザーにとって良いのか」を考えるので。

長く継続するサービスはユーザーが何を求めてるかを必ず捉えていますよね。これまで複数の新規事業を立ち上げた経験からも思います。 それから自分たちが作ったものはメンバーが誇れるものであってほしいです。

つまり、ユーザーファーストはサービスを提供する上での必然、ですね。

ユーザーファーストとビジネスを両立させる

メンバーのみんなは、議論するときに「それは本当にユーザーのためなのか」を考えてくれているし、私自身が事業や利益のことばかり考えてしまっていたら「ユーザーのこと無視してますよね」と言ってくれるだろうという信頼があります。

とはいえビジネスである以上、売上利益を犠牲にしても良いとは思っていないので、両者がマッチする部分を探してサービスにすることが必須です。

おそらく満足することは、一生ない

日常的にメンバー全員が言い続けていて、当たり前に会話に盛り込まれているのは良い状態だなと思っています。

できている部分もあれば、できていないところもまだまだいっぱいあるのが現状だと思うので、一人ひとりが「真のユーザーファースト」を意識し続けていくことが、これまでも、これからも大事なのかなと。

これはたしかに不可能に近いことなのかもしれないけど、100%にできるように頑張っていきたい。ただ、こういう状態になったら100%だね!と言えるものはないし、そうなっていたとしてもおそらく満足することは一生ない。そう思います。

まとめ

エンジニア、プランナー、シニアマネージャーと立場も職種も違う先輩たちに話を聞いてきましたが、いかがでしたでしょうか。

わたしは表現の差こそあれ、同じ思いを持ってるように感じました。本質をいつも追い求めて、それを諦めない。そういう姿勢、そのやり方すべて盗んでいきたいなと思います。

そしていつか「真のユーザーファースト」を語れる大御所に!


\\『真のユーザーファーストでマーケットを創造する』仲間を募集中です!! //

919.jp

疲れにくい体づくりでパフォーマンス向上を!

はじめまして。データプランナーのありんこです。
社内のデータ活用を進めることをミッションに邁進しつつ、
プライベートではアマチュアダンサーとして活動しています。

皆さんは日々忙しく過ごす中で、自分の姿勢や体の状態を気にすることはありますか? 座っている時間が長くなりがちなエンジニアさん達の中には、
姿勢の悪さや肩こり・腰痛に悩まされている方も多いのではないでしょうか。
クイックでも、腰が痛くて…姿勢が悪くて…という苦しみの声をちらほら耳にします。

f:id:aimstogeek:20191105170553p:plain

やたらと「ダンスやっているから姿勢がいいね~」なんて言われることが多い私ですが
実は社会人になりたてで運動も何もしていなかった頃、
デスクワークで凝り固まった体にめちゃくちゃ苦しめられていました。
元々学生の頃からダンス漬けの生活が影響して、
椎間板ヘルニアにギックリ腰等一通りの腰まわりの痛みは経験済み…
動かなくなったせいで悪化し、さらには肩凝りからくる頭痛にまで悩まされる日々……
とても20代とは思えない体のせいで疲れも取れず仕事にも集中しにくい状態でした。

今回は、そんな状態から抜け出して疲れにくい体を手に入れるために私が意識してきたことをご紹介しようと思います。


普段の姿勢を見直そう!

背もたれにがっつり寄りかかる姿勢は楽なような気がしますが、
体重が全て腰とお尻にかかってしまって痛める原因です。
足を組むのも片方に体重の負荷が集中してしまって良くないです。
理想的なのは、腰・お尻・太ももに体重が分散できる状態です。

ポイントは3つ

  • 足の裏が床に付いて、膝が90度に曲がる高さに椅子を調整する

  • 骨盤を座面に対して垂直になるように立てる

  • PCの高さを目線に合わせる

この時に、姿勢を良くしようとして胸を張るのはNGです。
腰がお腹側に折れて、いわゆる反り腰の状態になって痛めやすくなりますし、
肩にも力が入ってしまいます。
力まずにリラックスした状態を作りましょう。
私は骨盤を立てた後、少し腰を後ろに膨らますようなイメージで座るようにしています。

croissant-online.jp


体幹を鍛えよう!

姿勢が崩れやすい原因は、体幹の弱さもあります。
働きはじめて運動する習慣を作りにくくなると、自然と体幹も落ちてしまうもの。。

王道ですが、スクワットやプランクは効果的かつ短い時間でできるのでオススメです。
お風呂前などにほんの少し時間を作るようにするだけでもかなり違ってくるので、忙しい方でも習慣にしやすいと思います。
逆に長時間やろうとしても、体勢が崩れて痛める原因に。無理は禁物です!

もしガッツリ体を動かしたい!と思っている方がいたら、あわせてランニング等もいかがでしょう?
サービスプランナーのまーさんがランニングの魅力について書いてくださっているので、こちらも是非読んでみてください!

aimstogeek.hatenablog.com


時にはお金をかけたケアも必要!

自分の体のことなので、体の張りや痛みが強いときは整骨院等でしっかりケアをしてください。
痛み止めや湿布で一時的に痛みを抑えることができても、
凝り固まった状態を治すわけではないので根本的な解決にはなりません。

また、専門の方に診てもらうことで、
自分の姿勢の癖や痛めやすい原因を知ることができ、改善の糸口を見つけることにも繋がります。

民間資格の整体等よりも、柔整師やあはき師等の国家資格を持っている方がやっている整骨院鍼灸院が良いと思います。
個人的には鍼治療が一番効果も持続性も高いです。
(最初は怖かったですが、痛みはありません!むしろ最近は鍼が入ってくる圧迫感が心地よい……)


セルフケアで良い状態を持続!

お金をかけてしっかり体をほぐしたり、良い姿勢を意識したりしても、
長時間座りっぱなしのデスクワークを続けると、どうしても筋膜の癒着が起きて凝り固まった状態に戻ってしまいます。

せっかく整えてもすぐ悪い状態に戻ってしまったらあまり意味がないですよね…
「筋膜リリース」なんて言葉も最近流行ってはいますが、できるだけ良い状態を保つためにはセルフケアは必須です!
むしろこれが一番大事!!!
寝る前にマッサージ+ストレッチをすれば、快適な睡眠も手に入れられますよ。
ただしやり方を間違えると逆に痛めてしまうこともあるので、まずは書籍等を参考にすることをオススメします。

私のセルフケア必需品はボールとフォームローラーです。どちらも全身に使えて万能!
特にボールは手軽に手に入るし持ち歩きやすいので、旅行等にも必ず持っていきます。
(私はソフトボールを愛用していますが、テニスボール等のほうが柔らかめで使いやすいかも…)
フォームローラーは最近種類も増えてきて、硬さも様々なものがあるので実際に使ってみて選ぶと良いと思います。

※動かせないほどの体の痛みがある場合は絶対にセルフケアはやらないでください。逆効果になる可能性大です!!

参考書籍↓↓
仕事中等にも気軽にできるものはこちら

3コマまんがですぐできる 10秒ゆるみストレッチ

3コマまんがですぐできる 10秒ゆるみストレッチ

ボールやフォームローラー等を使ったものはこちら

自分史上最高の柔軟性が手に入るストレッチ

自分史上最高の柔軟性が手に入るストレッチ


最後に

言葉にしてみると当たり前のことばかりですが、実践できている人は少ないのではないかな、と思います。
仕事だけではなく、何をするにも体は資本です!
まずは気付いたときに姿勢を意識してみる、体が疲れている時は寝る前にケアする時間を数分作ってみる、
くらいから始めてみてはいかがでしょうか。

私自身、いつも良い状態を保てるわけではないです。
無性に姿勢を崩したくなる時は、我慢せずに思いっきりダラーーーーーーッとします。
でもそれを継続しないこと、体の負荷を感じたらすぐにケア、の2つを意識したら
体の痛みに悩まされにくくなり、集中して仕事に向き合いやすくなりました。
偉そうに言っているけど、踊りすぎで痛めることが最近増えてきているのは内緒ですよっ…!(小声)

よかったら参考にしてみてくださいね。


\\『真のユーザーファーストでマーケットを創造する』仲間を募集中です!! //
919.jp