2016年 1月 の投稿一覧

半径3mでネタ見つけて半径5mで解決していく

「半径3mでネタ見つけて半径5mで解決していこう」という話を私が以前会社でして自分で発言しつつ、この言葉受け売りだったのだけど、どこで読んだっけ... と思い出すのに時間がかかってしまったので、折角なのでこちらにも書いておこうと思います。

恐れ多くも宮﨑駿監督が言われていたのでした。

彼はよく「企画は半径三メートル以内にいっぱい転がってる」と口走ります。彼のあの豊かな発想はどこから生まれるのだろうと、みな興味津津だと思いますが、じつは彼の情報源は二つしかない。友人の話、そしてスタッフとの日常のなにげない会話です。

先に書いた「半径3mでネタを見つけて」は、何かしらの立ち上げ当初だったり、情報を集めるのも一苦労だったりするのですが実は身近なところに企画(ネタ)はあったりするかもしれないという意です。

スタッフの間の知識だったり、もしかしたら同じ会社の他のサービスを利用されているユーザの方の意見だったり、身近にたくさん企画はあるかもしれない。それを積極的に取り上げていこう。

更にこれへ自分が後ろをくっつけました。「半径5mで解決していく」

企画だったりがあるんだけど、ないづくしの立ち上げ時に自分達だけで実現するのは無理だと思うことであっても、3mより少し向こうの5mの範囲まで広げると、もしかしたら一緒にやってくれる人がいるんじゃないだろうか。企画を実現するための解決策を持っている人がいたりするんじゃないだろうか。と。

きっと、そう思って過ごしていくことが何よりも全ての物事を少しずつでも進めていくときの一つの解決策なのではないかと最近考えています。

皿洗いに関する一考察

基本的に家事が好きなので、料理とかお風呂掃除とか折を見てする訳ですが中でも好きなのが皿洗いだったりします。

皿洗い、少し嫌悪されがちな家事の一つで最近だと食洗機を使って省力化することもできてそれはそれでとてもメリットなのではありますが、自分は食洗機を所有していないので手で洗っています。そうした中でもこんなことを考えながら皿洗いしているという話。

前提として「皿洗いはゲームだ!!」と思ったりしています。

  • 如何に綺麗に洗うか
    • そのために如何に効率よく泡立てて食器を洗うか
  • 如何に短時間でどうすませるか
    • そのために「食器を洗う→すすぐ」をできるだけ少ない回数にできるか

と考えます。

こう考えた時に洗うべき食器を目の前にして、

  • シンクに運ぶまでに油汚れがあるものがあったらその上に皿を重ねない様にしよう (皿の裏側に汚れが移らない様に)
  • 泡立ちがすぐ悪くなるから油汚れのある食器は先に水だけで流しておこう
  • できるだけ重ねやすい順にシンクに置いて連続して食器を洗える様にしてまとめてすすぐことができる様にしよう

などと幾つか戦術が出てくるわけです。この戦術はその日の食事によって状況は変わる訳で鍋物のときは大きな鍋が出てきたり、カレーの様な汚れがどうしても残りやすいものだったりと敵(?)は毎日様々な方向で現れる訳でそれを上手に捌いていくぞ。と考えたりしています。

と書くと非常に大げさに感じますが、毎日繰り返す仕事とかルーチン的な業務であっても考え方の持ち方次第でモチベーションが変わるんじゃないかなと思います。

あと、もう1つ皿洗いをするとその日の振り返りができる気がします。最後に洗った皿の泡を洗い流している時にその日にあった嫌なことも一緒に流れていく様な気持ちになりますし、全て綺麗に洗い終わった時には明日も頑張ろうと思えます。

「問題解決をする」と考えるより「問題を小さくする」と考えてみる

「問題解決能力」というキーワードが仕事をしていたりするとよく耳にします。例えば、「問題解決能力の高い人を採用したい」だとか「あの人は問題解決能力が高い」といった会話が出たりします。

そうした能力は多くの人にとって能力を身につけたいと考えるところでもある様で、本屋さんにいくとそういった類の本が多数出版されています。

このテーマに関連して自分なりに思うところもあって、「問題解決」というキーワードで思うと非常に壁が高い様に感じてしまって何か特殊な能力がいる様に感じてしまうのですが「問題を小さくするぞ」と思うと「お、自分でもできるかも」というのがあります。

何かしら問題や課題に直面したときに問題を小さくすることを意識すると、

  • サービスで障害が起きた
    • 原因はどこだろうと切り分けていく (ネットワークなのかミドルウェアなのかアプリケーションなのか etc...)
  • 商品をレコメンドしたいけど商品数とユーザが多すぎて計算量が大きい
    • 行列を小さくして演算できるサイズにできないか考える
  • レガシーなアプリケーションを修正したいけど実装が大変そうだ

などと、大きな問題を少しずつでも「問題を小さくするぞ」というアプローチで考えると何かしら自分でもこれならできるぞと思えるところが見えてくる様な気がします。

もっとも、「それは問題の解決になってないじゃないか!」という意見もあるかとは思うのですが、いきなりなんでも全てを解決しようとするのではなく、少しずつでも問題を小さくしていくというアプローチの方が複数の人と一緒に仕事をしていく時には有効なのではないかなと思ったりもします。

徒然日記

昼間は外出。雲ひとつ無く青空がとても綺麗だった。

電車で移動したり待つことがあったので SAVE THE CATの法則 本当に売れる脚本術 を読む。

夜はチェーンの焼肉屋さんへ。久しぶりに食べた焼き肉。積極的に野菜を食べないと胃がもたれるお年頃なので積極的にチョレギサラダ食べる。

席の隣に海外の方が来られていたのだけど、とても上手に焼いた肉を箸で取られ、タレにつけた後、白米に一度着陸させてとても美味しそうにお肉とご飯を食べていて勝手にシンパシーを覚えた。マナー的に怒られるかもしれないけど、一度着陸させてしまう食べ方、自分もしてしまう。

自分が伝えた気になったことは1/3も伝わってないことが多い

自分が伝えた気になったことは1/3も伝わってないことが多いという話。

日常生活送っていると何かしらコミュニケーションを取ることも多いわけですが、基本的にそういったコミュニケーションをしていると自分が思っていて伝えたことは1/3も伝わってないと思う様にしています。

例えば職場で自分がエンジニアであり何かを実装するにあたっての仕様を説明した時にその仕様が100%自分が考えた通りに伝わっているかとういうと、その様なことは決して無く大体1/3も伝わっていないことが多い気がします。原因としては、

  1. 自分が頭のなかだけで理解していて口に出してない
  2. 口では伝えたが相手が理解していない
  3. 相手も理解したが、すぐ忘れてしまった

などがあるかなと思いますが、これは誰を攻めるわけでもなく、機械同士のプロトコルによるやり取りでも無い限り必ず生じることかな。と思ってます。

上のことを防ぐためにいくつか方法があるかとは思いますが、例えば、

  • 事前に何かしらメモを作っておく
  • 説明をする際にホワイトボードや手元のノートで図示する
  • 議事録を残す

といったことができるところでありそうです。また一定期間に定期的なコミュニケーションを取るということで仮に上の様な準備が仮に不十分であったとしても、1/3の相互理解を重ねていくことで少しずつ自分の意図を伝えていくこともできそうです。

自分もできるだけ上の様なところを意識しながら日頃過ごしていますし、逆に人から相談されたときや、人の話を聞いているときはできるかぎり1/3の理解に留めない様にしているつもりです。

ここまで書いて、「あぁ、これは仕事してるとあるなぁ」と思われる人も多いかもしれないですが、実は全く同じくらい生じているのがプライベートでの家族や友達との会話だったりします。

自分の近くに一番長い時間を過ごしている人だからこのくらいの説明で通じているだろう。とか、このくらい説明しなくても察してくれよ。といったことを思っていると大抵1/3以下しか伝わっておらず、お互い幸せにならないことが多い気がします。

むしろ近くにいる人に対してこそ、丁寧にコミュニケーションを取りながら毎日を過ごしていきたいと思っています。*1

*1:いろいろ自戒が多い

徒然日記

最近通勤時に読んでいる本。

特に中でもやねうらおさんのインタビュー記事はとてもおもしろかった。BM98、ちょうど大学生のころ流行っていてみんな遊んでいたのを思い出した。中高生時代に逆アセンブルしながらそのゲームがどの様な実装されているかを探っていたというくだりはとても興味深かった。

自分にとってゲーム経験って何があっただろうと思うとファミコンで「オバケのQ太郎 ワンワンパニック」*1に始まり、スーパーマリオを経てスーパーファミコンに移らずPC-9801Super Depthにハマっていたことぐらいかなと思う。

ちなみにスーパーファミコンになるとボタンが増えてコントローラーを操作することができなかった。A,Bボタン以外にX,Y,L,Rが増えてしまったからだ。

基本的に何事も制御を求める画面で3択以上求めてはダメだと思う*2。一般的な信号機以上の色の選択は頭に入らない。

*1:Bでジャンプ、Aでガウ砲だった。スーパーマリオと逆で混乱した

*2:あくまでも持論です

閲覧数が多かったコンテンツをGoogle analytics APIで取得してSlack通知する

コンテンツサイトを運営していると毎朝Google analyticsで昨日公開したコンテンツの反応だったり過去公開したものが盛り上がっていたりしないかをコマメに見る様になるのですが、それを簡単に運営に携わっている全員に共有できないものかな。と思っていたのでevacで一日前の各コンテンツのPV数をGoogle analytics API経由で取得してtakosan経由でSlack通知させる様にしてみました。*1

恥ずかしながらサンプルとして当ブログに一日分の閲覧数トップ5を取得してみます。(このエントリを書いているときに実行したので1日前の元旦終日のPVに相当)

{
"in": {
"googleanalytics": {
"timeago": {
"period": "days",
"ago": 1
},
"metrics": "ga:pageviews",
"dimensions": "ga:pagePath",
"sort": "-ga:pageviews",
"clientId": "xxxxxxx-yyyyyyyy.apps.googleusercontent.com",
"serviceEmail": "xxxxxxx-yyyyyyyy@developer.gserviceaccount.com",
"key": "/Users/hideack/ga.pem",
"ids": "ga:xxxxxx",
"format":"URL: hideack.hatenablog.com{0} = {1}PV",
"limit": 5,
"results": "rows"
}
},
"out": {
"ikachan": {
"url": "http://〜",
"join": false,
"channel": "#evac",
"message": "__word__"
}
}
}

で、上のレシピをevacで実行すると以下の様に前日にアクセスが多かったページのURLがtakosan通知されます。

毎朝決まった時間に実行すれば、注目された記事をGoogle analytics開かずとも知ることができて便利。

ちなみにレシピ中のclientIdとかserviceEmail、keyはGoogle developer consoleから取得します。やり方はこちらに書いてます。もう少し楽に扱えるとよいけどな。

*1:ちなみにtakosan使っているのは一つのエントリポイントで複数のチャンネルに通知ができて便利という理由。incoming webhookを設定しておけばoutputにSlackを直接指定することももちろんできます。(参照)