Upgrade to Pro — share decks privately, control downloads, hide ads and more …

why_dont_you_measure_your_performance

mogetta
September 08, 2018
17k

 why_dont_you_measure_your_performance

概要
本セッションでは体の調子をIoT的アプローチ、測定を容易にするアプリの制作、また市販のトラッキング製品などを駆使し測定とログ管理を行い、どうやっていくことで体の調子を上げ、パフォーマンスを向上させ、より良いエンジニアライフを送れるか?を追求、解説します。

mogetta

September 08, 2018
Tweet

Transcript

  1. なぜエンジニアは
    パフォーマンス計測しないのか
    1
    Builderscon 2018
    2018/09/08
    Hiroshi Mimori 三森 裕史 @mogetta

    View full-size slide

  2. 2
    やあ (´・ω・‵)

    ようこそ、バーボンハウスへ。

    このテキーラはサービスだから、まず飲んで落ち着いて欲しい。


    うん、「また」なんだ。済まない。

    仏の顔もって⾔うしね、謝って許してもらおうとも思っていない。


    でも、このスレタイを⾒たとき、君は、きっと⾔葉では⾔い表せない

    「ときめき」みたいなものを感じてくれたと思う。

    殺伐とした世の中で、そういう気持ちを忘れないで欲しい

    そう思って、このスレを⽴てたんだ。


    じゃあ、注⽂を聞こうか。

    View full-size slide

  3. 3
    懐かしいって思った⼈
    今⽇のトークのメインターゲット
    だからな?

    View full-size slide

  4. 5
    ネタ被ってる。

    View full-size slide

  5. 6
    本セッションの趣旨
    1.世の中のガジェットを駆使して、「⾃分」を測る。
    測ったデータをうまく持ち寄って解析しよう!
    2.じゃあ、どういう⽣活をすると、⽣活の質があがるのか?
    3.そもそも、やってみてどうだったか?

    View full-size slide

  6. 7
    • ⼀⼈の⼈間が連続して計測している内容なので、
    科学的な正確性はないです。
    • コードの話は期待しないで。
    • 当たり前ですが、サーバーのパフォーマンス計測
    の話はしません。

    View full-size slide

  7. 8
    本⽇の流れ
    - 動機
    - ガジェット紹介・計測⽅法
    - コード周りとか
    - ABテスト
    - 改善施策

    View full-size slide

  8. 9
    先に結果から
    体重  72kg -> 65kg
    体脂肪率 17% -> 12%
    平均集中時間 4h30m -> 5h15m
    Gobe2によるストレス指数 減少
    コミット数 ほぼ0から⼤体毎⽇コミット

    View full-size slide

  9. 11
    ストレス値の下降
    GOBE2というデバイスから取得

    View full-size slide

  10. 12
    ⾃⼰紹介
    •36歳 独⾝ 
    •フロント寄りのエンジニア
    •現職ではPythonを利⽤した
    ⾃動テストやデバッグ補助
    •ツールの作成が業務

    View full-size slide

  11. 13
    普通の⾃⼰紹介ではなんなので
    体重7年分のログに合わせてやっ
    てきたこと紹介します。

    View full-size slide

  12. 15
    ガラケーとかスマホ
    のパチンコアプリのアプリ側担当。
    会社の近くにジムがあったため、
    体重の推移も穏やか
    2011/10 - 2013/10

    View full-size slide

  13. 16
    転職
    AngularJSを利⽤した
    ソーシャルゲームの
    フロントエンド担当
    すぐデスマーチ
    2013/10 - 2015/02

    View full-size slide

  14. 17
    某社でベトナムの某社と組んで
    世界発信するぞ!と誘いを受け転職
    フルスクラッチで3,4回作り直し
    を繰り返したが
    最終的にお蔵⼊りするという不遇の
    プロジェクトCocos2dxでUI担当
    2015/02 - 2016/05

    View full-size slide

  15. 18
    2016/06 - 2016/08
    会社をクビになり
    無職⽣活。

    View full-size slide

  16. 19
    2016/10 - 2017/08
    フリーランス⽣活。
    忙しさから不摂⽣
    UnityのUIやCI
    gitおじさん業に勤しむ

    View full-size slide

  17. 20
    2017/09 - 現在
    今の会社に所属
    順調かと思いき
    や、、、

    View full-size slide

  18. 21
    元旦に振られる

    View full-size slide

  19. 22
    7年のログから⾒えて
    くる⾃分⾃⾝の傾向
    • 仕事が忙しくなると太る
    • プライベートが不安定になると太る
    • 典型的なストレスによって太る⼈間(痩せる⽅もいますね。)
    • 結局、リバウンドを繰り返している
    • 「ダイエットに失敗し続けている」状態

    View full-size slide

  20. 23
    年齢を増すごとに無気⼒になるのを感じる
    肩こり
    脂肪増
    仕事以外でコードが書けない
    ⼈⽣の課題増える

    View full-size slide

  21. 24
    科学的に解説してるサイトがあった
    • ⼈に話したり、質問してもらうことで⾃
    ⼰を再確⽴するらしい
    • 科学の⼒ってすげー
    • なんとか⽴ち直る。(いろいろ相談に
    乗ってくれた⽅々ありがとう
    • しかし、マイナスからゼロになった状態。

    View full-size slide

  22. 25
    ここでなんとかしない
    と⼈⽣が終わる。
    • ここで踏ん張ってく改善しないと、技術的負債ならぬ、
    • ⼈⽣そのものの負債によって潰れるという謎の焦燥感が⽣まれる
    • やる気を取り戻すとか、失恋、⽴ち直る、科学的などでググる
    https://yuchrszk.blogspot.com/2016/12/blog-post_19.html

    View full-size slide

  23. 26
    やる気出ない問題も、
    科学的アプローチで対処できる
    のでは?

    View full-size slide

  24. 27
    改善ターゲットをいかに設定
    仕事外でコードを書く習慣を⾝につける。
    仕事に集中できる環境を整える。
    無理をしなくても体脂肪増を抑えられる⽣活

    View full-size slide

  25. 28
    測定する

    View full-size slide

  26. 29
    Withings
    Wifi Body
    Scale
    いわゆる体重計。Wifi 対応。
    wifi経由で専⽤のサービスに保存
    IFTTTに対応してるので
    体重を測ったらTweetする等できる。
    20000円

    View full-size slide

  27. 30
    Withings
    Activité
    腕時計型のガジェット、歩数管理と
    睡眠時間管理、起床時の
    振動サポート等がある。
    2015年当時39800円

    View full-size slide

  28. 31
    Withings Sleep
    布団やマットレスの下に敷い
    て使う睡眠の質を測る装置。
    いびき等も検知する。
    IFTTT対応!
    https://health.nokia.com/jp/ja/sleep
    14990円

    View full-size slide

  29. HEALBE GOBE2
    腕時計型のガジェット、歩数管
    理と睡眠時間管理、起床時の振
    動サポート等がある。
    https://gobe.jp/
    32
    レンタル ⽉2000円

    View full-size slide

  30. 33
    JINS MEME
    集中⼒や姿勢を測る
    ⽬そのものを計測してるの
    ではなく
    筋電位を利⽤している。
    https://jins-meme.com/ja/
    度付き 47800円
    くらい

    View full-size slide

  31. 34
    Spire
    呼吸を測ってくれるガジェット
    回数等から状態を教えてくれる
    今緊張してるか、集中してるか
    https://spire.io/
    13800円

    View full-size slide

  32. 35
    Jabra elite sport
    運動中に⼼拍数を測る
    声で適切な⼼拍数を教えてくれる
    https://www.jabra.jp/sports-headphones/jabra-elite-sport
    30370円

    View full-size slide

  33. 36
    イラッとボタン
    AWS IoT Buttonを使っ
    てイラッとしたときにイラッ
    としたときに押すことでイラ
    イラを計測するボタン。
    (あまり使わず…)
    2500円

    View full-size slide

  34. 37
    ZOZOスーツ
    体の⼤きさを測ってくれる。
    ダイエットの進捗が可視化で
    きて良い。
    https://jins-meme.com/ja/
    0円

    View full-size slide

  35. 40
    体重
    体脂肪
    睡眠時間
    起床時間
    睡眠の質
    ストレス
    ⽔分量
    呼吸の状態
    集中した時間
    歩数
    測定項⽬⼀覧

    View full-size slide

  36. 41
    全てを集約していく

    View full-size slide

  37. 43
    ストレスを測る
    最近の研究で、⼼拍変動がストレスを割と正確に反映している。
    ということがわかってきた。
    先程紹介したGOBE2ではその⼼拍変動を検知して、
    独⾃のストレス指数を算出してくれる。
    GOBE2のWebページはきれいなSPAだったのでデータを拝借
    https://scholar.google.co.jp/scholar?q=%E5%BF%83%E6%8B%8D%E5%A4%89%E5%8B%95+
    %E3%82%B9%E3%83%88%E3%83%AC%E3%82%B9&hl=ja&as_sdt=0&as_vis=1&oi=scholart

    View full-size slide

  38. 44
    体重管理
    •API : http://developer.health.nokia.com/oauth2/
    •Golang Lib https://github.com/jrmycanady/nokiahealth
    APIとライブラリがあるため、利⽤してFirebaseに登録する。
    つい最近まで OAuth1.0しかなかったが、2.0が追加されまし
    た。
    睡眠時間を測る 歩数

    View full-size slide

  39. 45
    タイプ数を測る
    ⾃分はMacを利⽤しているので上記のライブラリを使⽤。
    https://github.com/KonsomeJona/OctoMouse

    View full-size slide

  40. 46
    草を測る
    https://github.com/users/mogeta/contributions
    いろいろ仕様変更があるし、公式サポートってわけで
    はないのでいろいろ変わる。
    2018/08現在はsvgで渡されるので分解して登録。

    View full-size slide

  41. 48
    ⾷事ログを取る
    毎⽇、きっちり計算したり、ログを取れる⼈は
    myfitnessPal等を使うのがおすすめ
    後に説明するPFCバランス等も計算してくれる。
    とりあえず、写真だけ撮って、GooglePhotoと連
    携すると良い機能がある。
    https://www.myfitnesspal.com/ja

    View full-size slide

  42. 49
    {
    "dateFilter": {
    object(DateFilter)
    },
    "contentFilter": {
    object(ContentFilter)
    },
    "mediaTypeFilter": {
    object(MediaTypeFilter)
    },
    "includeArchivedMedia": boolean,
    "excludeNonAppCreatedData": boolean
    }
    {
    "includedContentCategories": [
    enum(ContentCategory)
    ],
    "excludedContentCategories": [
    enum(ContentCategory)
    ]
    }
    NONE Default content category. This
    category is ignored when any other
    LANDSCAPES Media items containing landscapes.
    RECEIPTS Media items containing receipts.
    CITYSCAPES Media items containing cityscapes.
    LANDMARKS Media items containing landmarks.
    SELFIES Media items that are selfies.
    PEOPLE Media items containing people.
    PETS Media items containing pets.
    WEDDINGS Media items from weddings.
    BIRTHDAYS Media items from birthdays.
    DOCUMENTS Media items containing documents.
    TRAVEL Media items taken during travel.
    ANIMALS Media items containing animals.
    FOOD Media items containing food.
    SPORT Media items from sporting events.
    NIGHT Media items taken at night.
    PERFORMANCES Media items from performances.
    WHITEBOARDS Media items containing whiteboards.
    SCREENSHOTS Media items that are screenshots.
    UTILITY Media items that are considered to be
    utility. These include, but aren't limited

    View full-size slide

  43. 51
    集中度のログをとる
    https://jins-meme.github.io/sdkdoc/
    メガネの機能を利⽤できるSDK
    はある。しかしWeb⽤のAPI
    がまだない(準備中とのこと。
    画⾯をキャプチャして、
    CLOUD VISION API
    を利⽤する。
    JINS MEMEと連動するアプリoffice
    で集計したデータを集めれば良い

    View full-size slide

  44. 53
    呼吸データ集計。
    APIはあるので、取得ライブラリを作成
    func (c Client)fetch(opt ...queryOption) *Spires{
    query := Query{}
    for _, o := range opt {
    o(&query)
    }
    values := url.Values{}
    values.Add("access_token", c.accessToken)
    if query.date != "" {
    values.Add("date",query.date)
    }
    resp, err := http.Get(URL + values.Encode())
    if err != nil {
    fmt.Println(err)
    }
    body, _ := ioutil.ReadAll(resp.Body)
    defer resp.Body.Close()
    spireData := new(Spires)
    err = json.Unmarshal(body,spireData)
    if err != nil {
    fmt.Errorf("%s",err)
    }
    return spireData
    }

    View full-size slide

  45. 54
    こんなデータが取れる
    8/28 9/7(昨⽇)

    View full-size slide

  46. 55
    集計データ閲覧
    https://
    builder-206303.firebaseapp.com
    /#/base/daychart
    mogettaのデータを触って
    君だけのグラフを作ろう!!!!

    View full-size slide

  47. 56
    例:
    withings_sleeps TotalSec
    meme_focus Total
    睡眠時間と集中度。というデータになります。

    View full-size slide

  48. 57
    睡眠データと集中度

    View full-size slide

  49. 59
    睡眠データと集中度

    View full-size slide

  50. 61
    相関関係があるんだかないんだか…
    微妙なところだが、ヨシ!!!!
    ちなみに、個⼈的な所感としては、睡眠時間
    よりも、寝付く時間を早める、早寝が
    重要っぽい感じがしました。
    いや、良くはない

    View full-size slide

  51. 62
    寝付くまでの時間対集中度

    View full-size slide

  52. 63
    運動と集中

    View full-size slide

  53. 65
    ⼈体ABテスト
    朝ごはんを⾷べる
    07/02〜07/08
    個⼈的所感
    集中⼒等には差なし
    11時くらいに普段は感じない
    空腹感を覚えて⾟い

    View full-size slide

  54. 66
    集中度と体重推移

    View full-size slide

  55. 67
    カフェイン制限
    07/09〜07/20
    ⼈体ABテスト

    View full-size slide

  56. 68
    集中度と睡眠時間

    View full-size slide

  57. 69
    朝運動をしてみる
    ⼈体ABテスト
    07/17〜07/21

    View full-size slide

  58. 71
    満員電⾞に乗る。
    ⼈体ABテスト
    無駄に⼭の⼿線を⼀周
    新宿駅→東京駅→品川→渋⾕ 乗り継ぐ
    07/23〜07/27

    View full-size slide

  59. 72
    ストレス指数と集中度

    View full-size slide

  60. 73
    満員電⾞に乗る。
    つらい。
    良い数値が出てないのが⾟い。
    ちなみに、⾦曜⽇くらいから体調崩した

    View full-size slide

  61. 74
    断酒 そもそもお酒っ
    てどうなの?という話
    ⼈体ABテスト
    8⽉から今まで。

    View full-size slide

  62. M なぜエンジニアはパフォーマンス計測しないのか
    • a
    a
    a
    a
    75

    View full-size slide

  63. 76
    エンジニアが体脂肪を
    測るべき理由
    テストステロンがやる気に作⽤する
    脳機能は⾎流環境に左右される
    健康へのダメージは明⽩なため、⽣涯コード記述量
    に差が⽣じる

    https://yuchrszk.blogspot.com/2016/03/25.html

    https://www.ncbi.nlm.nih.gov/pubmed/22970699

    View full-size slide

  64. 77
    体脂肪率8〜13%(⼥性は17〜21%)
    https://www.cell.com/cell-metabolism/fulltext/S1550-4131(16)30596-4
    理想の体脂肪率とは?

    View full-size slide

  65. 78
    改善施策
    導⼊

    View full-size slide

  66. 79
    睡眠の改善

    View full-size slide

  67. 80
    睡眠を改善する理由
    寝ないとあからさまに集中⼒が切れる
    ⼀定の時間時間確保が必要

    View full-size slide

  68. 81
    質の良い睡眠とは?
    ⼈によって違うので要確認!
    ミュンヘンクロノタイプ質問紙
    https://mctq.jp/download/
    http://www.sleepmed.jp/q/meq/
    ⾃分の体質にあった睡眠時間、タイミング
    に合わせて寝る、起きる。

    View full-size slide

  69. 83
    ⾼品質な睡眠を求めて
    ブルーライトをカットする
    パソコン、スマホ等からでる光が
    メラトニンというホルモンの⽣成を妨げるらしい
    メガネにブルーライトカットをつけ、対応する。

    View full-size slide

  70. 84
    f.lux
    最近はデフォルト設定で利⽤。
    ⾊がすごいことになるけど
    ⽬へのダメージを軽減できる

    View full-size slide

  71. 85
    寝る時間、起きる時間を明かりで制御
    https://github.com/mogeta/hueCurtain
    起きる時間は基本のアプリである。
    寝る時間については、
    Hueを使って段々暗くする。を実装。

    View full-size slide

  72. 86
    いますぐ、寝る前スマホをやめる
    寝るまでに時間がかかっている⽇は
    明らかに睡眠の質が下がっている。
    布団に⼊ったら寝ることだけに集中する。
    寝れなかったら起きる。
    スマホは寝る前に!済ませる

    View full-size slide

  73. 89
    ⾷事の改善

    View full-size slide

  74. 90
    量ではなく、タイミングを管理する。
    16時間断⾷して、8時間は⾷べる。
    (⼥性の場合は12時間で様⼦を⾒ながら
    狙う効果
    ・⾃⾷作⽤(オートファジー)
    ・⾷欲の抑⽌
    ・⾎糖値の揺れを抑えて、安定した集中⼒の獲得
    00:00
    23:59
    13:00
    21:00

    View full-size slide

  75. 91
    栄養を考える
    66×2 = 132g
    132×4 = 528kcal
    を⽬標にする。
    タンパク質 脂質 糖質
    質のいい油を求めて
    サバやくるみを⾷べる
    オメガ3、6の
    バランスが⼤事
    精製された糖を避ける
    ほしいも、
    果物メイン
    ごはんは運動前に

    View full-size slide

  76. 92
    オススメの間⾷

    View full-size slide

  77. 93
    タンパク質、良質な油、栄養価
    を考慮した場合の⾷事例

    View full-size slide

  78. 94
    ザミートガイのグラスフェッドビーフ
    と低温調理は相性が良い!
    ANOVAさんは正解にたどり
    着いていた!!!!!!

    View full-size slide

  79. 95
    ベストトーク賞とはいわない!3位
    のAnovaが欲しい。投票お願いし
    ます!!!!!!!

    View full-size slide

  80. 96
    サプリメントの話
    いろいろ調べたけど、エンジニアは必ずこれを飲め!みたいなの
    なかったし、個⼈差が⼤きすぎるので省略
    タンパク質摂取に不安がある⽅は
    プロテインを飲もう

    View full-size slide

  81. 98
    ⾃分がした改善施策
    ジム通い
    パーソナル
    トレーニング
    歩数
    UP
    • 毎⽇⾵呂に⼊りに⾏く。
    • 気分が悪い⽇は4分だけ
    • 有酸素はしない。
    • 正しいフォームを学ぶ
    • 重量ではなく姿勢
    • 肩こり改善策を学ぶ
    • 1⽇1万歩をノルマに
    • ⽬標は2万歩
    • 昼休憩に公園まで歩く

    View full-size slide

  82. 99
    ⼈⽣の質を上げるための運動
    筋トレ HIIT
    • 追い込んだ⽇の次の⽇の
    • 集中⼒に注⽬

    • ⾼強度インターバルトレーニング
    • 短時間で済むので効率が良い
    • やった気になれる。
    • 仕事の休憩中にもできる
    歩く
    • 推奨歩数は⼀⽇2、300
    • 脳の活性化と

    View full-size slide

  83. 100
    https://journals.lww.com/acsm-msse/Fulltext/1996/10000/Effects_of_moderate_intensity_endurance_and.18.aspx
    タバタトレーニング
    20秒の全⼒運動
    10秒の休憩
    8セット繰り返す
    4分で終わる
    忙しいエンジニアにピッタリ

    View full-size slide

  84. 102
    脳機能改善でよくおすすめされる運動
    トレイルランニング クロスフィット
    トレーニング時間は1時間内
    軽く息が上がる〜ヘトヘトになるの間

    View full-size slide

  85. 103
    ダイエットの話
    • 摂取カロリー<消費カロリーになっていなければ痩せない!
    • 体重や体脂肪を絶対の指標にすると⼼が折れる
    • おすすめはゾゾスーツ。

    View full-size slide

  86. 104
    開発環境の改善

    View full-size slide

  87. 105
    ⼈間の脳がパフォーマンスを
    発揮しやすい環境を考える
    どうやら座るという⾏為はリスクが⾼いらしい。
    ⼈間の脳は歩いている時が⼀番活発になる
    https://yuchrszk.blogspot.com/2016/04/130_12.html
    https://yuchrszk.blogspot.com/2015/07/blog-post.html

    View full-size slide

  88. 106
    開発環境を改善する(物理)

    View full-size slide

  89. 107
    開発環境(V1)
    ⽴って開発
    机を買い直すのはちょっと予算が…
    なので、机の上における台を購⼊

    View full-size slide

  90. 108
    集中時間増加による肩こり悪化
    に対応する。
    Ergodoxの導⼊
    開発環境(V2)

    View full-size slide

  91. 109
    ⼈間は歩いているときが⼀番脳
    が働くというらしい。
    歩きながらコードを書くには?
    ステッパーの導⼊
    開発環境(V3)

    View full-size slide

  92. 110
    全部導⼊すると

    View full-size slide

  93. 111
    集中⼒改善

    View full-size slide

  94. 112
    集中できる時間
    測定してみた。結果
    朝の時間体の集中⼒は圧倒的。
    お昼ごはん後(14時以降)は落ち込む

    View full-size slide

  95. 113
    ⾃然に触れる
    ⾃然的なものに触れるだけでストレス低減というデータがある。
    それによって、時間がないという焦りが減り集中⼒が増す

    View full-size slide

  96. 114
    https://www.youtube.com/watch?v=5wdBpNwNfRo&t=5974s
    https://www.youtube.com/watch?v=Ftm2uv7-Ybw&t=4919s

    View full-size slide

  97. 116
    ホリデイリフトは本当か?
    ⾃分で⽴てた計画に沿った旅⾏が実⾏できると
    その後のやる気が11週間続くらしい。本当にー?
    ⼀泊⼆⽇、⾏く場所と
    ⾷べる物を計画していってみた
    https://www.youtube.com/watch?v=expen5OTVFg

    View full-size slide

  98. M なぜエンジニアはパフォーマンス計測しないのか 117
    ผॴԹઘ
    ௕໺ݝ্ాࢢ

    View full-size slide

  99. 118
    ⾃分の⼈⽣を⾃分で決める
    ⾃分のことは⾃分で決める
    思い通りににできる。
    ということが⼈⽣のモチベーションに繋がる

    View full-size slide

  100. 120
    これって、旅⾏に限らないのでは?
    アジャイル開発、スクラム開発等では「⾃分たちで⾒積もる」と
    いうことを強調している。
    プロジェクトを「⾃分たちで制御しているぞ」と思えることでや
    る気やモチベーションの維持につながる

    View full-size slide

  101. 121
    まとめ

    View full-size slide

  102. 122
    そんなに計測する必要ある?
    ぶっちゃけた話、指標にする数値は⼀つで⼗分だと思っている。
    その数値を伸ばそうという⽣活改善を⾏うと、⾃然と他のパラ
    メータも改善されていく。

    View full-size slide

  103. 123
    ⾃分の体のことは、
    ⾃分から学ぶしかない
    例えばお酒も酩酊する量は⼈によって違う。
    適切な運動量、筋トレ、朝起きる時間、集中できる姿勢。
    全部⼈それぞれだと思います。

    View full-size slide

  104. 124
    やる気を出すのではなく
    やる気が出る状態を作る
    よし!やるぞ!とやる気を出さないと⾏けない時点で⾟い。
    楽勝すぎるくらいの⾏動から始めよう!
    ジムで筋トレをするぞ → ジムの⾵呂に⼊りに⾏くぞ
    あの機能を実装するぞ! → あの機能の説明を書こう

    View full-size slide

  105. 125
    最⾼のエンジニアライフを
    みんなでつくっていこうな!

    View full-size slide

  106. 126
    余談:健康情報の情報源
    健康界隈、思っていたよりも情報更新が
    早いので、流⾏りにだまされない。

    View full-size slide

  107. 128
    ・写真、素材等
    https://www.pexels.com/photo-license/
    ・アイコンデータ
    https://www.iconfinder.com/
    ・Gopher
    https://github.com/golang-samples/gopher-vector

    View full-size slide