しるろぐ

いろいろ書きます。

インディアンプランニングポーカーというのを考えた

今日、チームでプランニングポーカーしてたら、ふと思いついたので書いてみる。

プランニングポーカーとは

タスク(ユーザーストーリー)の見積もりを立てるときに行う手法です。
いくつかのポイントの書かれたカード*1の中から、工数を選んで、一斉に公開して、チームでの工数感の認識をすりあわせます。

大体の流れ

1. 見積もりたいタスクを選んで
3. それぞれカード(工数)を選んで、一斉にオープン
4. 全員が一致していたらその工数で終了
5. バラバラであれば、一番高い人と一番低い人がなぜその数字を選んだのかを説明する
6. その理由を元に再度カードを選びなおし、3-5を繰り返す

ちゃんとした説明が希望の人は「プランニングポーカー」とかでググってください。

インディアンポーカーとは

トランプゲームの1つです。
自分に見えないようにカードを持ち、他の人のカードや発言を参考にしながら、「降りる」「勝負」を選択して、カードの強さで勝敗を決めるゲームです。
交換(カードを引き直す)がある場合もあります。

大体の流れ

1. 山札からカードを取って、自分に見えないように頭の前に出して
2. なんやかんや騒いで
3. 勝負したり降りたりします

ちゃんとした説明が希望の人は「インディアンポーカー」とかでググってください。

インディアンプランニングポーカーとは

自分の見積もりが分からない状態で話し合って、自分の見積もりを当てたら勝ちなゲームです。ただし、見積もり自体はちゃんとやります。

大体の流れ

1. 自分の手札をシャッフルして
2. 自分に見えないように頭の前に出す
3. メンバーはそれぞれの見積もりを見つつ、妥当そうな見積もりを選ぶ(その人ならそう出しそう、みたいな)
4. 自分の見積もりが分かった人は一度だけ宣言することができ
5. 宣言があたっていると点数が入る
6. 最終的にせーので、妥当な見積もりの人をさして終了

難しいタスクに小さいポイントを出している人は難しさがわかってないから任せられないな、とか、あの人なら逆に、あっというようなアイデアを出してすぐ終わらせてくれるかもしれない、とかあの人はいつも多めに出すから妥当そう、みたいなことを考えつつ、話し合うので、普段自分の見積もりがどのように見られているか、逆にこのタスクでこの見積にするにはどうしたらよいか、みたいなことが考えられて良いと思います!(やってない)

*1:?, 0, 1/2, 1, 2, 3, 5, 8, 13, 20, 40, ... みたいなセットが多い

最近作ったhubotの紹介

去年の年末あたりに急にhubotで遊びたくなって幾つか作ったので、社内のLT大会的なやつで紹介した。
スライドは本当に紹介だけなので、軽くテキストで補足する。

hubot-lgtm


silvers/hubot-lgtm · GitHub

LGTMって話しかけると、LGTM.in/gからランダムに画像を引っ張ってきて表示してくれる。
会話が華やかになって良い。

hubot-shinchoku


silvers/hubot-shinchoku · GitHub

shinchokuって話しかけると、進捗どうですかからランダムに画像を引っ張ってきて表示してくれる。
進捗ダメですって言っても許されるような空気になるのでギスギスしなくて良い。

hubot-karma

まだリファクタリングしていないので公開してないけど、ユーザ名++とかユーザ名--とか書くとカウントしてくれる。
承認欲求が満たされて良い。

hubot-chocho


silvers/hubot-chocho · GitHub

オフィスの空調が暑かったり寒かったりしたので、みんなである程度同意をとって空調を調整できる君が欲しかった。
変にストレス貯めなくて良い。

ちなみにchochoは空調調太郎の愛称。

hubot-chat-sirubo

心が荒んだときにボットと会話して心を和ませる用。
それなりの返信パターンを用意している。
心が洗われて良い。

hubot-ramen-gotanda

五反田のラーメン情報を教えてくれる君。
重み付けなどは特に行ってないので、推し麺があればリストに複数突っ込む感じで。
ランチで悩まなくて良い。

hubot-saying

○○な名言を教えてくれる君。今のところロックな発言のみ対応。
意識高まって良い。

その他

かなり社内向けのツール群をいくつか作った。

まとめ

hubot楽ちんだし楽しいよ。

2014年のふりかえりと2015年の抱負

新年になったし、なかなかこういう機会じゃないとふりかえることもないのでふりかえっておく。

仕事

マネジメント

2014年は新しいグループを立ち上げたりしてマネジメントっぽいことに挑戦した年だった。
マネジメントでは、メンバーが集中して開発できる環境を整えつつ、面談などでメンバーと調整して、グループのあるべき姿、今後目指すところをうまく示せたと思う。
前半はマネジメントとエンジニアのバランスがなかなか見えていなくて、残業しがちだったのもだんだんと(仕事減らすのに)慣れてきて後半はうまくプライベートの時間をとれたと思う。

席にいない時間が多く、チャットで指示したりレビューする、みたいなのがメインになってしまったのは失敗だった。
来年はもうちょっと面と向かってあれやこれやする時間を増やしたい。

今後は自分がメインでゴリゴリ開発するのは誰も幸せにならないので、後輩を育てる、コードを書いて勉強するのは業務外で、というのが今後の課題になってきそう。

あと経営学とか組織論的なやつの勉強の必要を感じる。

新規プロジェクト

また、新規プロジェクトの立ち上げも同時期に行って、プロジェクト全体の開発リーダーをした。
開発リーダーぽいことは2013年もやっていたけど、立ち上げから担当したこともあって、歴史的経緯とか気にすることなく、いろいろな仕組みやルールを決めることができたのが良い経験になった。
自分のプロジェクトの基盤を整えただけでなく、成功を通じて他のチームに良い空気が伝搬していて色々なフィードバックがもらえたのが嬉しかった。

ただ、仕組みをかっちりしすぎたせいで、新しいメンバーが入ってきたときに文化に慣れるまで時間がかかってしまった。
もう少しプロジェクトメンバーに合わせて柔軟に対応できるようにしたい。

個人的な課題としては、立ち上げから関わるとリリースする時期には飽きてることと自分でやったほうが早い病をどうするか。
これに関してはどうすればいいかまだ答えは見つかってない。

仕事ではコード書いてないけど書いたらすごいんだぜ的な感じを醸し出すためにOSS貢献とかブログとかのアウトプットを頑張るのはどうか。

フロントエンド

インフラ→サーバーと来て2014年はフロントエンドをメインに開発した。
ブラウザともそこそこ友達に慣れてきたし、coffeescript, nodeなどにも挑戦できた。
開発だけでなく、専門職として会社全体のプロダクトのUI/IA設計に関わることができた。

nodeはまだちょっと触った程度なので、2015年はもっとゴリゴリ書けるようになりたい。
パフォーマンスやUI周りも、経験的に解決することが多かったので、分析周りの力を身につけたい。

その他

社長賞とクレド賞(社員投票的な)をいただいた。
来年は、データ分析やネイティブアプリの年になりそう。勉強せねば。

プライベート

ボードゲーム

大学のころに大分ボードゲームやって飽きたと思っていたけれど、会社のゲーム部のおかげでボードゲーム熱が再来した。
同じゲームばかりやってしまった感じがあるので、2015年はいろいろなゲームに挑戦して「大体のボドゲはやったことあるよ」ぐらいになりたい。

あとTRPGのリプレイ動画をニコニコで見てる。面白い(見るのが)。

日本酒

せっかくsakelifeで毎月お酒が届くんだし…と思って大体月一ぐらいで『四合瓶または寿司』という日本酒宅飲みをするようになった。
お金の徴収はナシ、それぞれの財布事情に合わせて四合瓶か寿司、またはそんな感じのものを適当に持ってきて飲もう!みたいな会でいろいろなお酒を飲んだ。
その他にも、会社の休憩スペースで就業後に寿司とか買ってきて飲んだりしてた。

記憶に残っているのだと、「画竜点睛」と「来福mellow」が美味しかった。他にも美味しかったの沢山あるけど、銘柄が…。
米違いとかグラス違いとか飲み比べ系が面白かった。

元々荷物は少ないほうだったけど更に減らした。
積ん読が多いので2015年はちゃんと減らしつつ本棚もスッキリさせたい(毎年言ってる)。

その他

2014年は全然美術館にいけなかったので2015年は月1ペースぐらいで行きたい。

まとめ

プライベートはお酒飲んだ記憶しかない。
結構仕事の年だったなって印象が強いけど、やりたいことは提案したら全部やらせてもらっているしとても良い年だった。
2015年は、個人の技術力の向上と、後輩の育成、インプットとアウトプットのバランスを頑張りたい。

天下一クライアントサイドJS MV*レームワーク武道会に参加&LTしました #ten1club

天下一クライアントサイドJS MV*フレームワーク武道会 - connpassに参加してきました。
イベント見たときはもう枠こえてて、参加するにはLTしかない!みたいな感じだったので、ドキドキのLT応募。実際はキャンセルが多くて、補欠登録でも大丈夫そうだったけれど、良い経験できてよかった。

話したこと

angular X designer - デザイナからみたAngularJS #ten1club

簡単に言うと、HTMLやjavascript周りを専門にやる人が潤沢にいないチームで、エンジニアとデザイナの両方がHTMLをさわると、

  • エンジニアが組んだロジックがデザイナによって壊される
  • デザイナが組んだデザインがエンジニアによって壊される

みたいな悲しい出来事が起きてしまう。
デザイナはIF、ELSEを呪文のようだと思っているし、表示条件を変えたい、みたいなときにロジックが書ける人のサポートが必要だ。

それは一般に、マークアップエンジニアであったりフロントエンドエンジニアであると思うんだけれど、SPAのような片手間じゃないjavascriptが必要なプロダクトでは、フロントエンドの業務範囲がでかくなってしまう。

そこで、表現に関わる部分をデザイナにやってもらいつつ、それができるような環境・仕組み作りをフロントエンドエンジニアが行う、ということをやるためにMV*フレームワークとしてAngukarJSを選択し、実際に試した感想を話した。

内容としては以下のような感じ。

  • Angularは薄くないフレームワークなので、すぐに「利用できる」環境が整っている
  • 学習コスト高いと言われているが、「利用する」だけならそんなに学習コストは高くない
  • ngClass, ngAnimate, ngClick, ngSwipe*あたりは、エンジニアのサポートが必要なくデザイナが挙動を制御できるので楽しんでもらえる
  • Controllerはデータを突っ込むことだけを考えて、少しでも複雑そうならModelに移してしまうのがよい
  • directive, filterなどはガンガン作っていく
  • フロントエンドエンジニアは死ぬ

全体の感想

最近Angular漬けだったので、色々なフレームワークの話が聞けて楽しかった。
パネルディスカッションも面白かった。Angularの標準Routerがアレなのは同意。

企画者の@yousuke_furukawaさん、@mizchiさん、会場のDeNAさんありがとうございました。
お疲れさまでした。

ユーザからの反応を普段使っているチャットツールで見れるようにすると捗る

タイトルですべて話しきったけど、とても便利なのでおすすめ。

B2Cなサービスを作っていると、ユーザの反応が気になる。
ただ、いちいち色々なSNSにアクセスして検索するのもだるいし、メンバーによっては見なかったりするので、チーム内での情報共有がしにくい。
やっぱりサービス作っているならユーザがどう思っているか、どんなことを今後期待しているかみたいなのは、メンバー全員が意識したいし、それをサポートする仕組みがあると嬉しい。

さいわい、うちの会社では社員全員がIRC(チャットツール)でコミュニケーションをする文化が育っていて、離席時以外はログを読むことを期待されている。
そこで、各種SNSをクロールするBOTを作って*1、サービスの評判をほぼリアルタイムに通知するようにしたところとても捗った。

良かったこと

  • ユーザからの要望や不具合報告を以前よりも早く対応できるようになった
  • ユーザの感想から会話が広がり、メンバーの意識のすりあわせができるようになった
  • 単純に見ていて楽しいし、褒められると嬉しい

あまり良くなかったこと

  • 雑談が捗りすぎる

今後できたらいいなと思うこと

  • ある程度フィルタリングしたい
  • 文章解析してどんな反応か分類できたりするとイイネ
  • 要望だったら自動でチケット切るとか

*1:自分が作ったやつは保守面倒になってしばらく前に止めたけど、最近同期がいい感じのものを作ってくれた

Gotanda.pm #1に参加してきた

昨日、五反田のモバイルファクトリーの会議室でGotanda.pm #1が開催されたので参加してきた。

最近はJSとCSSばかりでほとんどPerlいじってなかったんだけど、良い刺激になった。ちょうど時期的にも3ヶ月目ぐらいの新人が初めてのLT!みたいな感じで発表する時期だったので楽しかった。

主催者の@karupaneruraによると、これから3,6,9,12月の3ヶ月おき開催を目標にしているみたいなので、次回は9月!

会社で開発合宿してみた

4月の中旬ぐらいに、3泊4日の合宿をしてきた。場所は群馬のみなかみ、開発合宿で有名な谷川くるみ村のペンション木馬だ。

背景

普段、オフィスで仕事をしていると、作業中に話かけられたり、いい感じのところでミーティングが入ったりして、なかなかまとまった作業時間を取ることができない。
ちゃんとした格好で椅子に座っていないといけないし、ちょっと疲れたからサッカーしようぜ!みたいなこともできない。
そこで、プロジェクトチーム全員で開発合宿をすることにした。

事前準備

合宿中は、できるだけ作業時間を確保するために、事前に以下のような準備をした。

  • 体調を整えておく
  • リモートで作業する環境を整えておく
  • ひたすら手を動かすだけのタスクを準備しておく
  • プロジェクト外と調整が必要になるものは済ませておく
  • プロジェクト内で調整が必要になるものも済ませておく
  • 互いの作業がブロックしないように、作業内容を疎にしておく
  • お酒を用意しておく
  • トランプなどのゲームを用意しておく

合宿本番

スケジュール

合宿中は以下のようなスケジュールで作業を行った。
水曜の午後に到着し、水木金と2.5日の作業を行って、土曜に帰る3泊4日計画。

07:00 朝食
08:00 午前作業開始
12:00 昼食
13:00 午後作業開始
17:00 午後作業終了
19:00 夕食
20:00 自由時間(酒盛り・ゲーム)

働き方

業務なので8時間の作業時間は確保していたが、きっちりみんなで集まってお仕事しましょう、という感じにはしなかった。途中でお風呂入ったり、ベッドに寝転がりながら作業したり、外出したり、パフォーマンスがあがるなら何でもオッケー。

自分は大体寝っ転がったり、いろんな机を転々としたりしながらお菓子食べてた。あと昼寝した。夜はお酒を(少々)飲みながら他の人のコードのレビューしてた。

コミュニケーション

事前準備で、調整は行っているはずなので、基本的には発生しないはず。
やむを得ず、相談や質問をする場合は、Yammerを使用した。

合宿の成果

大体、普段の3倍の作業ができたっぽい。
8時間業務の場合、ミーティングやコミュニケーションなどで、作業が出来る時間が4,5時間程度ということを踏まえると、2倍の時間を確保できて、1.5倍ぐらいの生産性を発揮できたらしい。

良かったこと

  • 作業が中断されることがないので集中することができた
  • 周りに何もなく、都会の誘惑がなかった
  • 開発合宿の受け入れをしている宿だったので、オーナーの人が何かと理解してくれた
  • 休憩時間にゲームやお酒などを飲んでチームの一体感が増した

悪かったこと

  • 寒かった
  • 温泉じゃなかった
  • カメムシが大量発生していた
  • 集中した作業を3日続けるのは結構つらかった
  • 健康生活を目指して普段の業務時間と違う時間に作業したため、馴れていないメンバーが疲労していた
  • 使い慣れていないツール(Yammer)を使ってしまった
    • 質問したけどだれも気づかない、みたいなことがあった
    • 通知が弱めだった

今後にむけて

  • 事前に合宿先の気温や天気は調べておく
  • 温泉のある合宿所にする
  • 合宿期間を短くするか、観光やイベントなど、頭を休める時間を用意する
  • そこまでかっちりスケジュールは決めなくて良いかもしれない
    • やることやってればいい
  • 使い慣れているツールを使う
  • 報告用に写真を撮っておく

まとめ

楽しかったし、ちゃんと仕事も進んだのでまたやりたい。
もっといろんなチームやいろんな会社がやってよりよい合宿ノウハウ溜めたい。