YAPC ASIA 2015の1日目に行ってきた。 #yapcasia

本日は、去年のYAPC::Asia Tokyo 2014 前夜祭に引き続き私にとっての2回目のYAPC、YAPC::Asia Tokyo 2015に参加して来ました。

参加したセッション

謎の写真です

f:id:naoto5959:20150821230425j:plain

旅行券、当たるかな?

esa.io - 趣味から育てたWebサービスで生きていく

さて、本日のお目当てのプログラムです。

esa.ioは「情報を育てる」という視点で作られた、 自律的なチームのためのドキュメント共有サービスです。

f:id:naoto5959:20150821230429j:plain

  • 今回は、界隈の仲間の発表ということで最前列で観ました。
  • イロイロ試すのは確かに大事。URLを持ち誰からもアクセスすることによってフィードバックをもらえるという点に激しく同意しました。
  • 仕事の後にこれだけのものを開発するパッションとスキルに尊敬の念を抱かずにはいられません。
  • サービスがイケるかも?と言ったタイミングで「責任をもつという意思表示のために会社を作る」という所にesa社の2人の覚悟と責任感を感じました。
  • 自分たちが楽しく開発することがユーザーに届ける価値を最大化する という点は私も大事にしている点です。楽しくない開発はどんなにがんばっても最高のパフォーマンスは出せません。楽しむことが何よりも大事だと思います。
  • Bug Fixタイムアタックに関しては、楽しむ為の工夫として素晴らしいなと感じます。
  • We're Not Hiringという方針を掲げる理由が「ユーザーサポートを作っている人たちがやることの強さ」を維持するためというあたりがクールです。
  • 開発スケジュールを決めない!!というのも私の大事にしている点で激しい同意で鼻血が出そうでした。モチベーションの赴くままやるのが最終的に効率がいいのです。モチベーションが全てです。デザインスプリントのようなあえて期限を決めることで自身を追い込む事は大事ですが、そこは 自身で追い込むことが大事 で、スケジュールを他者に握られないというのはすごい大事だと思います。
  • ふりかえりを壇上の上で行い、5年前の想いを実現している姿は素晴らしかったです。

胸を張って、趣味から育てたサービスで生きていく。誰にでも出来る事ではありません。謙虚な姿勢とふりかえりによる結果だと想いました。そしてあの2人だからこそ、という感じがします。esaはツイートの内容などゆふわな雰囲気がありますが、その雰囲気とは裏腹に確固たる信念の元、開発運営されているのでおいそれと真似できないなーと思いますが憧れますねこのチーム。とにかく今回の発表は、とても刺激を受けました。

fukayatsu氏の発表スライドはこちらです。

面白かったツイート

最後に

久々にカンファレンスに参加することで、大変刺激を受けました。自分のやりたいことと、世の中の人の役に立つことが一致させることがエンジニアとしての幸せなのかなと考えさせられる充実した1日でした。

YAPC::Asia Tokyo 2015のスタッフの皆様、運営ありがとうございました。

React.jsを使いたいRailsおじさんがJavaScriptライブラリをそれっぽく管理しながら入門する

Sendagaya.rb #114に来たので、目標のブログ記事を書いてた。

今日は、React.jsの会なので、RailsからReact.jsをざっくり使って見る準備をしてみます。

目指すもの

  • sprocketsのままとりあえず進む
  • jsのライブラリをnpmで管理したい
  • React.jsをES6で書きたいし、JSX書きたい
  • herokuで動かすぞ!
  • react-railsは使いたくない

方針

sprocketsと共存するために、browserify-railsを利用し、ES6はBabelを利用します。ライブラリはそのまま、npmで管理します。

npmを入れます

もし入っていなければnpmを入れましょうね。

brew install npm

package.jsonの準備

browserify-railsにある例のまま記載します。

package.json

{
  "name": "sendagayarb",
  "dependencies" : {
    "browserify": "~> 10.2.4",
    "browserify-incremental": "^3.0.1"
  },
  "license": "MIT",
  "engines": {
    "node": ">= 0.10"
  }
}
npm install --save

更に今回は、babelifyreactを入れます。

npm install babelify --save
npm install react --save

するとこんな感じの、package.jsonになりますね。

package.json

{
  "name": "sendagayarb",
  "dependencies": {
    "babelify": "^6.1.3",
    "browserify": "~> 10.2.4",
    "browserify-incremental": "^3.0.1",
    "react": "^0.13.3"
  },
  "license": "MIT",
  "engines": {
    "node": ">= 0.10"
  }
}

.gitignoreの設定

node_modulesディレクトリをgit管理対象外とします。

.gitignore

node_modules

browserify-railsを入れる

Gemfile

gem 'browserify-rails'

browserify-railsの設定を入れます。今回は、babelifyを使ってます。

config/application.rb

  config.browserify_rails.commandline_options = '-t babelify --extensions .es6'

herokuの準備

Gemfile

group :production, :staging do
  gem 'rails_12factor'
en
heroku create sendagayarb

node.jsとrubyを利用するために、multi buildpackの設定をします。

.buildpacks

https://github.com/heroku/heroku-buildpack-nodejs
https://github.com/heroku/heroku-buildpack-ruby

herokuへpush

git push heroku master

React.jsのサンプル

ホント意味ないほどのサンプルです。

app/javascripts/application.js

//= require jquery
//= require jquery_ujs

window.onload = function() {
  require('./top.es6');
};

jquery_ujsは、railsのヘルパー使いたいシーンもあるので置いてあります。

app/javascripts/top.es6

import React from 'react'
React.render(
  <div>hoge</div>,
  document.getElementById('target')
)

app/views/pages/top.html.erb

<div id="target"></div>

app/controllers/pages_controller.rb

class PagesController < ApplicationController
end

config/routes.rb

Rails.application.routes.draw do
  root to: 'pages#top'
end

ソースとか

まとめ

とりあえず出来たぞ!

人事評価

とは

人事評価制度において、「人が人を正確に評価するなんて不可能」といった立場に立った時大事なのは、当人にとって「モチベーション」を適切にコントロール出ている状態をいかに長く継続するかということではないか。

透明性が大事

360度評価が自然に行われる環境とは、どんな環境であるか。

透明性のある状態で、誰かが誰かに感謝を通じて評価の代わりとなるようなものがある環境があると良い。

感謝とは

すみませんではなく、ありがとうである。

人事において、この人が会社にいた本当に良かった。マジでよかった。ほんとありがとう。と思える人物が評価されるべきだと思う。

つまり評価とはありがとうという感謝で表すことが出来るかもしれない。

モチベーションと感謝の関係性

承認欲求を得たいという欲求によりモチベーションは保たれそう(ひとによる)

KPTによるふりかえりの効用は仕事の効率化だけか?

f:id:naoto5959:20150502155448p:plain

先日会社のブログに、「ふりかえりのススメ!〜モチベーションのコントロール〜 | マネーフォワード エンジニアブログ」という記事を書きました。

KPTという振り返りのフレームワークがあります。

よかったこと(Keep)、うまくいかなかったこと(Problem)、改善するために試すこと(Try)に分けて考えるんですが、これを導入して仕事を改善しようと私のチームの若手を中心を中心毎週KPTすることを始めました。

元はというと、前職で「ソニックガーデンギルド」に参加していた際に、ソニックガーデンの倉貫さんやメンバーと行っていたふりかえりで、このKPTを使っていたというのがあります。このKPTで自身の成長を実感したのもあり、今の会社でも少しずつ取り入れています。

KPTのコツは、倉貫さんの記事にあります。

自律的に現場を改善できるチームをつくるための「ふりかえり」の進め方 〜 KPTと進め方のノウハウ | Social Change!

仕事の効率化につながるチップスとしては以前書いた

あたりを、アドバイスとして話すことが多いです。他にもこんなアドバイスをしてきました。

  • Problemとして「何かができない」という問題を持っていた場合、出来ない、ということはどんな理想に対するギャップがあるのかをしっかり考える
  • 人生の中では大量の惰性があるはずなので、本当に必要ではないことはやらないことも大事
  • 自分がフロー状態に入るコツを掴む
  • タスクは、溜めすぎると瞬殺タスクから普通のタスクになる。小さなタスクはすぐに倒す
  • 最短距離で最大限の成果を出すための優先度を考える

KPTで成長するメンバー

最近、社内でKPTをしているメンバーの姿がより良くなっていくのを感じています。なんていうか、輝いている感じがします。

また振り返りの際には必ず、 「今週楽しかったですか!?」 と始めるようにしてます。毎週を楽しく振り返る事が出来たら最高ですね。

これが大事だなと思ってます。

毎週金曜日に振り返りのではなく月曜日に先週の振り返りをしていたこともあったのですが、明らかに明らかに相手のテンションに違いがあることに気づいたのです。金曜日にやったほうが雄弁にKeep、Problemを語るのです。

その週のうちに、ふりかえる。鉄は熱いうちに打て、みたいなものでしょう。

「今週楽しかったですか!?」 この質問に「楽しかった!」と自身を持って答えられるような、1週間を過ごしたいですね。そのためには

  • 自分は何をしたいのか
  • 自分は何を考えているのか
  • 自分は何をしているのか

ひたすら自問自答し続けます。哲学を持ちます。芯があればブレない。ブレない気持ちを持つためのふりかえり、そんな効用もあるなと最近思い始めました。

パッションを軸にした、ふりかえり、オススメです!

あわせて読むといいかも