Alfred で作業時間を記録する workflow を作ってみた

ソニックガーデン Advent Calendar 2015 の7日目の記事です。

ソニックガーデンの仕事では、コードの品質だけでなく開発速度も重視されます。お客さんのビジネスに価値をもたらすソフトウェアを素早く開発し、リリース後にも日々変化する状況に柔軟に対応していくのがソニックガーデンの納品のない受託開発です。また、「長時間働いてがんばります」という働き方は全く推奨されていません。短時間でいかに成果を出すかが求められています。

さて、短時間で成果を出すと言ってもいろんな考え方があるのですが、まずは自分が何に時間を使っているのかを知りたくなりました。

試しにTogglといったサービスを使ってみたのですが、タスクの開始や終了タイミングで押し忘れてしまうことがよくありました。で、後で手動修正するのですが、その操作性がイマイチ。

シンプルに Googleスプレッドシートに手で記入する方法も試してみましたが、現在の時間を入力する簡単な方法がわからなかったり(後で調べたら Command + Shift + ; でできた)、コピペなどのタイミングで10秒くらい固まることがある(自分のマシンが非力なのか?)、ブラウザでスプレッドシートのタブに切り替えて記録するという手順がそもそも面倒、といった問題があり、やはりイマイチでした。

で、 Alfred の Worlflow を自作してみました。(ちなみに、Alfred の workflow を使うには Powerpackを購入する必要があります)

Workflow の機能

今はこんな感じの機能になっています。

  • l 何かテキスト で現在の時間と入力したテキストをログファイルに追記
  • l のみで 現在の時間と '------' をログファイルに追記
  • le 何かテキスト で現在の時間と入力したテキストを追記した上で、エディタでログファイルを開く
  • le で何も追記せずにログファイルを開く
  • lb で区切り線と今日の日付をログファイルに追記(その日に作業開始時用)

f:id:shunichi_san:20151207055943p:plain

これの何がいいかというと、シンプルなテキストファイルに書き込まれるというところです。テキストファイルなら自分の手に馴染んだエディタで編集できますし、時間記録とは関係無いメモも同じファイルに書けます。後からデータを加工したくなってもテキストファイルなら簡単にできます。

Workflow の作り方

Alfred の設定ウインドウで Workflows のタブを選択し、左下の+ボタンから Templates > Essentials > Keyword to Script を選ぶ。
f:id:shunichi_san:20151207053321p:plain

適当に名前をつける。
f:id:shunichi_san:20151207053912p:plain

こんな感じになる。
f:id:shunichi_san:20151207053903p:plain

左の Keyword をダブルクリックして、キーワード l を設定。
f:id:shunichi_san:20151207052951p:plain

右の Run script をダブルクリックして、実行するスクリプト名を設定。
ここでは main.rb というrubyスクリプトを実行することにします。
f:id:shunichi_san:20151207053000p:plain

ワークフローのコンテキストメニューから Show in Finder を選んで、開いたフォルダにスクリプト(main.rb)を作る。
f:id:shunichi_san:20151207053008p:plain

スクリプトはこんな感じ。

右上の + から Inputs > Keyword を選び、キーワード le も追加します。
f:id:shunichi_san:20151207060601p:plain

右上の + から Actions > Run script を選び、スクリプトを追加。 ruby main.rb -o "{query}" としました。
f:id:shunichi_san:20151207060849p:plain

追加した Keyword と Run script をドラッグでつないでください。

あとは、同様にキーワード lb も追加します。出来上がりはこんな感じです。

f:id:shunichi_san:20151207052923p:plain

まとめ

alfred workflow で検索すると便利な workflow がたくさん見つかりますが、欲しいものがなければ自分で作るのも難しくありません。 立派なものを作る必要はありません。さくっと作って、日々の作業を効率化しましょう!

ソニックガーデンの採用を受けて

この記事は ソニックガーデンAdvent Calendar 2015 の12/2の分です。

私は2015年7月から見習い採用という形でソニックガーデンで仕事をしています。 今回は、ソニックガーデンの採用を受けて面白いなと思ったことについて書こうと思います。

採用までに非常に長い時間がかかります

自分の場合の採用の流れはこんな感じでした。 f:id:shunichi_san:20151202022233p:plain

最初にコンタクトをとってから採用が決まるまで約1年かかっています。 前半が学習&選考期間、後半はインターンのような形で社員とコミュニケーションをとりながら自社アプリの開発を手伝いました。この期間ずっと、前職を続けながらでした。

応募の時点での技術が評価されるわけではない

ソニックガーデンでは主に Ruby on Rails を使って仕事をしますが、RubyRailsも触ったことなかったというような人も結構応募してきます。採用が決定するまでに技術力が身につけばいいのです。 ソニックガーデンの採用のためのWebサイトでは、自習課題が用意されていますし、自分で一からアプリケーションを作って、コードレビューしてもらう機会もあります。

コードレビューはGoogle Hangoutsでビデオ通話と画面共有をしながら行われ、レビューを受けている人以外も参加可能な勉強会になっています。録画された過去のコードレビュー動画も閲覧可能で、これを見るだけでも非常に勉強になります。 より後に応募してきた人たちは沢山のコードレビュー動画を見ることで着時に力をつけていると感じました。なかなかうまい仕組みになっています。

ソニックガーデンの採用は、選考であると同時に教育でもあります。

人柄や考え方を重視

ソニックガーデンでは技術力だけでなく、その人の人柄や考え方を非常に重視しています。 例えば、採用プロセスの中で非常に沢山の作文を書きます(3つや4つではなく、本当に沢山です)。 それだけ沢山の作文を書けば、その人の人柄や考え方も滲み出てくることでしょう。

作文は自分のことを知ってもらうためであると同時に、自分を見つめ直す手段にもなります。 普段なんとなく考えていることを、じっくりと考えて言語化していく中で、自分にとって大事なことは何なのか、自分はどのような人生を送りたいのか、など自分の考えを再認識できます。 私は、仮に不採用になったとしても、自分と向き合った時間は今後の人生の役に立つのではないかなと、当時考えていました。

ソニックガーデンの採用は、自分を再発見するプロセスにもなります。

ゆるやかに入社していく

応募者は、長い時間をかけて会社や社員のことをよく知り、社員にも自分のことを知ってもらってから入社します。 採用の後半では、インターンのように自社アプリの開発の手伝いをしますし、受託案件のお客さんとのミーティングの見学もできます。自社開発のコミュニケーションツール Remotty に参加して、半分社員のような形で現場を体験できます。普通ではあり得ないくらいにオープンになっています。 もし、現場を体験する中で自分には合わないなと思えば、途中でやめることもできます。

本当に採用が決まる段階では、ソニックガーデンがどんな仕事をしているのか、社員一人ひとりがどんな人なのか知っていますし、自分のことも社員の皆さんに知ってもらっています。 採用が決まって、どんな会社でどんな社員がいるんだろうとドキドキしながら初出社するようなことはありません。 入社の前後の境目は限りなく曖昧です。

まとめ

ソニックガーデンは普通では考えられないような採用をしています。 「会社の一番の資産は社員である」というような言葉はよく聞きますが、ここまでコストをかけて社員を選考し教育している会社を初めて見ました。 どんな会社にでもできることではないと思いますし、採用に応募する側にも大きなコストがかかりますが、理にかなった仕組みになっていると感じました。