yaotti's diary

Software is Eating the World

WEB+DB PRESSにてチーム開発についてのインタビューを始めます

6/24発売のWEB+DB PRESS Vol.93より、ソフトウェア開発チームをテーマとしたインタビューをさせてもらうことになりました。
初回ゲストはギットハブ・ジャパンの堀江さん(@dice)です。GitHubの組織の変遷やリモートワーク、ChatOpsなど初回から内容盛り沢山です。
成果の出せる良いチームとはどういうものかについて、色々な方とお話していく予定です。ぜひご覧くださいー

OKR:組織内のコミュニケーション効率化と重要なゴールへの集中を促すシステム

(Qiita:Teamで社内にて共有していた記事を公開)

GoogleZyngaで使われているOKRという仕組みが、「会社として何が大事なのか」「そのためにチームや自分は何に集中すべきか」を明確にするフレームワークとしてよさそうなので調べてまとめてみた。

OKR(Objectives and Key Results)とは

OKRは会社やチーム及び個々のメンバーの目標(Objectives、達成すべき戦略目標)と主要な結果(Key Results、その目標の達成度を示す客観的指標)から成り立つ。

OKRを導入することのメリット

kobito.1420598750.038815.png Objectives and Key Results ( OKR )より

  • 思考が統制される
    • 大きな目標が明らかになる
    • 日々のオペレーションにかかりっきりだと「実際のところ何が重要なのか」は見失いがち
  • メンバーと正しいコミュニケーションをとることができる
    • 各々が何を重視しているのか、全体として何が大事なのかが明文化され、共通認識を作ることができる
  • 自分達がどれだけうまくやれているのかを測る指標を手に入れられる
  • 組織として重要なことに集中できる
    • 目的に向かってチームを協調させられる

OKRの例: YouTubeのサービス改善

  • Objective
    • 1人あたりの動画試聴時間を増やす
  • Key Results
    • 合計試聴時間を毎日X分増やす
    • YouTubeのネイティブアプリを2つの新しいOSでリリースする
    • 動画のロード時間をX%短縮する

良いOKRとは

以下、How Google WorksからOKRの特徴を引用する。いずれも実践するときに欠かせないポイント。

優れたOKRの一つ目の特徴は、大局的視点に経った目標を、測定可能性の高い意味のある結果と組み合わせることだ。つかみどころのない戦略目標(「使い勝手を良くする」「チームの式を高める」「締まった身体をつくる」など)を掲げ、四半期末に「達成!」と宣言するのは簡単だ。しかし、戦略目標の達成度を具体的目標(「各機能の利用件数をX%増やす」「従業員の満足度スコアをY%高める」「ハーフマラソンを二時間以内で走る」など)で測るようにすると、俄然面白くなる。

第二の特徴は、「発想を大きく」の精神と密接なかかわりがある。優れたOKRは達成に相当な努力を要するもので、すべてのOKRについて達成度100%というのは現実的にあり得ない。OKRが全て青信号というのは、目標を十分高く設定していないことの表れだ。模範的なOKRは野心的であると同時に現実的だ。この独特な考え方の下では、うまく寝られたOKRで達成度70%というほうが、質の低いOKRで達成度100%より好ましい。

第三の特徴は、ほぼ全員がOKRを実践することだ。重要なのは、どんな仕事に就いているかにかかわらず、社内の全員がモノを考えることだ。

第四の特徴は、OKRにはスコアがつくが、スコアそのものが別の目的に使われることはなく、記録にさえ残らない。だから社員が正直に自分のパフォーマンスを評価するようになる。

第五の特徴として、OKRは業務全体を網羅するものではない。対象となるのは特別力を入れるべき分野や、特別な努力をしなければ達成できないような目標だ。通常業務の範囲でできることにはOKRは必要ない。

読み物:とあるスタートアップでのOKRの工夫

OKRs and Projects: How We Set Goals at Upstart | Upstart Blog

あるスタートアップでOKRを採用しようとしたが、多くのメンバーから下のような意見が出た。

  • 四半期目標はペースの早いスタートアップにとって遠すぎる
  • 「70%達成できればよい」というスタンスだと、宣言した目標に対して結果責任を負わないことになるのではないな

そこで四半期のOKRに加えて、Key Resultsを達成するための活動をプロジェクトとして切り出した。プロジェクトは1ヶ月はかかるような粒度で、終了を定義する成果が明確に定義されている。この方法で複数四半期にわたりうまく運営できているとのこと。

メモ

OKRの設定は個人に限らず、チームや会社にもあるべき。またうまく運用できるようになるには1-2四半期かかると考えておいたほうがよい^1

参考記事

ドリップコーヒー環境 2015年1月

自宅でのコーヒー環境を3年ぐらい運用してきてだいたい満足しているのだけれど、今年は器具や淹れ方を色々試してみようと思っているので*1現時点での手法を書いてみる。

コーヒーミル

最初は挽いた後の豆を買っていたのだけれど、試しにミル買って挽いてみたら香りがすばらしくて以降は必ず豆で買うようにした。 なんとなくKalitaがいいのかなと思って探して見付けたものを3年ほど使っている。挽いた後の掃除が少し面倒(特に深煎りだと粉が器具に付着してしまう)な点以外は満足して使っている。次バージョンが出ているようなのでこれから買うならこちらがよさそう。

ドリッパー

ドリッパーとコーヒーポットが一緒になっているため、かさばらないし使い勝手もいい。レンジで温め直せるのも助かる。蓋を外せないのが最初気になったけれどあまり困ることはなかった。

ポット

ハンドドリップ用の口が細いタイプだが、コーヒーに限らず使える。見た目もおしゃれ。

ペーパーフィルター

KALDIで買った安いペーパーフィルターを適当に使っている。

自分でコーヒーを淹れる意味

ただうまいコーヒーを味わいたいなら渋谷などにいくらでもよいカフェがあるけれど、わざわざ自分で淹れるのは豆を挽いた後の香りが大好きなのと、コーヒーを淹れる作業が良い精神統一の儀式になるから。ハンドドリップは準備含め10分程度というほどよい長さの時間で実行でき、それなりの集中力が要求され、かつささやかながら達成感を味わえるので儀式として良い。

今年はもう少しブログを書いていこうかなと思ったので、とりあえずゆるい記事でした。Have a good life with good :coffee:!

*1:フレンチプレスやエアロプレスなど

WEB+DB PRESSでRubyの連載を始めます

今月発売のVol. 81より「切りひらくRuby ── サービスの成長を支える現場の技術」というタイトルでRubyについて連載します.初回はRails開発の待ち時間を減らすというテーマで,SpringやWeb Consoleなどについて書いています.

連載の特徴としては

  • サービス運営者視点からの話
    • 実戦投入までを含めた説明
  • 具体的なプロジェクトでの活用内容
    • Qiitaプロジェクトでの使い方や計測数値など
  • しくみや実装面の解説
    • gemのインストールや使い方だけではなく,各機能がどう実装されているのか
    • 今回はSpringの仕組みとか結構面白いとおもいます

あたりを意識しています. まさかいつも読んでいた雑誌に自分の文章が載る日が来ようとはとそわそわしていますが,どうぞよろしくお願いします.6/24発売です.(目次)

ちなみに執筆はこの前@inaoさんGitHub Kaigiで発表されていたようにGitHub上で書いていますが,普段使い慣れたツール,サービス,フォーマットで書くことができるためとても快適です.markdown++

書籍「パーフェクトRuby on Rails」にはRails開発のベストプラクティスが詰まっている

@joker1007 さんより献本いただきました.ありがとうございます :octocat:

環境構築からアプリケーション開発,そして継続的な改善も含めたRailsのベストプラクティス本

"パーフェクト"とタイトルに入っている通り,この本は単純なRailsのhow-to集やチュートリアルというわけではなくいい感じに踏み込んだ内容が書いてあって楽しく読めました. 情報の鮮度や量の観点だとどうしてもオンラインが強いですが(RailsならRails Guidesはまとまっているし,あとQiitaのRails情報も;)),それらとは綺麗に差別化されていました. 開発環境構築からプロジェクト作成,デプロイなどのインフラ寄りの話,そして継続的にサービス開発をする上で出てくる問題の対処方法までと,広範囲に渡りRailsプロジェクトのベストプラクティスを学ぶのに良い本だと感じました.

個人的には9章以降の話(Fat Modelの解決策やRack層についての話など)が特に参考になりました.値オブジェクトの利用所やサービス層を用いた設計のような話が,具体的なRailsのコードとともに説明されています. また8章のVagrant+Chefでローカル開発環境を作るという話もあるので,BoxenからVagrant+Chefへの移行前に読んでいれば相当役に立っただろうなという気がします.あいまいな理解だったSprocketsについて知ることができたのも収穫でした.

Railsを使って開発しているけれど自分がうまくやれているのかわからない,表面に留まらない理解をしたい,という人におすすめです.

まとまった集中時間を確保するために

Rebuild: 32: How We Work Remotely (Naoya Ito)でのremote workの話で「どう自己管理して集中できる環境を作るか」みたいな話が少しあったので,今の自分の環境をまとめておく.ぼくは割り込みや誘惑にとても(!!!)弱いので,色々と工夫した結果それなりにうまく回るようになった.

デスクトップ環境

普段の工夫

ブラウザ(プロファイルとfacebook)

ポッドキャストでmiyagawaさんが触れていたけれど,ぼくもGoogle ChromeのProfileを仕事用とそうでないものとで分けている. 特にFacebookが問題で,仕事でFacebookメッセージをよく使うため仕事中にfbメッセージを返す→そのままFacebookをしばらく見てしまう→気が付いたら延々Facebook見てた,ということが頻発していた. そのため,今はFacebook基本的に閉じておく&メッセージはiPhoneの通知で確認して,返信するときだけ個人用プロファイルでFacebookを開き,返信し終わったら閉じる,という形に落ち着いた. プロファイルを分けなくても同じことはできるんだけど,区別しておくことで普段開きづらくなる効果は大きかった.

Pocket

仕事中に見付けた面白そうなページは,基本的にはその場で読まず即座にPocketへ記録するようにしている.そうして記録したページを別の時間にiPadiPhoneで読むようにすると割り込み時間が大きく減った.これは習慣にして良かったことの1つ.

集中したいとき

例えば溜まっているコードレビューに一気に対応するとかブログ記事を書くといった,まとまった時間を取りたいときは以下のようにしている.

  • メーラー(Sparrow),GrowlTwitterクライアント(夜フクロウ)を落とす
    • メーラーを落とすという発想はずっと無かったのだけれど,やってみると激しく捗った
  • チャット(HipChat)は"Do not disturb"ステータスにする
  • BGMを変える
  • 考え事をするときはマシンから離れて,紙+ペンのみ使う

モバイル環境

NO SNS

ぼくはiPhoneからFacebook, Twitterアプリは削除している.年始に消したのでもう2ヶ月ほどこれらのアプリ無しで過ごしているが,無いせいで困ることはほぼない. 最初はTwitterのDMやFacebookでのコメント(メッセージは専用アプリを使う)に気付けない,対応できないなと思ったけれど,確認はメールからできるしブラウザでtwitterFacebookのサイトに行けば一通りの操作はできるので全く問題なかった.空き時間にとりあえずFacebookTwitterをひたすらスクロールすることが無くなったので,時間だけでなく精神衛生面でも良い.

インプット

SNS関連のアプリを削除することで,PocketHBFavGunosyKindleなど,自分にとって価値がある可能性の高い情報だけ読むようになった.

通知

メールアプリ(Mailbox)の通知をオフにしてみるととても捗ることがわかった.即座に確認,対応が必要なメールなんてそうそうない.他もだいたいのアプリの通知はオフにしている.

まとめ

なんとなく受け取っている通知とか割り込みを見直してみると,ぼくの場合はほとんどはリアルタイムに受け取る必要がなかったので,一度見直して積極的に削ったりpullで情報取得するように変えるといいと思います.

やること/やらないことリスト

Twitter共同創業者でSquareの創業者でもあるJack Dorseyの講演(Jack Dorsey at Startup School 2013 - YouTube, 翻訳: 「自分が見たいものを世の中に生み出せ」 Twitter創業者ジャック・ドーシーが初めて語った"成功のためのリスト" | ログミー)で話されていたやることリスト/やらないことリストを作ってみた. 日々更新していくものだと思うけれど,いま思いついた項目で作ったバージョン1を残しておく.

やること

  • まっすぐ立つ,座る
  • 腕立て伏せとスクワットを20回x6
  • 水をしっかり飲む
  • 7時間の睡眠をとる
  • 皆に挨拶する
  • ペンと紙を使う

やらないこと

  • 意図せず無為に過ごさない
  • アイコンタクトを避けない
  • 二度寝しない
  • 面倒かどうかを行動の判断基準にしない

話の最後に触れられている曲.最近良く聞いてる.