blog.sowatchasayin

Rails etc.

リモート勤務なう

3月から週4回勤務・リモート(自宅勤務)可という就業形態になりました。
ちなみに、震災の影響でこうなったわけではありません。

どのような環境で作業しているか、色々気がつくところなどを紹介したいと思います。
そもそも「働く」という行為はどのような条件で実現されるべきか、またされるべきでないかについても思うところがあるので、それは気が向いたら別の機会に。


環境

ツールは下記の通り。
ご覧の通り全てクラウド(?)なので、特に何の工夫もせずにどこにいても*1勤務できます。
Google Appsに関しては以前から導入済み、開発環境まわりは僕が入社(2009/12)してから導入しました。こういう状況が可能になるように、という意図は当時からありました。
  • メール、庶務系のファイル: Google Apps
  • 電話・チャット: Skype
  • ソースコード: github
  • サーバー: VPS

コミュニケーションについて

僕のチームでは10分程度の朝会・夕会を行っています。これはSkypeで行いました。ちなみにビデオチャットでなくとも問題ない印象です。
もろもろの相談、ちょっとした雑談などはSkypeのチャットと通話で行いました。チームで一つのチャットルームを使っていて、横から口をはさんだり出来るのが良いです。また、ここにはgithubのcommit hook経由でコミットログが流れるようになっており、作業状況がわかるようになっています。
コードレビューはgithubのコメント機能をフル活用しています。これはlife-changingなので是非使ってみてください。

込み入った話は出社して直接話しました。やっぱり直接会って話したほうがよい事もあります。


進捗管理

3月までは大きなホワイトボード&ポストイットでかんばん的なタスク管理をしており、非常によく機能していました。さすがにこれはリモートでは破綻しそうだったので、Redmineに移行しました。ちなみにRedmineもgithubと連動していて、pushするとチケットが更新されます。更にcapistranoを使ったデプロイとも連動しています。


気がついたこと

効率は上がる
これは好みもあると思います。僕は中断のない静かなところで集中して仕事をしたいので、自宅は最高です。残念ながら自宅の窓の外で工事をしていてちょっとうるさいのですが、それでもオフィス(表参道)に比べると格段に静かな環境です。

サボらない
意外とサボりません。単純にサボると終わるのが遅くなるので、集中して仕事をするようになります。

サボる
言ってることが矛盾しますが、遅くなってもいいや、という気分になるとダラダラ仕事をするようになります。

MacBookの内蔵スピーカーは辛いので小さいPCスピーカーを買うとよい
内蔵スピーカーの金属的な音割れで頭が痛くなりました。Skypeのせいもあるのかもしれません。僕はこれを買いました。

人と会うようになる
僕はあまり社交的な方では無いと思います。それでも家で一人で仕事していると寂しいし煮詰まるので、自然と人と会うようになりました。twitterの書き込みも増えました。

文章でのコミュニケーション力が求められる
自然とテキストでのコミュニケーションが増えるので、過不足ない情報伝達が求められます。さらにテキストでの雑談力もチーム作業ではなかなか重要。

通勤時間、本当にもったいない
会社までのドアtoドアが電車で20分、歩きで40分です。短い方だと思いますがこれでももったいないと感じます。通勤時間は自分の時間でもないし、仕事をしている時間でもない、本当のムダです。ところで何で通勤時間は勤務時間に含まれないのでしょうか?勤務中の移動は勤務扱いになるのに…。

コーヒーが減った
これは関係ないような気がします。お茶派になりました。プーアル茶が好きなのですが、高いですね。


さいごに
正直言うと、あまりにあっけなく移行できた上、ほとんど何の問題も起きていないので、言うことはありません…。
通勤時間も節約できるし、できる人は家でやるのが良いと思います。労働観も変わります。


ちなみに、こんな環境で働いている弊社ではRubyプログラマーを募集しています。ひたすらRailsがやりたい!って人は是非ご連絡ください。d.fujimura あっと grooves.comまでよろしくお願いします。

*1 ノマドワーカーって言い方…何かおかしくないですか?ちょっとカフェで仕事したから遊牧民って…

gitでリモートブランチを削除

わかりずらい

Deleting a remote branch or tag

This command is a bit arcane at first glance… git push REMOTENAME :BRANCHNAME. If you look at the advanced push syntax above it should make a bit more sense. You are literally telling git “push nothing into BRANCHNAME on REMOTENAME”.
http://help.github.com/remotes/

RubyConf2010(1)

RubyConf 2010に参加しました。
Ruby界最大の国際カンファレンスです。
網羅的なレポートは書けないので、気になったトピックについてのみ漫然と記しておこうと思います。

Dave Thomas - Keynote
Dave Thomasの基調講演はRuby10年史、3つのチャレンジー自分とは違う誰かをインスパイアすること、自分達を多様化すること、レールを外れることーについてでした。

発表の中で気になったのは、オープンソースの世界の女性の少なさはコミュニティの文化に由来するところもある、という指摘。いわゆるハッカー文化/倫理の、自分たちは「メインストリーム」から外れた存在である、という自己定義の内に、女性をそのメインストリームとみなす価値観が含まれている、という指摘はもっともだと思いました。自分がコミュニティの価値観から外れる存在であった時の居心地の悪さは、恐らくこのブログを読んでいる人なら感じたことはあると思います。

そして、これは日本でも起こっている現象かと。
向こうで言うハッカー倫理にあたるものは、こちらでは「リア充」って言葉になると思います。
リア充」って表現もハッカー倫理と同じように女性への特定の視点(もしくは視点自体の意図的な排除)を含んでいます。ハッカー倫理的なものと違って、こちらではプログラマー=「非リア」という自己定義は意図的なものではありません。でも、それを否定しない雰囲気はありますよね。そういうラベル付けを受け入れてしまっていることが、自分のコミュニティの多様性を損ねているという点は認識すべきです。

ずっと感じていた違和感をうまく形にしてくれたキーノートでした。
これを機にコミュニティの多様性について考えてくれる人が増えると良いのですが。

Rails cache by memory_store with 1-day expiration

Rails cache has no expiration by default.
So I save the time cached in the cache itself.

Sync crontab and Rails with Capistrano

1. Put `crontab -l` into a file and add it into your repository
2. Add lines below to your config/deploy.rb



that's all. crontab on production server will be refreshed after every deployment.

新しいの5個だけ残してあとは消す

Rubyで書こうとしましたが、間違いでした。
Unixすばらしい。

Author

Fujimura Daisuke
http://fujimuradaisuke.com

Labels