seri::diary

日常

リモートワークを始めて3週間が経ったので所感をまとめてみる

7月1日に株式会社ハートレイルズで勤務し始め、3週間ちょっとが経ちました。

最初は色々不安もあったリモートワークという働き方ですが、なんだかんだで上手く回っている気がします。仕事の方もそれなりに貢献出来ていると思いますw

このエントリーではリモートワークをして感じたこと、気づいたことを簡単にまとめてみます。

 生活リズムが安定するようになった

朝起きる時間、寝る時間が前に比べて安定するようになりました。

私の平日のスケジュールは大体こんな感じです。

  • AM6:00 起床(天気が良ければジョギングor散歩)
  • AM6:45~7:30 朝食・シャワー・身支度
  • AM7:30~AM8:50 洗濯、掃除、ギター弾く、本読む、提督業務、ネットをダラダラ見る
  • AM9:00 自宅で業務開始。hangoutで社員と朝の挨拶、進捗共有、雑談などをしてから業務開始
  • PM2:00頃 昼休み。家で適当に作って食べるか外食する。時間が余れば本屋に行って小説や技術書物色したりカフェでコーヒー飲みつつネットダラ見or読書など。
  • PM3:00頃 業務再開
  • PM7:00~PM8:00 業務終了。日報を提出して(日報共有は弊社が提供するサービス3arrowsを使っています)仕事用のPCをシャットダウン。

退勤後は夕食を食べてネットダラ見してニコ動観て提督業務して本読んだりギター弾いたりコード書いたりとダラダラしてから23:00頃に就寝します。勉強会がある日は早めに切り上げて勉強会に行ったりもします。

ハートレイルズは勤務時間がきっちり決まっている訳ではないのですが、他の社員が勤務している時間帯やお客様の営業時間に合わせると自然と時間が決まってきます。

なので生活リズムは割と固定化されます。また、通勤時間が無くなった分プライベートに充てられる時間も増えたので「帰りが遅くなったけど読みたい本が…今週中に読譜して練習しないとヤバい曲が…試したいライブラリが…提督業務が…」みたいに夜更かしする理由があまり無くなったので、その日の未練を残さずさっさと寝られるようになったためか、寝る時間も固定化してきました。

仕事の生産性が高くなった

前職より1日に書けるコード量が増えた気がします。

色々理由はあると思うのですが、

  1. コミュニケーションはオンラインツールを使った非同期コミュニケーションなので作業を中断されるタイミングが減ったこと
  2. 自分が作業し易い環境を自分で作って作業していること
  3. 職場が静かなので(当たり前ですがww)

といった所が理由かなーと思います。

1.作業を中断されるタイミングが減った

コミュニケーションには以下のツールを使っています

全てオンライン上でコミュニケーションをしていることもあって、オフラインでのMTGや会話と違って同期生が求められません。なので返せる時にレスを返すというスタイルになるので、自分の作業の状況に合わせて対応できます。

もちろんGithubやHipChatでメンションがあったらすぐ分かるようにサウンドを鳴らしたりメーラーのデスクトップ通知はONにしていますが、それでもすぐに反応すべきかどうかをすぐ判断出来るので、人から話しかけられる度に作業が中断する、といったことがありません。

そのため、まとまった作業時間が長く取れるようになったので、結果的に作業効率が上がっているのだと思います。

2.自分が作業し易い環境を自分で作って作業していること

と言っても、盛岡への引越しコストがあるのでそこまでお金はかけてないのですがw、今の所こんな感じです。

f:id:serihiro:20140719111512j:plain

こんな感じです。

今の所プライベートのPCとディスプレイ、キーボードを共有してるのでELECOMのKVMスイッチ「 KVM-DVHDU2 」を使って切り替えています。

なおこのKVMスイッチは前職の同僚一同から退職時に頂いたものです。このブログ見てるか分かりませんが大活躍しています。ありがとうございます!

引っ越して落ち着いたら前職のオフィスにあったDELL27inchディスプレイと Wireless Keyboard を揃えたいですが、とりあえずそれまではこれで十分です。

3.職場が静か

独り暮らしなので当たり前ですが、静かですw

ただ、個室で仕事するようになって分かったのは、オフィスで他人の雑談が聞こえるのは結構ストレスだったのだなぁということです。割と賑やかなオフィスで働いていたせいかもしれませんが、静かだと集中したい時にスッと集中モードに入れる気がします。

ただ、逆に集中が切れた時とか疲れた時は好きな音楽かけたりも出来ますし、自分の場合、所属しているマンドリンオケの演奏会で弾く曲の練習録音を確認しながら仕事、なんてこともしています。この辺の柔軟性はやはりリモートワークならではといった所でしょうか。業務中にヘッドホンかけて良い職場だったらまた違うでしょうけど、大体の職場はイヤフォン・ヘッドホン禁止でしょうから。

 

やっぱりたまには寂しくなるw

当然課題もあります。

当たり前ですが、要するに引き篭もりスタイルなのでオフラインでの人との交流が圧倒的に減ります。週末のマンドリンオケでの練習ぐらいでしか人と話さない、という週もあります。

なのでたまには寂しくなります。仕事中は全く寂しさを感じませんが、仕事が終わったあとに夜1人で過ごしているとそういうことを感じる時もあります。なので以前より勉強会で人に話しかけることが増えた気がします。コミュ症はコミュ症なりに寂しさを感じるということなのでしょうw

リアルな人との交流を持つ機会を増やすことは今の課題でもあります。今は川崎に住んでるのでもうちょっと勉強会とか社会人が集まるコミュニティに顔出してみたりした方がいいんでしょうね。この辺りの情報ももっと探して行きたいところです。

あとは今はずっと自宅で作業していますが、慣れてきてプロジェクトが忙しくなければコワーキングスペースで仕事したり誰かとランチを食べたり飲みに行ったり、ということも増やしていければと思います。ということで早速来週は元同僚とランチの約束をしてたりしますw9月末までは川崎にいるので、東京圏にいる間に他の人と交流しておきたいですね。

 

とりあえずこんな感じでリモートワークをしています。

最後に色々書きましたが、総じて楽しくやっておりますw

Railsで仕事するのも初めてだったので最初は不安もありましたが、ソースレビューをきっちりやるスタイルなのでまずい所は指摘してもらえますし、自分でもパーフェクトRubyやパーフェクトRuby on railsを読みながら勉強することでついていけている感じです。

技術的な話についてもturbolinksの挙動について「うおおおおおおおお」ってなることがあったり「CoffeScript最初はビビったけど使ってると超便利!」「 jquery-ujs.js使うと$.postする時に勝手にCSRF-Token付与してくれてて便利!」みたいなこととか色々書きたいネタが沢山あるのですが、これらについてはまた別エントリーで書きたいと思います。

「盛岡徘徊欲」、というのがあってですね

多分私しか言ってない訳ですが、そういうのがあるんですねwという話。

 

自分は大学時代からレヴァンテ・マンドリンオーケストラという、岩手県盛岡市を中心に活動している社会人マンドリンオケ団体に所属してギターを弾いています。かれこれ7年ぐらいになります。長いもんですね。

岩手大学に在学していた頃は練習も徒歩で行ける距離の公民館とかでやってたので「地元の団体」という感じだったのですが、社会人になって埼玉やら神奈川やらに住むようになってからは事情が変わりました。

レヴァンテは1年に1回定期演奏会があって、この演奏会の4~5ヶ月前から練習が始まります。練習が始まると平日の夜や土日に集まって練習をする訳ですが、当然「地元」でなくなった以上、平日の夜や土日に気軽に参加することはできなくなります。

 

f:id:serihiro:20140711005837j:plain

そのため社会人になってからは、練習が無い時期は殆んど団体活動にタッチせず、練習が始まってからは月に1回程度にペースで、土日に盛岡までギター担いで行って練習してビジホに泊まって返ってくるスタイルになります。こうなると盛岡に行くというのが「ちょっとした小旅行」みたいな感じになるんですね。

そうなってくると不思議なもので、学生の頃は毎日見ていた町も見方が変わってきました。「あ、ここ良い所だったんだ」って。

f:id:serihiro:20130209090135j:plain

そう思い始めたのは社会人になって半年ぐらいしてから盛岡に行ってからでしょうかね。つまり社会人になってすぐw

 んで盛岡に行く度に、練習の前とかに盛岡の町を「徘徊」するのが習慣になっていました。大体は夜行バスで朝着いて練習が始まる9時ぐらいまでの間です。(練習が始まれば夜まで練習です)

上の写真は岩手大学農学部の構内なんですが、ここまで駅から30分ぐらいかけて歩いてきました。氷点下の中を。ギター担いで雪道をスーツケース引いて。

正直アホです。
しかし盛岡の町を歩くのはなんだか分からないのですが、とても楽しいのです。例え気温が氷点下10度近くても。

学生時代を思い出して懐かしいと感じる部分もありますが、今、社会人になった自分の感覚で盛岡にくるととても居心地が良いんですね。これが不思議なくらい。

f:id:serihiro:20140711011214j:plain

知ってる道なのに来る度に歩いて風景を見たくなる。そんな場所は自分にとって盛岡しかありません。

今は「たまにしか」訪れないからかも知れませんが、それでも、一度住んだ町を離れて改めて見るとそこに居心地の良さを感じることもあるという発見でした。

f:id:serihiro:20140711011708j:plain

そして明日また夜行バスで盛岡に行くので初夏の盛岡を「徘徊」してこようと思います。

 

 

第2回 かわいいKotlin勉強会 #jkug に参加しました

第2回 かわいいKotlin勉強会に参加してきました。

普段はあまり勉強会レポートとか書かないんですが、最後のじゃんけん大会に勝ってイケメンなサムライズム社長からIntelijIDEAのライセンスをタダで頂くという幸運に恵まれたのでこうして筆を取った訳でありまして候。

Intelij IDEAで私もKotlin書くよ!

 

所感

結局当日まで 一行もKotlin書かないまま、ロクな事前知識もなく行ったので細かいお話は他の人にお譲りして思ったことをつらつらと。当日の様子はイケメンが撮影してたUst録画がyoutubeに動画が上がってるのでこっちを見るのが早いです。

あと関係ないけどKotlinってKotolinってtypoしやすいの何とかなりませんか。

みんなjavaは辛いと思っていて救済を求めてる

らしいなぁ、、というのが一番感じたことでしたw

自分は1年半javaをずっと仕事でメインで使っていてストラッツとかスプリングとか使ってサーバサイドjavaを書いてた訳ですが、web開発だとそこまで長すぎるsyntaxが辛いとか匿名クラス作るのウザいとか思わなかったんですよね。

IDEのコード補完使い倒せば本質的でない部分は殆んど書かなくてすみますし。とりあえずeclipse使ってるならctrl + spaceとctrl + 1とalt + shift + mで世界は平和になります。

ただ、Androidになるとやっぱり話は別なんでしょうかね?会場でアンケート取ったら殆どの人がAndroiderでした。
Androidjava書くのがしんどい事情、実はよく分かってないのでいずれ勉強しないとですね。。仕事の関係でAndroidアプリやることになってから慌ててもしょうがないので。

Kotlin良さそう

java勢としては複雑な思いでLTを聞いていたのですがw、全体的にはkotlin良さそうだなと思いました。

変数が基本的にimmutableだったり、デフォルトでnull入れられなかったり、java 8よりもクロージャがスッキリ書けたり、javaだと人間が気をつけないといけなかった部分を言語仕様でかなり肩代わりしてくれる感じですね。

前職でSwiftを少し触った身としてはSwiftっぽいなーと思ったものですが、というよりは「今時の言語っぽい」ということなんでしょうね。Scalaも似たような言語思想ですし(なんて言うとScala逆引きレシピ著者に怒られるからやめときましょうかw)

ただ、開発環境がまだIntelij IDEAじゃないと辛いとか、言語仕様がコロコロ変わっている段階なので言語の上に乗っかるframeworkを作りにくいとか、まだまだキツイところはあるみたいなので、今後の発展に期待ですね。

個人的にははよwebアプリ作りたい所ですが、なんか主要なWAFはどれも開発が長いこと止まっちゃってるみたいな…話もあるようですが…アレ?

最後に

主催者のみなさんお疲れ様でした。

懇親会出られなかったけどまた機会があったら飲みましょう。

Kotlinサイコー

退職しました

6月いっぱいで現在の会社を辞めることになり、昨日が最終出社日でした。

関係者のみなさまには大変お世話になりました。
この場をお借りして御礼申し上げます。

 

「自社サービス事業とは何たるや」ということを身をもって学ばせて頂きました。

今の職場で勤務したのは1年と半年程ですが、それまで受託開発しか知らなかった自分にとって、単にシステムを作ることと、事業を行ってお金を稼ぐことの違いを学ばせて頂き、いかに儲かる仕組みを作るかが価値であり、そうでないものは世間からも仲間からも評価されない、ということを知ることが出来ました。

 

自分より優秀な沢山のエンジニアと働くことができました。

就職してからずっと目標に出来る先輩がいませんでしたが、この会社では初めて「この人のようになりたい」と思える人と出会い、その下で働くことができました。とても幸せなことだったと思います。

 また、僅かな期間でしたが、Scalaで有名な@takezoeさんには、言語に関係なく、OSS活動や今後の技術動向についてなど多くのことを教えていただきました。書籍を執筆したり外部で公演を多く行っている方は物事の捉え方が鋭く、またそれを分かり易く伝えることが出来ていて、こういうコミュニケーションの取り方が出来るようになりたいと思いました。

f:id:serihiro:20140621082511j:plain

 

Scala逆引きレシピ (PROGRAMMER’S RECiPE)

Scala逆引きレシピ (PROGRAMMER’S RECiPE)

 

 

Java逆引きレシピ

Java逆引きレシピ

 

 

javaという言語のパワーと魅力について知ることができました。

前職まではPHPとjsぐらいしか知らなかった自分にとって静的言語はめんどくさい言語という程度の認識しかありませんでしたが、IDEのコード補完を駆使して高速にコーディングするという概念や、DIコンテナAOP等の新しい概念をSAStrutsやSpring等のWAFを通じて知ることが出来ました。またDBFluteというORMの使用、及び作者の@jfluteさんのハンズオンチュートリアルを通じて、変更に強いDB設計の仕方や、データ取得時の「起点テーブル」という新しい概念について学ばせて頂きました。
DBFluteDDLが書かれたSQLファイルを直接読み込んで(というか実際にSQLを実行してDBを作る)そこからModelクラスを自動生成してタイプセーフにDBアクセスすることができ、DB定義書(html)までも自動生成し、テストデータもexcelで管理できて簡単にimport/dumpができ、かつmigration管理機能まで揃っているかなり強力なフレームワークです。javaC#版がありますので、それらの言語で開発しているプロジェクトで是非使って欲しいと思います。

f:id:serihiro:20140621081527j:plain

勉強会を開催し始めました。

f:id:serihiro:20140621081901j:plain

今でも続いていますが、オフィスにイベントスペースようなものが出来たので、渋谷javaという勉強会を自社で開催させていただき、今でも2ヶ月に1回ぐらいの頻度で開催しています。
初めはカジュアルにjavaの話が出来る勉強会が無いのでやってみるかー、ぐらいのノリで始めたのですが、今では毎回満員御礼になる盛況で、FWの紹介やJVMチューニングの話やJUnitの特殊なテストケース対応や、果てはvert.xやScalaやgroovyやkotolinの話題まで飛び出すかなり濃い勉強会となっています。
自分はペーペーなので自分が使ったライブラリやFWの紹介ぐらいしか出来てませんが、毎回新しいことを学ばせて頂いていて、javaの魅力というか底力をひしひしと感じます。
この勉強会については、私が辞めた後も引き続き株式会社ビズリーチのオフィスにて不定期で実施させて頂く予定です。

 

来月からリモート勤務します。

さて辞めた後の話ですが、来月からは株式会社ハートレイルズでお世話になり、リモート勤務という新しい働き方にチャレンジする予定です。

あと言語がrubyメインになるので、今必死こいて勉強している所ですw

rubyの勉強にはパーフェクトRubyや初めてのRubyRailsの勉強にはRailsチュートリアルとパーフェクトRailsRSpecによるRailsテスト入門を使って、サンプルアプリをゴリゴリ作っています。この辺もあとで別エントリーにまとめたいと思います。

 

初めてのRuby

初めてのRuby

 

 

パーフェクトRuby (PERFECT SERIES 6)

パーフェクトRuby (PERFECT SERIES 6)

 

 

パーフェクト Ruby on Rails

パーフェクト Ruby on Rails

 

Everyday Rails… Aaron Sumner 著 et al. [Leanpub PDF/iPad/Kindle]

Ruby on Rails チュートリアル:実例を使って Rails を学ぼう

 

で、リモート勤務に慣れた頃に、大学時代を過ごした盛岡に移転する予定です。

私は大学時代から盛岡のレヴァンテマンドリンオーケストラというマンドリンオーケストラに所属してギターを弾いていて、今でも月1ぐらいのペースで盛岡に夜行バスで行って練習してくるという日々を送っておりましたが、この活動に本腰を入れたいと思ったのと、後は単純に田舎好きな人間なので、大学時代を過ごした住みやすい環境で、仕事や趣味に全力で打ち込みたいと考えたからです。

盛岡ではIWDDという勉強会コミュニティもあるし、スマフォアプリのもくもく会なども定期的に開催されているようですので、向こうに行っても色んなコミュニティに顔を出して現地のエンジニアの方々と交流していきたいと思います。あとjavaの勉強会がなかったらiwate.javaみたいのを作ってもいいかもしれませんがw、まぁそこは向こうに行ってから考えます。

 

この決断をするにあたってかなり悩みました。ただの自分の我侭じゃないのか?通勤電車や人混みや東京の環境の悪さが辛いのは誰もが一緒なのに、自分だけそこから逃げていいのか?等々。あと結婚してないのにリモート勤務とか、理由が完全に俺の『自分が住みやすい場所に住んで働きたい』っていう我侭しかないじゃん…そんなのを自分自身で許していいのだろうか…」といった感じに。

でもやはり自分に嘘はつけないという結論となり、さらにソニックガーデンでリモート勤務をされている@jnchitoさんのブログ「give IT a try」や、ハートレイルズでリモート勤務をされている@ogin_s57さんのブログ「ITエンジニアとして生きる」を読んで、決して不可能な働き方ではないと勇気づけられ、決断に至りました。また、37シグナルズの「強いチームはオフィスを捨てる」という書籍を読んで、リモート勤務の具体的なイメージをして、何とか自分なら出来そうだと感じたのも理由の一つです。

 

強いチームはオフィスを捨てる: 37シグナルズが考える「働き方革命」

強いチームはオフィスを捨てる: 37シグナルズが考える「働き方革命」

 

 リモート勤務はまだ日本では実例が少ない働き方ですが、家庭を持っている方や地方在住の方にとっては大きな恩恵を得る事ができる良い働き方だと考えておりますので、このブログでもその働き方を通して感じたことや工夫していることについて紹介していきたいと思います。

 

以上、長くなりましたが退職エントリーとさせていただきました。

今後ともみなさま、よろしくお願いしますm(_ _)m

ブログのデザイン変えた

f:id:serihiro:20140601132502j:plain

最近はGithub会議に参加したりRailsの勉強したり色々としている。

RailsのERDをModelから自動生成するrails-erdで生成されるERがあまり良い感じではないのでもう少し良くできないか、テーブル情報取れるんならテーブル定義書みたいなものを自動生成できるんじゃいの?とか色々調べたりサンプル作りまくったり。

#渋谷java を運営し始めて一年ぐらいが過ぎた

#渋谷javaという勉強会を去年の6月から2ヶ月置きぐらいの頻度で自社の会議室を使って開催している。つい先日の土曜日に第六回を行った。稚拙ながら自分もゆるふわなLTをさせてもらった。

 

なんだかんだで一年近く続けてきた訳だが、この勉強会を始めた動機はたいそうなものではない。

javaでweb開発する会社に入社し、オフィスを引っ越して、30人ぐらいは入れそうな広い会議スペースが出来たのが去年の丁度6月ぐらいの時期。

折角広いスペースが出来たのでなにかやりたい、ということで上司に頼んで勉強会をさせてもらうことにした。javaを選んだのは弊社がjavaでweb開発をする会社だったので多少なりとも自社のアピールが出来ればと思ったのと、自分がLTしたかったのと、shibuya.rbやshibuya.pmがあるのにjavaは無かったのでじゃあ作ってしまえと思った程度の理由だ。

気がつけば、毎回募集すると定員の35名を大きく超える応募があって補欠待ちが常にいたり、1日で全枠埋まったりとそれなりに好評をいただいている。

「○○.java」とかいう今どきのチャラい名前をつけたので若者しか来ないかなと思ったら、初回から「java歴10年です」「java歴15年です」「java1.1から触ってます」「mavenセントラルで公開してるjavaOSSコミッタです」「Seaserの某ORMのコミッタです」、とかいうマサカリ担いだモヒカンレベルの人がゴロゴロやってきて超絶コアな話をしてくれている。その一方で自分は細々とライブラリやフレームワーク紹介をしたりポエムを披露したりしているので恐ろしくしょっぱい。。

果ては「groovyコミュから来ました」「scalaコミュから来ました」「JJUG運営から来ました」「kotolinエヴァンジェリストです」みたいな感じで色んな所から色んな人が訪れるようになって、毎回想像もつかない多様な内容のLTをして頂き大いに刺激になっている。そのうちの何人かとは仲良くなってプライベートで飲んだりするようになったのだから人の縁とは不思議なものである。

他言語の勉強会だとこういうコアな話をしまくる勉強会って結構あるものだが(特にrubyは)、javaにおいては他に自分は知らないし行ったことがない。そんなせいもあってか、普段からjavaを使い倒してる人達にとっては情報共有をするための場が不足していて、その飢餓感みたいなものが渋谷javaに集中しているのではなかろうか、と勝手に想像していて、その役割を担えているのであれば光栄なことだと思う。

ただ、java自体にそれほど新しい話題が無いのは事実で、java8が出てもいまいち盛り上がらないし、真新しいWeb Frameworkやライブラリがある訳でもないので、どこまでこの勢いが持続できるか分からない。ただ、まだまだ来る人来る人ネタを沢山お持ちのようなので、人がいなくなるまでは続けていきたいし、若者を呼びこむために初心者向けっぽいネタも体を張って提供していけたらと思っている。

 

 

人にプログラミングを出来るようにする方法

新卒教育でjavascriptを担当してたりするのだが、どうにもこうにも、自分が全くの初心者だった頃に、どうやって覚えたのか全然分からなくて困っている。

記憶にあるのは、初めてまともに勉強したプログラミング言語であるPHPの勉強ととほぼ平行して「javascript実践入門」を頭から読みまくってサンプルコードを片っ端から写経しまくって、prototypeこえー、window.onloadっておまじないじゃなかったんだー、と思った記憶ぐらいで、あとは必要に応じてググったり、jQueryだけは他の本を読んだりしてカバーしてきた。何だかんだ言ってwebのフロントエンドjsしか書いてこなかったせいもあるのかも知れないが、殆んどjsでつまづいた記憶が無い。そのせいで「jsなんぞ本読んどけば勝手にできるようになるじゃろ」という認識だったのだが、人間都合の良いことしか覚えてないだけなのだろうか。

そもそもプログラミングで躓いたというか挫折したみたいな経験をした記憶が無く、自然と他の人や本やwebで知識を得たり、人のコードを読んで自分で書いて動かして、実際のプログラムの動作と理論をリンクさせていき、そこからさらに抽象化した概念マップみたいなものを頭のなかで充実させていく作業の繰り返しみたいなことを通じて身についていったものなので、まっさらな人にどうやって教えればできるようになるのか。これが非常に難しく感じている。

プログラミングに限らず自分の場合はIT全般のスキルはみんなそうやって身に付けてて、例えばDBにしてもNWにしても、新卒で入った会社の詰め込みスパルタ教育を受けていた時も、「楽しいー!やっべー!ITすげー!」みたいな感じで勉強しまくってて、毎日やっている確認用ペーパーテストとプロジェクト演習の成績で同期で1位の成績だったらしいのだが(勿論現場に入れば分からないことだらけで凹んだが)、苦労して覚えるというか、イヤイヤ覚えるというか、そういう経験をITに関してはほぼしたことがない(強いて言えば情処の為に簿記を覚えたぐらいか)。

全くプログラミングの経験がない人間に教える事ができないのは自分の大きな課題とも言える。まずは目の前の新卒に、現場で困らないレベルの最低限のjsのレベルまで引き上げることが第一歩だろうと考えている。